{"data":{"name":"dev.workers.adamhaleworks.tools/web-research","title":"Adam Hale Tools: Web Research and Open Data","description":"Free web lookups; PDF to Markdown, audio transcripts, screenshots, WHOIS/DNS paid per call via x402.","version":"1.1.0","websiteUrl":"https://tools.adamhaleworks.workers.dev/x402/#mcp","repositoryUrl":null,"remotes":[{"url":"https://tools.adamhaleworks.workers.dev/mcp","type":"streamable-http"}],"packages":[],"status":"active","isLatest":true,"publishedAt":"2026-10-12T09:01:29.125Z","updatedAt":"2026-10-12T09:01:29.125Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":"Adam Hale Tools: Web Research and Open Data","source":"official-registry","sourceId":"dev.workers.adamhaleworks.tools/web-research","updatedAt":"2026-10-12T09:01:29.125Z","confidence":100,"websiteUrl":"https://tools.adamhaleworks.workers.dev/x402/#mcp","description":"Free web lookups; PDF to Markdown, audio transcripts, screenshots, WHOIS/DNS paid per call via x402.","verification":"official","repositoryUrl":null}],"toolIndex":{"tools":[{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"document_to_markdown","title":"PDF and document to Markdown","description":"Convert one document at a public URL to Markdown from its text layer: PDF, Word DOCX, Excel XLSX/XLSM/XLSB/XLS, OpenDocument ODS/ODT, CSV, HTML, XML or Apple Numbers, up to 10 MB, Markdown up to 250,000 characters. Not OCR: scanned PDFs, images, PPTX and encrypted files are refused and not charged. Paid only: $0.004 USDC per file. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL of the document, e.g. \"https://bitcoin.org/bitcoin.pdf\"."},"filename":{"type":"string","maxLength":120,"pattern":"^[\\w .()\\[\\]-]{1,120}$","description":"Optional file name, used as a format hint."},"include_metadata":{"type":"boolean","default":true,"description":"false drops the PDF metadata block from the Markdown."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["url"],"additionalProperties":false},"annotations":{"title":"PDF and document to Markdown","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"786973f970bb137244afb4acd8171fea6ec55754e99a46dec4d5d5c750c575e0","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"domain_intel","title":"Domain WHOIS (RDAP), DNS and email security","description":"Who a domain is registered with and since when (RDAP: registrar, created, expires, age, status, nameservers, DNSSEC), its DNS records (A, AAAA, MX, NS, TXT, CAA) and email setup (provider, SPF and DMARC policy). No registrant personal data. Paid only: up to 3 domains per call for $0.003 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2048,"description":"A public domain name."},"minItems":1,"maxItems":3,"description":"1-3 domains (a URL or email address is reduced to its domain)."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["domains"],"additionalProperties":false},"annotations":{"title":"Domain WHOIS (RDAP), DNS and email security","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"2f24d871b5f3ba7d44bdd975e68cd210af8cabade27c9dd7e152d750b5755752","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"page_to_markdown","title":"Web page to clean Markdown","description":"Read web pages: returns each page's main content as clean Markdown without navigation, scripts or ads (headings, lists, absolute links, tables, code blocks), plus title, description, language, canonical URL and word count; up to 100,000 characters per page. Does not get past bot walls. Paid only: up to 3 URLs per call for $0.002 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2048,"description":"A public http(s) URL or bare domain (bare domain = its https:// homepage). No IP addresses, internal names or ports other than 80/443."},"minItems":1,"maxItems":3,"description":"1-3 page URLs."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["urls"],"additionalProperties":false},"annotations":{"title":"Web page to clean Markdown","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"2b3e240ac3cab9dba23ca48552c7a39ff714b48301f31ea86d9bde8e2ad19031","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"robots_txt_check","title":"robots.txt crawl permission check","description":"Crawl preflight: whether each user agent may fetch each URL under the site's robots.txt (RFC 9309, longest match, '*' fallback), with crawl-delay, the sitemaps robots.txt lists and whether the site publishes /llms.txt. Default agents: GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-User, PerplexityBot, Google-Extended, Googlebot, Bingbot, CCBot, Applebot-Extended, Bytespider and *. Paid only: up to 5 URLs per call for $0.001 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2048,"description":"A public http(s) URL or bare domain (bare domain = its https:// homepage). No IP addresses, internal names or ports other than 80/443."},"minItems":1,"maxItems":5,"description":"1-5 URLs to check."},"agents":{"type":"array","items":{"type":"string","pattern":"^(\\*|[A-Za-z0-9][A-Za-z0-9._-]{0,39})$"},"minItems":1,"maxItems":15,"description":"Optional user-agent product tokens, e.g. [\"GPTBot\", \"*\"]."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["urls"],"additionalProperties":false},"annotations":{"title":"robots.txt crawl permission check","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"d89dae47af3413dd7eda5e20b568c698e9f57cd4f97abffd287471f666589116","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"rss_to_json","title":"RSS, Atom and JSON Feed to JSON","description":"Read news feeds or blogs as clean JSON: accepts feed URLs or plain site URLs (finds the feed via <link rel=alternate>), normalises RSS 0.9x/2.0, RDF, Atom and JSON Feed to one item schema (title, url, publishedAt, author, categories, summary), up to 100 items per feed. Free for 1 feed; up to 5 feeds per call cost $0.003 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2048,"description":"A public http(s) URL or bare domain (bare domain = its https:// homepage). No IP addresses, internal names or ports other than 80/443."},"minItems":1,"maxItems":5,"description":"1-5 feed or site URLs."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["urls"],"additionalProperties":false},"annotations":{"title":"RSS, Atom and JSON Feed to JSON","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"8d1e397ed50143f3b2d371453261c9129032e985a004365f584414fb1f23f5fb","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"seo_meta_tags_check","title":"SEO meta tag and schema.org check","description":"On-page SEO audit of web pages: title and meta description lengths, canonical, robots/noindex and X-Robots-Tag, H1/H2, hreflang, Open Graph, Twitter card and JSON-LD rich-result checks, with machine-readable issue codes. Free for 1 URL when the free web tool is enabled; up to 3 URLs per call cost $0.004 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2048,"description":"A public http(s) URL or bare domain (bare domain = its https:// homepage). No IP addresses, internal names or ports other than 80/443."},"minItems":1,"maxItems":3,"description":"1-3 page URLs."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["urls"],"additionalProperties":false},"annotations":{"title":"SEO meta tag and schema.org check","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"19ac71dc4ad5b1450b785f184c01daa6e2b6f80a9f52c55d2886b07e90e8ed35","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"sitemap_urls","title":"Sitemap URL extractor","description":"List the pages of a website from its sitemaps: finds them via robots.txt or common paths, follows sitemap indexes, reads gzip, text and feed sitemaps, returns URLs with lastmod. Free: up to 2,000 URLs from 12 sitemap files. With bulk=true: up to 5,000 URLs from 20 files for $0.004 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"A domain (sitemaps are discovered) or the URL of one sitemap file, e.g. \"github.blog\"."},"bulk":{"type":"boolean","default":false,"description":"true = paid tier (5,000 URLs, 20 files)."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["url"],"additionalProperties":false},"annotations":{"title":"Sitemap URL extractor","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"d8e4863fc655bdc8ab1b91d5660c0a321a954f384b53255cfa6699b4162b76c4","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"tech_stack_lookup","title":"Website tech stack lookup","description":"Detect what a website is built with: CMS, frameworks, analytics, CDN, hosting, email and DNS providers (MX, SPF, DMARC) and a security-header grade, from one fetch of its homepage. Free for 1 domain per call (10 free calls a minute per IP); 2-3 domains in one call cost $0.005 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2048,"description":"A public domain or homepage URL."},"minItems":1,"maxItems":3,"description":"1-3 domains or homepage URLs, e.g. [\"wordpress.org\"]. One domain is free; two or three are one paid call."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["domains"],"additionalProperties":false},"annotations":{"title":"Website tech stack lookup","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"ae3862f365b46227b63608df48d9562574851e69164d8019459bb441977c9978","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"ted_tender_search","title":"EU public tender search (TED)","description":"Search EU public procurement notices (tenders, contract notices, awards) on TED through the official API v3: keywords, optional buyer country and open-deadline filter, newest first. Free: the 25 newest matches. With bulk=true or page: 100 notices per page, pages 1-50, for $0.002 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":300,"description":"Keywords; a comma separates alternatives (OR), up to 5, e.g. \"cloud hosting,data centre\"."},"country":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"Optional buyer country, ISO 3166-1 alpha-2 (EU/EEA + CH), e.g. \"FR\"."},"open_only":{"type":"boolean","default":false,"description":"true = only notices whose tender deadline has not passed."},"page":{"type":"integer","minimum":1,"maximum":50,"description":"Paid tier: result page of 100 notices."},"bulk":{"type":"boolean","default":false,"description":"true = paid tier (100 notices per page)."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["q"],"additionalProperties":false},"annotations":{"title":"EU public tender search (TED)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"6a509b66dc79a01b62ba31d9975c074cf6cd7c736c16d4896d1ba0ab607c30a3","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"transcribe_short_audio","title":"Short audio transcription (Whisper)","description":"Transcribe one short audio file (direct public URL to MP3, WAV, M4A, OGG, FLAC or WebM; one file up to 2 MB and 20 minutes) with Whisper large-v3-turbo, or translate it to English: text, timed segments, WebVTT and detected language. No YouTube or social media pages. Paid only: $0.01 USDC per file. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Direct public URL of the audio file."},"task":{"type":"string","enum":["transcribe","translate"],"default":"transcribe","description":"translate = English output."},"language":{"type":"string","pattern":"^[A-Za-z]{2,3}$","description":"Optional spoken language, ISO 639-1 (en, de, es…)."},"vad_filter":{"type":"boolean","default":true,"description":"false turns off silence filtering."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["url"],"additionalProperties":false},"annotations":{"title":"Short audio transcription (Whisper)","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"43d371bb59c79f00e6b0737b8fc81bae9baada1627de3fad0f400db4c4411dd3","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"url_status_check","title":"URL status and redirect checker","description":"Check whether links are alive: HTTP status, every redirect hop, final URL and a classification (ok, redirect, broken, restricted, blocked_by_site, disallowed_by_robots_txt, timeout). HEAD first, GET to confirm errors. Free for 1 URL when the free web tool is enabled; up to 10 URLs per call cost $0.003 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2048,"description":"A public http(s) URL or bare domain (bare domain = its https:// homepage). No IP addresses, internal names or ports other than 80/443."},"minItems":1,"maxItems":10,"description":"1-10 URLs to check."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["urls"],"additionalProperties":false},"annotations":{"title":"URL status and redirect checker","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"18159b05d4fefe82fdec66400ff0d8b01f62a48e4990e4117c16db4547572651","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.adamhaleworks.tools/web-research","endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","name":"website_screenshot","title":"Website screenshot","description":"Screenshot one public web page in a headless browser: desktop (1440x900) or mobile (390x844) viewport, PNG or JPEG, returned as an image. Viewport only, no logins or scripts; follows robots.txt and does not get past bot walls; at most one screenshot every 10 seconds across all callers. Paid only: $0.01 USDC per page. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta[\"x402/payment\"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.","inputSchema":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Public http(s) URL of the page."},"device":{"type":"string","enum":["desktop","mobile"],"default":"desktop","description":"Viewport: desktop 1440x900 or mobile 390x844."},"format":{"type":"string","enum":["png","jpeg"],"default":"png","description":"Image format."},"x402_payment":{"type":"string","maxLength":16384,"description":"Optional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta[\"x402/payment\"]. Never a private key or seed phrase."}},"required":["url"],"additionalProperties":false},"annotations":{"title":"Website screenshot","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"c31f730bec9832ee1050eade80538ffa1e5ce70549a0bc0c098d68706720bc24","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:06.984Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"73766924dc6391523812b200f24afde236a2e48c800e710c0b789f2156f7cfb6","protocol":"streamable-http","status":"indexed","toolCount":12,"observedAt":"2026-10-31T07:46:06.984Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"dev.workers.adamhaleworks.tools/web-research":{"url":"https://tools.adamhaleworks.workers.dev/mcp"}}},"Cursor":{"mcpServers":{"dev.workers.adamhaleworks.tools/web-research":{"url":"https://tools.adamhaleworks.workers.dev/mcp"}}},"VS Code":{"servers":{"dev.workers.adamhaleworks.tools/web-research":{"type":"http","url":"https://tools.adamhaleworks.workers.dev/mcp"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://tools.adamhaleworks.workers.dev/mcp"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:dev.workers.adamhaleworks.tools%2Fweb-research","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/dev.workers.adamhaleworks.tools%2Fweb-research","name":"dev.workers.adamhaleworks.tools/web-research","description":"Free web lookups; PDF to Markdown, audio transcripts, screenshots, WHOIS/DNS paid per call via x402.","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://tools.adamhaleworks.workers.dev/mcp"}],"capabilities":[],"identity":{"source":"official-registry","websiteUrl":"https://tools.adamhaleworks.workers.dev/x402/#mcp","repositoryUrl":null,"version":"1.1.0"},"verification":{"state":"official","confidence":100},"operations":{"resourceType":"mcp-server","name":"dev.workers.adamhaleworks.tools/web-research","status":"online","lastCheckedAt":"2026-11-03T17:19:04.864Z","lastSuccessfulCheck":"2026-11-03T17:19:04.864Z","latencyMs":392,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T17:19:04.864Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T17:19:04.864Z"},"security":null,"timestamps":{"createdAt":"2026-10-12T09:01:29.125Z","updatedAt":"2026-10-12T09:01:29.125Z","observedAt":"2026-11-03T17:19:04.864Z"},"compatibility":{"serverVersion":"1.1.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}