{"name":"Agent Discovery Doctor — AI Crawler Index","description":"Audit which agent-discovery documents a host actually serves — robots.txt, llms.txt, openapi.json, the .well-known family, the MCP and A2A documents — and say for each one what it is, who reads it and what a 404 there costs. It also validates a pasted llms.txt or a pasted A2A agent card against the spec, and drafts an llms.txt from a sitemap. check_discovery_documents is the only skill on this host that makes an outbound request, and it refuses its own publisher, ephemeral tunnel hosts, IP literals and private names before making one — so it cannot be pointed back at the host that runs it. Deterministic and read-only: there is no model behind it — every answer comes from a public dataset rebuilt every six hours from each operator's own published documentation and IP ranges, and the same skills are also available as MCP tools at https://www.pathwren.workers.dev/mcp/doctor. No key, no signup, no quota. Independent and unaffiliated with any operator it documents. TO CALL IT: send `message","url":"https://www.pathwren.workers.dev/c/openagora/a2a/doctor","version":"1.0.0","provider":{"organization":"Pathwren"},"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"authentication":{"schemes":["none"]},"defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["text/plain","application/json"],"skills":[{"id":"9fd3a923-2101-4976-b404-730e53b7a6e0","name":"Which discovery documents does this host serve?","description":"Probes 22 documents agents and trust indexes ask for — llms.txt, agent card, owners.json, oauth metadata, mcp.json, apis.json, openapi, robots, sitemap — as served, missing, gated or 200-with-HTML soft-404, and says who asks for each missing one. Refuses private, ephemeral and its own hosts. Example","tags":["discovery","well-known","audit","agents"]},{"id":"59260478-3c8b-409f-a58f-46ef724b981d","name":"What is this document, and who reads it?","description":"One catalogue entry: what the document is for, the named clients observed asking this host for it with dates and the status they took, what a 404 costs, and the spec URL. No argument lists all 22. Example: name='owners.json' names the bot that asks for it twice.","tags":["discovery","reference","documentation","well-known"]},{"id":"784f0b3f-8a7d-4710-909c-cbed7980e2ac","name":"Check a pasted llms.txt","description":"Checks pasted llms.txt against the format: one H1, a blockquote summary, H2 sections of `- [name](url): notes`. Errors and warnings with line numbers and fixes, plus the parsed links. Text in, nothing fetched. Example: text='# Site' warns it has no summary and no sections.","tags":["llms.txt","validation","spec","lint"]},{"id":"1cd598a0-cb60-42fa-93cc-b47732bfd5c9","name":"Draft an llms.txt from a sitemap","description":"Paste sitemap.xml, or one URL per line, and get a draft llms.txt: URLs grouped into H2 sections by path, titles from slugs, lastmod kept, and a TODO wherever only you can write the sentence. A sitemap index is reported as one. Example: xml='https://e.com/docs/a\\nhttps://e.com/blog/b'.","tags":["llms.txt","sitemap","generator","draft"]},{"id":"81e63687-7f16-4dbc-aaa5-73e1c8b310ce","name":"Check a pasted A2A agent card","description":"Validates a pasted /.well-known/agent-card.json against the nine fields A2A marks required and each skill's id/name/description/tags, and warns on capabilities declared true that a reader will then try. Example: json='{\"name\":\"a\"}' returns the eight missing fields.","tags":["a2a","agent card","validation","spec"]},{"id":"5be930c6-dcb8-473a-9667-0b5aaafef444","name":"Who is calling? (no arguments)","description":"Takes no arguments. Safe to call. Deterministic. Touches no third party. Classifies the request you just sent: the user-agent you claim, the address you came from, the class this host's own instrument books you as, whether we have seen you here before and what you fetched, and what this host's robot","tags":["identify","no arguments","diagnostics","user-agent"]},{"id":"b6ab59c2-b48a-4324-a687-7ffefe8d2e2c","name":"Run this server's worked example (no arguments)","description":"Takes no arguments. Safe to call. Deterministic. Touches no third party. Runs this server's own worked example end to end — one of its real tools, on a canned input taken from this host's own published data — and returns exactly the structuredContent a real call returns, not a mock and not a descrip","tags":["example","no arguments","demo","getting started"]}]}