{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_pz5xqz2z7ayd","handle":"rat-radar","url":"https://wellknown.network/agents/rat-radar","links":{"self":"https://wellknown.network/agents/rat-radar/record.json","html":"https://wellknown.network/agents/rat-radar","markdown":"https://wellknown.network/agents/rat-radar/record.md","api":"https://wellknown.network/api/v1/agents/rat-radar","status":"https://wellknown.network/api/v1/agents/rat-radar/status","claim":"https://wellknown.network/agents/rat-radar/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/rat-radar/claim.json","badge":"https://wellknown.network/agents/rat-radar/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/rat-radar/history","tools":"https://wellknown.network/api/v1/agents/rat-radar/tools"},"ard":{"identifier":"urn:air:rat-radar.github-a18.workers.dev:server:rat-radar","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Rat Radar","summary":"Ask before you scrape: is a site open, may I fetch this URL, and how do I extract a page. No key.","description":"Ask before you scrape: is a site open, may I fetch this URL, and how do I extract a page. No key.","publisher":{"name":"tech.ratlabs","url":null},"homepage":"https://ratlabs.tech/radar/","repository":null,"version":"1.4.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://rat-radar.github-a18.workers.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-28T21:50:55.25269Z","publishedAt":"2026-10-28T21:50:55.25269Z","registryName":"tech.ratlabs/rat-radar"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"productivity.crm","name":"CRM & Sales","confidence":0.962,"provenance":"derived"},{"slug":"documents.extraction","name":"Data Extraction","confidence":0.554,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"},{"slug":"data.web-scraping","name":"Web Scraping","confidence":0.51,"provenance":"derived"}],"categories":["content","data","documents","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 8h ago.","lastOkAt":"2026-11-01T13:29:29.268Z","lastProbedAt":"2026-11-01T13:29:29.268Z","statusComputedAt":"2026-11-01T13:31:00.590Z","reliability30d":{"probes":4,"successRate":1,"p50Ms":39,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":4,"ok":4,"authBoundaryOk":0,"serviceOk":4,"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-11-01T13:29:29.268Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":17,"error":null,"detail":{"tools":[{"name":"check_site","description":"Can I scrape this site, and how? Returns a verdict (open, guarded, hostile, blocked), a hostility score, a recommended approach with steps and risks, bot protec"},{"name":"get_playbook","description":"What should I build with this site, and how? Give a domain and, optionally, a goal in plain words (for example \"price alerts\", \"sales leads\", \"new jobs\", \"chang"},{"name":"list_sites","description":"List the sites in the dataset, optionally by category or verdict. Use it to find easy targets or to see what is covered."},{"name":"xray_page","description":"How do I extract the data from THIS page? Fetches one public page and returns a ranked extraction plan: embedded JSON, JSON-LD, repeated records with CSS select"},{"name":"xray_diagram","description":"Draw a page's anatomy as an Excalidraw diagram: its regions, the ranked ways to get its data, proof rows, the best route and what the page is made of. Returns a"},{"name":"search_sites","description":"Find sites in the dataset by a word: a name, host, category (jobs, shop, news, gov), country or verdict. Use it to discover what is covered before calling check"},{"name":"can_fetch","description":"Does robots.txt allow fetching this exact URL? Fetches the live robots.txt and applies the longest-match rule for a user agent (default: * plus GPTBot, ClaudeBo"},{"name":"summary","description":"Headline numbers across the dataset: verdict mix, how many sites block AI crawlers (and which), protection vendors, by category and country."}],"toolCount":8,"toolsHash":"ea1a2a5e43f9873ff1e81bfba47e3dbc0c4712680fe49488cd5c0687832c4972","serverName":"rat-radar","capabilities":["tools"],"serverVersion":"1.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T05:34:18.354Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":25,"error":null,"detail":{"tools":[{"name":"check_site","description":"Can I scrape this site, and how? Returns a verdict (open, guarded, hostile, blocked), a hostility score, a recommended approach with steps and risks, bot protec"},{"name":"get_playbook","description":"What should I build with this site, and how? Give a domain and, optionally, a goal in plain words (for example \"price alerts\", \"sales leads\", \"new jobs\", \"chang"},{"name":"list_sites","description":"List the sites in the dataset, optionally by category or verdict. Use it to find easy targets or to see what is covered."},{"name":"xray_page","description":"How do I extract the data from THIS page? Fetches one public page and returns a ranked extraction plan: embedded JSON, JSON-LD, repeated records with CSS select"},{"name":"xray_diagram","description":"Draw a page's anatomy as an Excalidraw diagram: its regions, the ranked ways to get its data, proof rows, the best route and what the page is made of. Returns a"},{"name":"search_sites","description":"Find sites in the dataset by a word: a name, host, category (jobs, shop, news, gov), country or verdict. Use it to discover what is covered before calling check"},{"name":"can_fetch","description":"Does robots.txt allow fetching this exact URL? Fetches the live robots.txt and applies the longest-match rule for a user agent (default: * plus GPTBot, ClaudeBo"},{"name":"summary","description":"Headline numbers across the dataset: verdict mix, how many sites block AI crawlers (and which), protection vendors, by category and country."}],"toolCount":8,"toolsHash":"ea1a2a5e43f9873ff1e81bfba47e3dbc0c4712680fe49488cd5c0687832c4972","serverName":"rat-radar","capabilities":["tools"],"serverVersion":"1.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T22:29:11.954Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":45,"error":null,"detail":{"tools":[{"name":"check_site","description":"Can I scrape this site, and how? Returns a verdict (open, guarded, hostile, blocked), a hostility score, a recommended approach with steps and risks, bot protec"},{"name":"get_playbook","description":"What should I build with this site, and how? Give a domain and, optionally, a goal in plain words (for example \"price alerts\", \"sales leads\", \"new jobs\", \"chang"},{"name":"list_sites","description":"List the sites in the dataset, optionally by category or verdict. Use it to find easy targets or to see what is covered."},{"name":"xray_page","description":"How do I extract the data from THIS page? Fetches one public page and returns a ranked extraction plan: embedded JSON, JSON-LD, repeated records with CSS select"},{"name":"xray_diagram","description":"Draw a page's anatomy as an Excalidraw diagram: its regions, the ranked ways to get its data, proof rows, the best route and what the page is made of. Returns a"},{"name":"search_sites","description":"Find sites in the dataset by a word: a name, host, category (jobs, shop, news, gov), country or verdict. Use it to discover what is covered before calling check"},{"name":"can_fetch","description":"Does robots.txt allow fetching this exact URL? Fetches the live robots.txt and applies the longest-match rule for a user agent (default: * plus GPTBot, ClaudeBo"},{"name":"summary","description":"Headline numbers across the dataset: verdict mix, how many sites block AI crawlers (and which), protection vendors, by category and country."}],"toolCount":8,"toolsHash":"ea1a2a5e43f9873ff1e81bfba47e3dbc0c4712680fe49488cd5c0687832c4972","serverName":"rat-radar","capabilities":["tools"],"serverVersion":"1.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T14:26:02.201Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":66,"error":null,"detail":{"tools":[{"name":"check_site","description":"Can I scrape this site, and how? Returns a verdict (open, guarded, hostile, blocked), a hostility score, a recommended approach with steps and risks, bot protec"},{"name":"get_playbook","description":"What should I build with this site, and how? Give a domain and, optionally, a goal in plain words (for example \"price alerts\", \"sales leads\", \"new jobs\", \"chang"},{"name":"list_sites","description":"List the sites in the dataset, optionally by category or verdict. Use it to find easy targets or to see what is covered."},{"name":"xray_page","description":"How do I extract the data from THIS page? Fetches one public page and returns a ranked extraction plan: embedded JSON, JSON-LD, repeated records with CSS select"},{"name":"xray_diagram","description":"Draw a page's anatomy as an Excalidraw diagram: its regions, the ranked ways to get its data, proof rows, the best route and what the page is made of. Returns a"},{"name":"search_sites","description":"Find sites in the dataset by a word: a name, host, category (jobs, shop, news, gov), country or verdict. Use it to discover what is covered before calling check"},{"name":"can_fetch","description":"Does robots.txt allow fetching this exact URL? Fetches the live robots.txt and applies the longest-match rule for a user agent (default: * plus GPTBot, ClaudeBo"},{"name":"summary","description":"Headline numbers across the dataset: verdict mix, how many sites block AI crawlers (and which), protection vendors, by category and country."}],"toolCount":8,"toolsHash":"ea1a2a5e43f9873ff1e81bfba47e3dbc0c4712680fe49488cd5c0687832c4972","serverName":"rat-radar","capabilities":["tools"],"serverVersion":"1.4.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"check_site","description":"Can I scrape this site, and how? Returns a verdict (open, guarded, hostile, blocked), a hostility score, a recommended approach with steps and risks, bot protec"},{"name":"get_playbook","description":"What should I build with this site, and how? Give a domain and, optionally, a goal in plain words (for example \"price alerts\", \"sales leads\", \"new jobs\", \"chang"},{"name":"list_sites","description":"List the sites in the dataset, optionally by category or verdict. Use it to find easy targets or to see what is covered."},{"name":"xray_page","description":"How do I extract the data from THIS page? Fetches one public page and returns a ranked extraction plan: embedded JSON, JSON-LD, repeated records with CSS select"},{"name":"xray_diagram","description":"Draw a page's anatomy as an Excalidraw diagram: its regions, the ranked ways to get its data, proof rows, the best route and what the page is made of. Returns a"},{"name":"search_sites","description":"Find sites in the dataset by a word: a name, host, category (jobs, shop, news, gov), country or verdict. Use it to discover what is covered before calling check"},{"name":"can_fetch","description":"Does robots.txt allow fetching this exact URL? Fetches the live robots.txt and applies the longest-match rule for a user agent (default: * plus GPTBot, ClaudeBo"},{"name":"summary","description":"Headline numbers across the dataset: verdict mix, how many sites block AI crawlers (and which), protection vendors, by category and country."}],"package":null,"toolSurface":{"id":"ts_eh9ugfu7nmbq","endpointId":"ep_w82vkuxf32hx","hash":"ea1a2a5e43f9873ff1e81bfba47e3dbc0c4712680fe49488cd5c0687832c4972","toolCount":8,"serverName":"rat-radar","serverVersion":"1.4.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-31T14:26:02.214Z","lastSeenAt":"2026-11-01T13:29:29.275Z","observations":4,"toolNames":["check_site","get_playbook","list_sites","xray_page","xray_diagram","search_sites","can_fetch","summary"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_w82vkuxf32hx","url":"https://rat-radar.github-a18.workers.dev/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-31T14:26:02.224Z","auth":{"observedAt":"2026-10-31T14:26:02.265Z","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-31T14:26:02.284Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"github-a18.workers.dev","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-15T05:57:27.000Z","validTo":"2027-01-13T06:55:16.000Z","daysToExpiry":72,"sanCount":2,"fingerprint256":"87:B3:D8:A3:CF:D9:A7:EB:80:31:97:A6:E6:8D:12:69:FC:AE:25:55:13:17:C8:42:97:A8:AE:8E:FA:AB:99:8E"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"tech.ratlabs/rat-radar","url":"https://registry.modelcontextprotocol.io/v0/servers/tech.ratlabs%2Frat-radar","firstSeenAt":"2026-10-31T12:19:23.505Z","fetchedAt":"2026-10-31T12:19:23.505Z","normalizedAt":"2026-10-31T12:19:23.505Z"}]},"firstSeenAt":"2026-10-31T12:19:23.505Z","updatedAt":"2026-11-01T13:32:15.304Z"}