{
 "tool": "ai-access",
 "endpoint": "https://www.pathwren.workers.dev/tools/ai-access",
 "title": "Which AI crawlers does this file actually stop?",
 "what": "Evaluate a pasted robots.txt against every AI crawler in this index and get the two lists that matter — blocked and allowed, per operator and category — plus the tokens in your file that match no known crawler (a typo blocks nothing), and the separation between crawlers that document obedience and the ones observed ignoring robots.txt, which need an IP or WAF rule instead.",
 "auth": "none — no account, no key, no handshake, no session. CORS is open and the answer is cacheable.",
 "method": "GET, or POST with the file as the raw body",
 "parameters": [
  {
   "name": "robots_txt",
   "aliases": [
    "robots",
    "text"
   ],
   "required": true,
   "repeatable": false,
   "what": "The contents of the robots.txt file, URL-encoded, or the raw POST body.",
   "becomes": "robots_txt"
  },
  {
   "name": "path",
   "aliases": [],
   "required": false,
   "repeatable": false,
   "what": "Path to test the verdict at. Defaults to /.",
   "becomes": "path"
  }
 ],
 "example": {
  "curl": "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'",
  "url": "https://www.pathwren.workers.dev/tools/ai-access?robots_txt=User-agent%3A%20GPTBot%0ADisallow%3A%20%2F%0A&path=/&s=client-dossiers",
  "what_it_answers": "One rule against the whole index: GPTBot blocked, every other AI crawler still allowed, and the count of what that leaves open."
 },
 "same_answer_over_mcp": {
  "note": "This endpoint does not reimplement the tool: it calls the MCP server below in-process, through that server's own JSON-RPC envelope. One implementation, two doors.",
  "server": "robots-policy-lint",
  "endpoint": "https://www.pathwren.workers.dev/mcp/robots",
  "method": "tools/call",
  "tool": "audit_ai_access",
  "curl": "curl -s https://www.pathwren.workers.dev/mcp/robots -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"audit_ai_access\",\"arguments\":{}}}'"
 },
 "caveats": [
  "The verdict is computed against /data/agents.json, the same file this host publishes and the same one the MCP tool reads."
 ],
 "docs": "https://www.pathwren.workers.dev/tools/ai-access.html?s=client-dossiers",
 "catalogue": "https://www.pathwren.workers.dev/tools/index.json?s=client-dossiers",
 "about_the_s_parameter": "?s=client-dossiers is how this host attributes which document sent you. It changes nothing in the answer and is not required; we publish it on our own links so we can tell what these endpoints earned.",
 "license": "CC0-1.0",
 "independent": true,
 "_about": {
  "page": "https://www.pathwren.workers.dev/bot/claudebot.html?s=client-dossiers",
  "what": "What this host recorded about the client that made this request — the requests, the status codes and the user-agent string, from its own log. Nothing else: no address is published, nothing is looked up anywhere, and there is no account to close.",
  "matched_on": "the User-Agent header you sent. If we have no page for it yet this points at the index of all of them.",
  "index": "https://www.pathwren.workers.dev/bot/index.html?s=client-dossiers"
 }
}
