{"protocolVersion":"2025-06-18","serverInfo":{"name":"shot","title":"Agent Screenshot Hub","version":"1.0.0"},"capabilities":{"tools":{"listChanged":false}},"transport":{"type":"http","endpoint":"https://shot.netzhandwerker.de/mcp","methods":["POST"]},"payment":{"protocol":"x402","network":"eip155:8453","asset":"USDC","note":"tools/list needs no payment. tools/call settles the tool price over x402. full_page costs more."},"tools":[{"name":"screenshot","description":"Render any public web page in headless Chrome and return the screenshot as base64 plus a short lived fetch URL, with byte size, load time and the final HTTP status of the page. Paid per call in USDC over x402.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Absolute http or https URL to render."},"width":{"type":"integer","minimum":320,"maximum":2560,"default":1280,"description":"Viewport width in CSS pixels."},"height":{"type":"integer","minimum":320,"maximum":2000,"default":800,"description":"Viewport height in CSS pixels."},"full_page":{"type":"boolean","default":false,"description":"Capture the whole document instead of the viewport. Costs 0.006 USDC instead of 0.004 USDC."},"format":{"type":"string","enum":["png","webp","jpeg"],"default":"png","description":"Image format of the returned screenshot."},"quality":{"type":"integer","minimum":1,"maximum":100,"default":80,"description":"Compression quality for webp and jpeg. Ignored for png."},"delay_ms":{"type":"integer","minimum":0,"maximum":10000,"default":0,"description":"Wait this long after the document is ready before capturing. Counts against the 20 second budget."},"selector":{"type":"string","maxLength":300,"description":"CSS selector. When set, only that element is captured and full_page must stay off."},"dark_mode":{"type":"boolean","default":false,"description":"Render with prefers-color-scheme: dark."},"block_cookiebanner":{"type":"boolean","default":false,"description":"Remove common consent layers before capturing. The banner is hidden, never accepted."}}}},{"name":"browser_snapshot","description":"Load a public web page once in headless Chrome and get everything an agent needs to reason about it in one answer: the DOM after JavaScript ran (capped at 2 MB, truncation is reported), the accessibility tree from CDP flattened with parent references, every link with rel, target and an internal or external verdict, every form field with label, type, required flag, autocomplete hint and option values, console errors and warnings with source and line, a screenshot, navigation timings and a summary of the requests the page fired including third party hosts and blocked ones. One page load, not six. Chrome runs with no credentials, no cookie import and no login, so a sign in page is captured as it appears and never passed. Flat 0.006 USDC per call over x402.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Absolute http or https URL to render."},"viewport":{"type":"object","description":"Viewport in CSS pixels. Default 1280x800.","properties":{"width":{"type":"integer","minimum":360,"maximum":2560,"default":1280},"height":{"type":"integer","minimum":360,"maximum":2000,"default":800}}},"wait_until":{"type":"string","enum":["load","domcontentloaded","networkidle"],"default":"networkidle","description":"When the page counts as ready. networkidle waits until at most two connections stay open for half a second, which is what most JavaScript pages need."},"wait_ms":{"type":"integer","minimum":0,"maximum":8000,"default":0,"description":"Wait this long after the page is ready before reading it. Counts against the 20 second budget, it is not added on top."},"include":{"type":"array","default":["dom","a11y","links","forms","console","screenshot"],"items":{"type":"string","enum":["dom","a11y","links","forms","console","screenshot"]},"description":"Which parts to return. Omit for all of them. Leaving parts out makes the answer smaller, not cheaper: the page is loaded once either way."},"screenshot_format":{"type":"string","enum":["png","webp","jpeg"],"default":"webp","description":"Image format. webp is the smallest and keeps the answer under the size cap most often."},"screenshot_quality":{"type":"integer","minimum":1,"maximum":100,"default":80,"description":"Compression quality for webp and jpeg. Ignored for png."},"full_page":{"type":"boolean","default":false,"description":"Capture the whole document instead of the viewport. Same price on this endpoint."},"check_links":{"type":"boolean","default":false,"description":"Look up the HTTP status of up to 50 links with HEAD, without following redirects. No extra charge. Without this, links carry no status field."}}}}]}