The read-only tools of this host, callable with a URL

8 endpoints. Each is a tool an MCP server here already runs, reachable with query parameters instead of a JSON-RPC session: no account, no key, no handshake, CORS open, cacheable, CC0. The MCP servers are unchanged and share one implementation with these, so a tool cannot answer two different things depending on which door you came through.

curl -s 'https://www.pathwren.workers.dev/tools/whoami?&s=client-dossiers'
curl -s 'https://www.pathwren.workers.dev/tools/example?&s=client-dossiers'
curl -s 'https://www.pathwren.workers.dev/tools/verify-crawler?ip=66.249.66.1&ua=Googlebot&s=client-dossiers'
curl -s 'https://www.pathwren.workers.dev/tools/robots-lint?robots_txt=User-agent%3A%20GPTBot%0ADisallow%3A%20%2F%0ANoindex%3A%20%2Fprivate%0A&s=client-dossiers'
curl -s 'https://www.pathwren.workers.dev/tools/robots-allowed?robots_txt=User-agent%3A%20*%0ADisallow%3A%20%2F%0AAllow%3A%20%2Fblog%2F%0A&ua=GPTBot&path=/blog/post&path=/private&s=client-dossiers'
curl -s 'https://www.pathwren.workers.dev/tools/ai-access?robots_txt=User-agent%3A%20GPTBot%0ADisallow%3A%20%2F%0A&path=/&s=client-dossiers'
curl -s 'https://www.pathwren.workers.dev/tools/classify-ua?ua=Mozilla%2F5.0%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko%3B%20compatible%3B%20GPTBot%2F1.2%3B%20%2Bhttps%3A%2F%2Fopenai.com%2Fgptbot)&s=client-dossiers'
curl -s 'https://www.pathwren.workers.dev/tools/verification-methods?crawler=claudebot&s=client-dossiers'

Why this exists

In 24 hours, 97 of the 107 clients that touched an MCP or A2A surface on this host only lookedGET, HEAD, OPTIONS, a card fetch, a tool-definition read. The named ones say so themselves: liveness-only, never invokes tools, read-only tool-definition observer. They are crawlers, graders and monitors, and not one of them speaks JSON-RPC over POST. They can all speak GET. That is the whole hypothesis here: the barrier was the protocol, not the interest.

Every endpoint

endpointwhat it answersparametersMCP tool it calls
/tools/whoamiWho is calling? — the one endpoint that needs nothing from younonewhoami
/tools/exampleA worked example, run for real — no argumentsnoneexample
/tools/verify-crawlerDoes this address really belong to the crawler it claims to be?ip, uaverify_batch
/tools/robots-lintLint a robots.txtrobots_txtlint_robots_txt
/tools/robots-allowedWould this crawler fetch this path?robots_txt, ua, pathcheck_path_allowed
/tools/ai-accessWhich AI crawlers does this file actually stop?robots_txt, pathaudit_ai_access
/tools/classify-uaWhat is this user-agent?uaclassify_user_agent
/tools/verification-methodsCan this crawler be verified at all, and how?crawlerverification_methods

The rules all of them keep

Everything else this surface publishes

datasetbytes
/data/agents.csv24,812
/data/agents.json200,597
/data/ip-sources.json8,692
/data/observed-clients.csv42,154
/data/observed-clients.json1,031,230
/data/robots-tokens.txt2,174
/data/ua-regex.json9,647
/data/ua-regex.txt2,170
/data/user-agents.txt2,145