{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_dwrsxkwnddv3","handle":"agent-web-url-to-llm-ready-markdown-a-polite-rob","url":"https://wellknown.network/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob","links":{"self":"https://wellknown.network/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob/record.json","html":"https://wellknown.network/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob","markdown":"https://wellknown.network/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob/record.md","api":"https://wellknown.network/api/v1/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob","status":"https://wellknown.network/api/v1/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob/status","claim":"https://wellknown.network/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob/claim.json","badge":"https://wellknown.network/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob/history","tools":"https://wellknown.network/api/v1/agents/agent-web-url-to-llm-ready-markdown-a-polite-rob/tools"},"ard":{"identifier":"urn:air:agent-web.foomworks.workers.dev:agent:agent-web-url-to-llm-ready-markdown-a-polite-rob","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"agent-web","summary":"Charter-clean web toolkit for agents: give it one publicly reachable URL, get back clean, LLM-ready markdown (free), or a screenshot/PDF via x402 ($1+). Honors robots.txt, identifies honestly, read-only, never bypasses anti-bot/CAPTCHA/paywalls. No account, no API key.","description":"Charter-clean web toolkit for agents: give it one publicly reachable URL, get back clean, LLM-ready markdown (free), or a screenshot/PDF via x402 ($1+). Honors robots.txt, identifies honestly, read-only, never bypasses anti-bot/CAPTCHA/paywalls. No account, no API key.","publisher":{"name":"FOOM — foomworks","url":"https://agent-web.foomworks.workers.dev"},"homepage":"https://agent-web.foomworks.workers.dev/openapi.json","repository":"https://github.com/foomworks/agent-web","version":"0.9.0","license":null,"protocols":["a2a","mcp"],"tags":["web","reader","markdown","scrape","agents","url"],"pricing":null,"endpoints":[{"url":"https://agent-web.foomworks.workers.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":[{"id":"read_url","name":"read_url","tags":["web","reader","markdown","scrape","agents","url"],"description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown — including HTML tables, which become GitHub-flavored Markdown tables; URLs pointing straight at a Markdown or plain-text document (raw READMEs, llms.txt, docs) are passed through verbatim. Polite by design: honors the origin's robots.txt for our user-agent, identifies honestly, read-only GET, never bypasses anti-bot/CAPTCHA/paywalls. Fre…"},{"id":"read_url_preview","name":"read_url_preview","tags":["web","reader","markdown","scrape","agents","url"],"description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check a page's relevance before pulling the full text. Free."},{"id":"render_preview","name":"render_preview","tags":["web","reader","markdown","scrape","agents","url"],"description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Rendering is provisioned on this account."},{"id":"render_screenshot","name":"render_screenshot","tags":["web","reader","markdown","scrape","agents","url"],"description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use render_preview (free) first. Currently soft-skips 503 until Cloudflare Browser Rendering is provisioned."},{"id":"render_pdf","name":"render_pdf","tags":["web","reader","markdown","scrape","agents","url"],"description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skips 503 until Cloudflare Browser Rendering is provisioned."}],"tools":["read_url","read_url_preview","render_preview","render_screenshot","render_pdf"],"extra":{"updatedAt":"2026-06-23T09:13:42.144396Z","inputModes":["application/json"],"outputModes":["application/json"],"publishedAt":"2026-06-23T09:13:42.144396Z","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"registryName":"io.github.foomworks/agent-web","protocolVersion":"0.3.0"},"attribution":{"kind":"a2a_card","name":"a2a_card","repoUrl":"mcp_registry","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"infra.browser-automation","name":"Browser Automation","confidence":1,"provenance":"derived"},{"slug":"research.web","name":"Deep Web Research","confidence":1,"provenance":"declared"},{"slug":"infra.cloud","name":"Cloud Platforms","confidence":0.554,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":0.51,"provenance":"derived"}],"categories":["commerce","infra","research"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 50m ago.","lastOkAt":"2026-10-10T18:28:14.328Z","lastProbedAt":"2026-10-10T18:28:14.328Z","statusComputedAt":"2026-10-10T18:29:13.011Z","reliability30d":{"probes":110,"successRate":1,"p50Ms":22,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":107,"ok":107,"authBoundaryOk":0,"serviceOk":107,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T18:28:14.328Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":16,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T12:29:58.987Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":41,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T06:27:35.719Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":17,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T00:29:12.835Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T18:25:04.504Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":69,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T11:25:37.180Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":20,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T04:28:18.011Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":22,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T21:23:30.953Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":146,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T15:24:26.067Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":30,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T09:24:23.853Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":25,"error":null,"detail":{"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"toolCount":5,"toolsHash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","serverName":"agent-web","capabilities":["tools"],"serverVersion":"0.9.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"read_url","description":"Fetch one publicly reachable URL and return clean, LLM-ready markdown (title + page description + word count + markdown). HTML pages are extracted to markdown —"},{"name":"read_url_preview","description":"Like read_url but returns only the page description + the first ~600 characters of the markdown (title + word count + a truncation flag) — a cheap way to check "},{"name":"render_preview","description":"Free discovery stub for the screenshot/PDF render lane. Same robots/SSRF guards as read_url. Currently returns a 503 (no charge) until Cloudflare Browser Render"},{"name":"render_screenshot","description":"PAID (x402): returns x402 payment instructions for a PNG screenshot of a publicly reachable URL, rendered via a real, robots-respecting headless browser. Use re"},{"name":"render_pdf","description":"PAID (x402): returns x402 payment instructions for a PDF render of a publicly reachable URL, via a real, robots-respecting headless browser. Currently soft-skip"}],"package":null,"toolSurface":{"id":"ts_ewz5236rkg39","endpointId":"ep_4qr5y84emsyb","hash":"2aa3a3a7b507b77c8a415c0f077bc788e2f636bf6788e8ab07528209b42eae8b","toolCount":5,"serverName":"agent-web","serverVersion":"0.9.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T13:25:29.072Z","lastSeenAt":"2026-10-10T18:28:14.329Z","observations":102,"toolNames":["read_url","read_url_preview","render_preview","render_screenshot","render_pdf"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_4qr5y84emsyb","url":"https://agent-web.foomworks.workers.dev/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T11:25:37.187Z","auth":{"observedAt":"2026-10-09T11:25:37.197Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-09T11:25:37.207Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"foomworks.workers.dev","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-06T19:20:55.000Z","validTo":"2027-01-04T20:18:39.000Z","daysToExpiry":86,"sanCount":2,"fingerprint256":"C0:9A:D1:2A:11:DA:0D:2A:C5:75:29:C0:E4:B2:3D:1D:DA:5F:3B:BC:73:2F:D6:E6:4A:5D:59:E5:86:3E:29:BC"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://agent-web.foomworks.workers.dev/.well-known/agent-card.json","url":"https://agent-web.foomworks.workers.dev/.well-known/agent-card.json","firstSeenAt":"2026-09-06T14:19:44.944Z","fetchedAt":"2026-10-04T20:21:56.353Z","normalizedAt":"2026-10-04T20:21:56.353Z"},{"source":"mcp_registry","key":"io.github.foomworks/agent-web","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.foomworks%2Fagent-web","firstSeenAt":"2026-09-06T14:17:56.849Z","fetchedAt":"2026-10-10T10:21:42.640Z","normalizedAt":"2026-10-10T10:21:42.640Z"}]},"firstSeenAt":"2026-09-06T14:17:56.849Z","updatedAt":"2026-10-10T18:30:17.810Z"}