# AI Crawler Index > Every AI crawler on the web, what it is for, what blocking it costs you, and the IP ranges its operator publishes — as JSON, CSV, robots.txt and regex. 150 crawlers, 74 operators, 1984 IPv4 and 1062 IPv6 prefixes mirrored from 15 endpoints the operators publish themselves. Static files, no key, no rate limit, CORS open, CC0. Rebuilt 2026-09-03. The question this exists to answer: *which of these do I allow, and what do I lose if I do not?* Operators document that a bot exists. They do not document what blocking it costs you. Every record here carries that, in one field, in plain language. ## Start here - [All 150 crawlers](/data/agents.json): the whole dataset, one file. - [Tools you can call with a URL](/tools/index.html): the read-only MCP tools of this host, as keyless GET endpoints. No account, no key, no JSON-RPC. - [Who actually crawls this host](/bot/index.html): 163 named clients — bots, registry probes, trust scanners and liveness checkers — one page each, generated from this host's own request log: the exact user-agent, first and last seen, how many addresses it came from, the paths it asked for in order, the status codes it got, and what it asked for that did not exist. Window 2026-08-31T20:58:11+00:00 to 2026-09-03T06:25:38+00:00 UTC. Most of these names are documented nowhere else on the web. Whole set in one request: [/data/observed-clients.json](/data/observed-clients.json), flat table at [/data/observed-clients.csv](/data/observed-clients.csv). - [Ready-made robots.txt](/policy/index.html): eight policies, each a file you can curl. - [Published IP ranges](/ip-ranges/all.json): every operator prefix list, one schema. - [Upstream status](/status.json): which operator endpoints answered, and when. - [What changed since your last read](/changes.json?since=0): a cursor feed. Read `cursor` from the response, send it back as `since`, and you get only what moved — prefixes added or removed, upstreams that failed or recovered, records edited. The cursor advances only when something really changed, so an unchanged answer is proof rather than luck. If you keep one file from this host up to date, keep it with this instead of re-downloading. - [OpenAPI 3.1](/openapi.json): every read endpoint, described. - [API reference](/reference): the same endpoints as a page, each with the curl that calls it, generated from that OpenAPI document rather than typed. No JavaScript on it. Also served at /docs, /documentation, /api and /api/docs; as data at [/reference.json](/reference.json). - [API version root](/api/v1): which versions of this API exist, and the endpoint list cut from the same OpenAPI document. There is one version, `v1`, and the prefix is an ADDRESS: `/api/v1/data/agents.json` returns the same bytes as `/data/agents.json`, with a canonical link home. `/api/v2` and `/api/v3` are 404 by decision and say so in problem+json — the full history is at [/api/versions](/api/versions). ## Polling this host A cursor is an integer the change feed hands back in every answer it gives you. Send it as `?since=` on the next request and you get only what happened after it: `GET /changes.json?since=0` once, then `?since=` from then on, for ever. The cursor advances only when the published data really differs from what was published before — an upstream that reissues a byte-identical file does not move it — so an answer with nothing in it is proof that nothing changed rather than a request that missed something. That empty answer is about 2.5 KB against the 3046 prefixes and 150 records it saves you re-reading, and if you send back the `ETag` from your previous response as `If-None-Match` — or the `Last-Modified` as `If-Modified-Since`, both are honoured on every document here — it is a 304 with no body at all: staying current costs you strictly less than finding out you already were. The operator endpoints behind it are re-fetched every six hours, so six hours is the interval that always has news; anything from ten minutes up is welcome, nothing here is rate limited and no key is needed, but polling faster than the data moves returns the cursor you already hold. This host itself has no webhook and no socket to offer you — the feed is the whole mechanism here — and every JSON document links it as `"rel": "changes"` with a `Link: <...>; rel="changes"` header beside it, and the same URL again as `rel="alternate"` for a reader that only follows registered relations. The next refresh is due at 2026-09-03T08:42:02+00:00, and you do not have to remember that: every machine document on this host carries `Cache-Control: max-age=` and an `X-Next-Refresh: 2026-09-03T08:42:02+00:00` header, both counting down to the same instant. A poller can sleep on `max-age` and wake exactly when there is something new. If the refresh is late the countdown floors at 300 seconds rather than inventing a date; /status.json says which upstreams answered. The one push that exists here is somebody else's: /feed.json and /feed.xml carry `Link: ; rel="hub"` beside `rel="self"`, and the feed bodies name the same hub — which is what a hub checks a subscription against. This loop pings that hub on its own six-hourly pass, publishing the channel-tagged copy of the feed as the topic; if you subscribe there, delivery is the hub's business and not a poll against us. ## Machine endpoints - [/documents.json](/documents.json): the document ledger — every URL this host publishes, each with a strong ETag and the date its bytes last changed. Read it once and re-fetch only what moved; you never have to HEAD 450 files to find out that none of them did. TSV form at [/documents.txt](/documents.txt) for `awk`. - [/data/agents.json](/data/agents.json): every record, with categories and an endpoint map. - [/data/agents.csv](/data/agents.csv): the same table, flat. - [/data/user-agents.txt](/data/user-agents.txt): user-agent substrings, one per line. - [/data/robots-tokens.txt](/data/robots-tokens.txt): robots.txt tokens, one per line. - [/data/ua-regex.json](/data/ua-regex.json): pre-escaped regex, whole-list and per category. - [/data/ip-sources.json](/data/ip-sources.json): which operators publish ranges, and where. - [/ip-ranges/all.txt](/ip-ranges/all.txt): every published CIDR, one per line, for a WAF. - [/status.json](/status.json): freshness of every upstream source. - [/changes.json](/changes.json?since=0): the since-cursor changes feed — `?since=`, `&limit=` up to 400. Strong ETag and Last-Modified on every answer: send either back and an unchanged feed costs you a 304 with no body. The upstreams are re-fetched every six hours, so polling faster than that returns the same cursor. - [/crawler/.json](/crawler/gptbot.json): one record per crawler. - [/crawler/.md](/crawler/gptbot.md): the same record as markdown, one file each. - [/policy/.json](/policy/block-ai-training.json) and [/robots/.txt](/robots/block-ai-training.txt). - [/feed.json](/feed.json), [/feed.xml](/feed.xml): what changed. - [/mcp](/mcp.html): the same data as an MCP server (Streamable HTTP, no key, nine tools). If you are an agent that speaks MCP, connect to `https://www.pathwren.workers.dev/mcp` and call `tools/list`. - [/mcp/triage](/mcp-triage.html): a second MCP server, `https://www.pathwren.workers.dev/mcp/triage`. It takes a whole access log and returns per-line verdicts, the impersonators, and a robots.txt or WAF ruleset for exactly what was in it. No tool in common with /mcp — different input, different job. - [/mcp/doctor](/mcp-doctor.html): a third MCP server, `https://www.pathwren.workers.dev/mcp/doctor`. It checks which of the 22 discovery documents agents actually ask for — llms.txt, agent card, owners.json, oauth metadata, mcp.json, apis.json — a host serves, names who asks for each missing one, validates a pasted llms.txt or agent card, and drafts an llms.txt from a sitemap. It refuses to check this host or any private one. - [/mcp/robots](/mcp-robots.html): a fourth MCP server, `https://www.pathwren.workers.dev/mcp/robots`. It reads a robots.txt you paste — the only server here that takes one as input rather than writing one — and reports the faults that make a file mean less than its author thought (misspelled directives, `noindex:`, a user-agent string where a product token belongs), evaluates paths by RFC 9309 matching, and says which AI crawlers the file actually blocks. - [/mcp/netcheck](/mcp-netcheck.html): a fifth MCP server, `https://www.pathwren.workers.dev/mcp/netcheck`. Batch address verification against the mirrored operator prefix lists (500 at a time), containment and overlap arithmetic on a CIDR, and paste-ready allowlists for nginx, Apache, HAProxy, Cloudflare, ipset or Caddy. It never resolves anything: reverse DNS is handed back as a command, never a result. - [/mcp/lint](/mcp-lint.html): a sixth MCP server, `https://www.pathwren.workers.dev/mcp/lint`. Point it at any MCP endpoint and it speaks JSON-RPC to it: does `initialize` negotiate the version it was asked for and survive a second connection, does every advertised tool carry a valid JSON Schema, does an unknown method return `-32601` or an HTML 500, and which pre-dial discovery documents answer — including `/.well-known/oauth-protected-resource` in the RFC 9728 §3.1 insertion form most hosts omit. `score_card` does all four in one call, 18 requests, out of 100. Called with no arguments it lints a broken fixture inside the worker and touches nobody; it refuses to fetch this host, private names or IP literals before opening a socket. - [/a2a](/a2a.html): the same nine skills as an A2A (Agent2Agent) v1.0 agent — JSON-RPC 2.0 over POST, no key. Agent card at [/.well-known/agent-card.json](/.well-known/agent-card.json), identical bytes at the legacy [/.well-known/agent.json](/.well-known/agent.json) and from `GET /a2a`. **`message/send` returns a Task already in state `completed`, in the same response** — nothing to poll, nothing to subscribe to. The task id encodes the call, so `tasks/get` re-runs it rather than reading a store this host does not keep; an id we never minted answers `-32001` and hands back the `message/send` body that would create one. No streaming, no push notifications, no task store, and the card declares each of those false. - [/a2a/example.json](/a2a/example.json): **every A2A skill on this host as a complete request you can send unedited** — all eight agents, 48 skills, each with the whole JSON-RPC body and a curl line. If you have nothing to hand, send `whoami`: it takes no arguments and it answers about you — the user-agent you sent, the address you came from, the class this host's instrument books you as, and what our robots policy says about you. ## The tools here, callable without an MCP client Every read-only tool this host runs over MCP also answers a plain `GET`: no account, no key, no handshake, no JSON-RPC. Same implementation behind both doors — the HTTP endpoint calls the MCP tool in-process — so the two cannot answer differently. CORS open, cacheable, CC0. Catalogue: [/tools/index.html](/tools/index.html) ([json](/tools/index.json), [md](/tools/index.md)). - [/tools/whoami](/tools/whoami.html): **Needs nothing from you.** Takes no arguments at all. It answers about the request you just made: the user-agent you sent, the address you came from, whether the crawler index recognises you, whether any operator publishes a prefix containing your address, the class this host's own instrument books you as, and whether we have seen you here before and what you fetched. Every fact comes from your own request headers or from a file this host already publishes; nothing is fetched and nothing about you is invented. `curl -s 'https://www.pathwren.workers.dev/tools/whoami?s=client-dossiers'` - [/tools/example](/tools/example.html): **Needs nothing from you.** Takes no arguments at all. It runs this host's flagship tool (classify_user_agent) on a canned input from our own published log — the busiest client we have seen — and returns exactly the answer a real call returns, not a mock. Use it to see the shape of an answer before deciding what to send. `curl -s 'https://www.pathwren.workers.dev/tools/example?s=client-dossiers'` - [/tools/verify-crawler](/tools/verify-crawler.html): Check one or more IP addresses against every crawler prefix the operators themselves publish (Google, OpenAI, Anthropic, Microsoft, Apple, Perplexity, Amazon and the rest, remirrored every six hours), and — when you name the crawler the client claimed to be — say whether the range that contains it belongs to that operator or to a different one. `curl -s 'https://www.pathwren.workers.dev/tools/verify-crawler?ip=66.249.66.1&ua=Googlebot&s=client-dossiers'` - [/tools/robots-lint](/tools/robots-lint.html): Paste a robots.txt and get every fault that makes it do something other than what it looks like: misspelled directives, a whole User-Agent string where a product token belongs, rules before any User-agent line, duplicate groups, noindex (unsupported since 2019), relative Sitemap URLs, a byte-order mark. Each finding carries the line number and the fix. `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'` - [/tools/robots-allowed](/tools/robots-allowed.html): Evaluate a pasted robots.txt for one crawler and one or more paths under RFC 9309 — longest token match for the group, longest pattern for the rule, Allow breaking a tie, * and $ supported — and get allowed/disallowed per path with the exact line that decided it, plus a flag on the cases where a merge-groups parser and a first-group-wins parser would disagree. `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'` - [/tools/ai-access](/tools/ai-access.html): 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. `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'` - [/tools/classify-ua](/tools/classify-ua.html): Identify the crawler behind a raw User-Agent header: operator, category, robots.txt token and stance, how it can be verified, and what blocking it costs. An unmatched string is reported as unmatched, with a labelled substring heuristic and never an identification. `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'` - [/tools/verification-methods](/tools/verification-methods.html): Before you read anything into a miss from /tools/verify-crawler: which crawlers can be verified by published prefix, which document forward-confirmed reverse DNS instead (with the exact two dig commands to run), and which publish no verification method at all — with the mirror's own counts and fetch dates. `curl -s 'https://www.pathwren.workers.dev/tools/verification-methods?crawler=claudebot&s=client-dossiers'` The same tools over MCP if you do speak it: `tools/call` at https://www.pathwren.workers.dev/mcp — and every MCP server here also publishes `whoami` and `example`, both of which take `arguments: {}`, so you can make a real call before you have decided what to ask. ## Every client observed asking this host for something One page each, generated from the request log. `not observed` means exactly that: we publish what we measured and never a guess, and nothing here is a claim about intent. - [GPTBot](/bot/gptbot.html) ([json](/bot/gptbot.json), [md](/bot/gptbot.md)): `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai` — 1835 request(s) from 11 address(es), 2026-09-01T05:23:47Z to 2026-09-03T06:00:46Z. - [SentinelOracle](/bot/sentineloracle.html) ([json](/bot/sentineloracle.json), [md](/bot/sentineloracle.md)): `SentinelOracle/0.1 (+https://glimind.com/opt-out; liveness-only, never invokes tools)` — 1463 request(s) from 1 address(es), 2026-09-01T01:24:24Z to 2026-09-03T06:23:38Z. - [ClaudeBot](/bot/claudebot.html) ([json](/bot/claudebot.json), [md](/bot/claudebot.md)): `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@a` — 1342 request(s) from 6 address(es), 2026-09-01T00:46:32Z to 2026-09-03T06:00:46Z. - [archive.org_bot](/bot/archive-org-bot.html) ([json](/bot/archive-org-bot.json), [md](/bot/archive-org-bot.md)): `Mozilla/5.0 (compatible; archive.org_bot +http://archive.org/details/archive.org_bot) Zeno` — 993 request(s) from 7 address(es), 2026-08-31T20:58:34Z to 2026-09-03T03:05:14Z. - [node](/bot/node.html) ([json](/bot/node.json), [md](/bot/node.md)): `node` — 929 request(s) from 53 address(es), 2026-08-31T22:49:52Z to 2026-09-03T06:25:34Z. - [mcpbeat](/bot/mcpbeat.html) ([json](/bot/mcpbeat.json), [md](/bot/mcpbeat.md)): `mcpbeat/0.1 (+https://mcpbeat.com/bot/; liveness check)` — 456 request(s) from 1 address(es), 2026-09-01T01:43:38Z to 2026-09-03T06:25:38Z. - [YandexBot](/bot/yandexbot.html) ([json](/bot/yandexbot.json), [md](/bot/yandexbot.md)): `Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)` — 434 request(s) from 252 address(es), 2026-08-31T20:58:12Z to 2026-09-03T02:29:48Z. - [ShapBot](/bot/shapbot.html) ([json](/bot/shapbot.json), [md](/bot/shapbot.md)): `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ShapBot/0.1.0` — 346 request(s) from 7 address(es), 2026-09-02T02:31:06Z to 2026-09-02T02:34:43Z. - [DataForSeoBot](/bot/dataforseobot.html) ([json](/bot/dataforseobot.json), [md](/bot/dataforseobot.md)): `Mozilla/5.0 (compatible; DataForSeoBot/1.0; +https://dataforseo.com/dataforseo-bot)` — 246 request(s) from 1 address(es), 2026-09-03T03:40:24Z to 2026-09-03T06:03:26Z. - [agent-tools.cloud-crawler](/bot/agent-tools-cloud-crawler.html) ([json](/bot/agent-tools-cloud-crawler.json), [md](/bot/agent-tools-cloud-crawler.md)): `agent-tools.cloud-crawler/0.1 (+https://agent-tools.cloud)` — 233 request(s) from 1 address(es), 2026-09-01T03:55:53Z to 2026-09-03T04:21:57Z. - [402explorer](/bot/402explorer.html) ([json](/bot/402explorer.json), [md](/bot/402explorer.md)): `402explorer/0.1 (+https://discover.paygent.net/about)` — 211 request(s) from 1 address(es), 2026-09-01T04:08:29Z to 2026-09-03T06:00:34Z. - [AgentDisco](/bot/agentdisco.html) ([json](/bot/agentdisco.json), [md](/bot/agentdisco.md)): `AgentDisco/1.0 (+https://agentdisco.io/bot)` — 197 request(s) from 1 address(es), 2026-09-01T02:28:30Z to 2026-09-02T06:59:26Z. - [undici](/bot/undici.html) ([json](/bot/undici.json), [md](/bot/undici.md)): `undici` — 160 request(s) from 3 address(es), 2026-09-01T00:36:09Z to 2026-09-03T06:01:15Z. - [AgentGrade](/bot/agentgrade.html) ([json](/bot/agentgrade.json), [md](/bot/agentgrade.md)): `AgentGrade/1.0 (security research; agentgrade.net)` — 155 request(s) from 1 address(es), 2026-09-01T02:53:17Z to 2026-09-03T02:53:44Z. - [agent-ready-scanner](/bot/agent-ready-scanner.html) ([json](/bot/agent-ready-scanner.json), [md](/bot/agent-ready-scanner.md)): `agent-ready-scanner/1.0 (+https://agent-ready.dev)` — 130 request(s) from 1 address(es), 2026-09-03T00:22:52Z to 2026-09-03T00:22:55Z. - [aisec-registry](/bot/aisec-registry.html) ([json](/bot/aisec-registry.json), [md](/bot/aisec-registry.md)): `aisec-registry/0.2 (+https://sec.sqrx.io)` — 100 request(s) from 5 address(es), 2026-09-01T09:17:24Z to 2026-09-02T09:13:55Z. - [Waggle](/bot/waggle.html) ([json](/bot/waggle.json), [md](/bot/waggle.md)): `Waggle/1.0 (+https://waggle.zone)` — 98 request(s) from 39 address(es), 2026-09-02T04:15:47Z to 2026-09-03T05:35:58Z. - [AgentGaugeBot](/bot/agentgaugebot.html) ([json](/bot/agentgaugebot.json), [md](/bot/agentgaugebot.md)): `AgentGaugeBot/1.0 (+https://agentgauge.ai; agent-readiness scanner)` — 87 request(s) from 1 address(es), 2026-09-03T05:27:45Z to 2026-09-03T05:37:54Z. - [AgentTrust-Monitor](/bot/agenttrust-monitor.html) ([json](/bot/agenttrust-monitor.json), [md](/bot/agenttrust-monitor.md)): `AgentTrust-Monitor/1.0 (+https://agenttrust.site/methodology)` — 79 request(s) from 1 address(es), 2026-09-01T03:08:31Z to 2026-09-03T06:16:27Z. - [A2A-Registry-HealthCheck](/bot/a2a-registry-healthcheck.html) ([json](/bot/a2a-registry-healthcheck.json), [md](/bot/a2a-registry-healthcheck.md)): `A2A-Registry-HealthCheck/1.0` — 68 request(s) from 12 address(es), 2026-09-01T02:52:12Z to 2026-09-03T06:02:49Z. - [Enerlio](/bot/enerlio.html) ([json](/bot/enerlio.json), [md](/bot/enerlio.md)): `Enerlio GmbH FACTANKER marc@enerlio.de` — 62 request(s) from 1 address(es), 2026-09-01T01:07:45Z to 2026-09-03T01:06:29Z. - [Mozilla](/bot/mozilla.html) ([json](/bot/mozilla.json), [md](/bot/mozilla.md)): `Mozilla/5.0` — 60 request(s) from 6 address(es), 2026-09-01T02:49:36Z to 2026-09-02T02:05:57Z. - [python-httpx](/bot/python-httpx.html) ([json](/bot/python-httpx.json), [md](/bot/python-httpx.md)): `python-httpx/0.28.1` — 55 request(s) from 13 address(es), 2026-08-31T22:44:55Z to 2026-09-03T06:12:53Z. - [Deno](/bot/deno.html) ([json](/bot/deno.json), [md](/bot/deno.md)): `Deno/2.7.5` — 45 request(s) from 12 address(es), 2026-08-31T22:30:06Z to 2026-09-02T09:32:00Z. - [APIEvangelist](/bot/apievangelist.html) ([json](/bot/apievangelist.json), [md](/bot/apievangelist.md)): `Mozilla/5.0 (compatible; APIEvangelist/1.0)` — 44 request(s) from 1 address(es), 2026-09-01T11:56:42Z to 2026-09-01T12:06:54Z. - [AgenstryBot](/bot/agenstrybot.html) ([json](/bot/agenstrybot.json), [md](/bot/agenstrybot.md)): `AgenstryBot/0.3.0 (+https://agenstry.com/bot)` — 43 request(s) from 1 address(es), 2026-09-01T04:28:51Z to 2026-09-03T02:59:00Z. - [ProofBench](/bot/proofbench.html) ([json](/bot/proofbench.json), [md](/bot/proofbench.md)): `ProofBench/0.1 (+https://proofbench.dev/about/probe; MCP registry health probe)` — 42 request(s) from 1 address(es), 2026-08-31T22:17:01Z to 2026-09-03T04:34:01Z. - [mcpscan](/bot/mcpscan.html) ([json](/bot/mcpscan.json), [md](/bot/mcpscan.md)): `mcpscan/1.0 (+https://modc2.com/mcpscan; MCP index crawler)` — 40 request(s) from 1 address(es), 2026-09-01T02:28:50Z to 2026-09-03T03:20:14Z. - [curl](/bot/curl.html) ([json](/bot/curl.json), [md](/bot/curl.md)): `curl/8.7.1` — 38 request(s) from 4 address(es), 2026-09-01T02:28:30Z to 2026-09-02T11:32:11Z. - [MCPWatch](/bot/mcpwatch.html) ([json](/bot/mcpwatch.json), [md](/bot/mcpwatch.md)): `MCPWatch/0.1.0 (+mcpwatch@iyre.com) longitudinal MCP security research` — 38 request(s) from 1 address(es), 2026-09-01T03:49:49Z to 2026-09-03T03:53:31Z. - [GolemreachTrustBot](/bot/golemreachtrustbot.html) ([json](/bot/golemreachtrustbot.json), [md](/bot/golemreachtrustbot.md)): `GolemreachTrustBot/0.1 (+https://golemreach.com/trust/bot)` — 37 request(s) from 1 address(es), 2026-09-01T00:48:12Z to 2026-09-03T06:22:00Z. - [python-httpx2](/bot/python-httpx2.html) ([json](/bot/python-httpx2.json), [md](/bot/python-httpx2.md)): `python-httpx2/2.12.0` — 36 request(s) from 4 address(es), 2026-08-31T22:15:20Z to 2026-09-02T08:58:41Z. - [python-requests](/bot/python-requests.html) ([json](/bot/python-requests.json), [md](/bot/python-requests.md)): `python-requests/2.33.0` — 33 request(s) from 30 address(es), 2026-09-01T06:23:35Z to 2026-09-02T07:52:09Z. - [SaSame-MCP-Audit](/bot/sasame-mcp-audit.html) ([json](/bot/sasame-mcp-audit.json), [md](/bot/sasame-mcp-audit.md)): `SaSame-MCP-Audit/0.1` — 31 request(s) from 1 address(es), 2026-09-01T01:07:30Z to 2026-09-03T06:01:15Z. - [Go-http-client](/bot/go-http-client.html) ([json](/bot/go-http-client.json), [md](/bot/go-http-client.md)): `Go-http-client/2.0` — 30 request(s) from 2 address(es), 2026-08-31T23:00:06Z to 2026-09-03T06:12:46Z. - [gtm-engine](/bot/gtm-engine.html) ([json](/bot/gtm-engine.json), [md](/bot/gtm-engine.md)): `gtm-engine/0.1 (+contact enrichment; no pattern-guessing)` — 30 request(s) from 1 address(es), 2026-09-01T16:51:55Z to 2026-09-01T16:52:07Z. - [Neuronto](/bot/neuronto.html) ([json](/bot/neuronto.json), [md](/bot/neuronto.md)): `Neuronto/1.0 (+https://neuronto.com/about; ARD registry; crawler)` — 27 request(s) from 2 address(es), 2026-09-01T08:18:38Z to 2026-09-03T05:23:57Z. - [apis.io-submit](/bot/apis-io-submit.html) ([json](/bot/apis-io-submit.json), [md](/bot/apis-io-submit.md)): `apis.io-submit/1.0 (+https://apis.io)` — 25 request(s) from 3 address(es), 2026-08-31T21:21:01Z to 2026-09-02T04:49:24Z. - [NotHumanSearch](/bot/nothumansearch.html) ([json](/bot/nothumansearch.json), [md](/bot/nothumansearch.md)): `NotHumanSearch/1.0 (+https://nothumansearch.ai/about)` — 25 request(s) from 1 address(es), 2026-09-03T04:08:25Z to 2026-09-03T05:06:48Z. - [Python](/bot/python.html) ([json](/bot/python.json), [md](/bot/python.md)): `Python/3.11 aiohttp/3.13.5` — 24 request(s) from 18 address(es), 2026-09-03T01:27:04Z to 2026-09-03T02:34:42Z. - [Amazonbot](/bot/amazonbot.html) ([json](/bot/amazonbot.json), [md](/bot/amazonbot.md)): `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1; +https://dev` — 23 request(s) from 23 address(es), 2026-09-02T04:57:56Z to 2026-09-03T05:57:16Z. - [ColonistOne](/bot/colonistone-2.html) ([json](/bot/colonistone-2.json), [md](/bot/colonistone-2.md)): `ColonistOne/1.0 (autonomous agent; review for thecolony.ai)` — 23 request(s) from 1 address(es), 2026-09-03T05:35:05Z to 2026-09-03T05:38:53Z. - [davefeedread](/bot/davefeedread.html) ([json](/bot/davefeedread.json), [md](/bot/davefeedread.md)): `davefeedread v0.5.25` — 23 request(s) from 1 address(es), 2026-09-03T01:08:27Z to 2026-09-03T06:20:57Z. - [io.verifymcp](/bot/io-verifymcp.html) ([json](/bot/io-verifymcp.json), [md](/bot/io-verifymcp.md)): `io.verifymcp/probe` — 23 request(s) from 1 address(es), 2026-08-31T23:00:06Z to 2026-09-03T06:12:45Z. - [TAR-Directory-Indexer](/bot/tar-directory-indexer.html) ([json](/bot/tar-directory-indexer.json), [md](/bot/tar-directory-indexer.md)): `TAR-Directory-Indexer/1.0` — 22 request(s) from 1 address(es), 2026-09-01T03:27:40Z to 2026-09-03T03:19:26Z. - [AgentPointsDirectoryEnricher](/bot/agentpointsdirectoryenricher.html) ([json](/bot/agentpointsdirectoryenricher.json), [md](/bot/agentpointsdirectoryenricher.md)): `AgentPointsDirectoryEnricher/1.0 (+https://agentpoints.net)` — 21 request(s) from 1 address(es), 2026-09-02T04:20:57Z to 2026-09-03T04:22:50Z. - [ardcrawl](/bot/ardcrawl.html) ([json](/bot/ardcrawl.json), [md](/bot/ardcrawl.md)): `ardcrawl/0.1 (+https://wellknownhq.com/crawler; ARD catalog census; contact: crawler@wellk` — 21 request(s) from 1 address(es), 2026-09-01T09:41:14Z to 2026-09-03T02:01:40Z. - [lastseen-schema-probe](/bot/lastseen-schema-probe.html) ([json](/bot/lastseen-schema-probe.json), [md](/bot/lastseen-schema-probe.md)): `lastseen-schema-probe/1.0 (+https://lastseen.dev; introspection-only)` — 21 request(s) from 1 address(es), 2026-09-01T06:12:51Z to 2026-09-03T06:07:27Z. - [GoogleOther](/bot/googleother.html) ([json](/bot/googleother.json), [md](/bot/googleother.md)): `Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like ` — 20 request(s) from 4 address(es), 2026-09-02T00:10:06Z to 2026-09-03T05:33:51Z. - [GuzzleHttp](/bot/guzzlehttp.html) ([json](/bot/guzzlehttp.json), [md](/bot/guzzlehttp.md)): `GuzzleHttp/7` — 20 request(s) from 6 address(es), 2026-08-31T22:09:48Z to 2026-09-03T05:01:56Z. - [mcp-checker](/bot/mcp-checker.html) ([json](/bot/mcp-checker.json), [md](/bot/mcp-checker.md)): `mcp-checker/1.0` — 20 request(s) from 1 address(es), 2026-09-01T05:31:12Z to 2026-09-02T03:15:32Z. - [meta-externalagent](/bot/meta-externalagent.html) ([json](/bot/meta-externalagent.json), [md](/bot/meta-externalagent.md)): `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/14` — 20 request(s) from 15 address(es), 2026-09-03T00:05:33Z to 2026-09-03T06:24:31Z. - [x402-observatory](/bot/x402-observatory.html) ([json](/bot/x402-observatory.json), [md](/bot/x402-observatory.md)): `x402-observatory/0.2 (+research collector; contact: 300tsb@gmail.com)` — 19 request(s) from 2 address(es), 2026-09-01T06:13:13Z to 2026-09-02T08:39:15Z. - [bingbot](/bot/bingbot.html) ([json](/bot/bingbot.json), [md](/bot/bingbot.md)): `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bi` — 18 request(s) from 12 address(es), 2026-08-31T20:58:11Z to 2026-09-03T05:19:48Z. - [hultra-link](/bot/hultra-link.html) ([json](/bot/hultra-link.json), [md](/bot/hultra-link.md)): `hultra-link/1.0 (+https://donnees.hultra.link/sondes.md)` — 18 request(s) from 2 address(es), 2026-08-31T22:10:04Z to 2026-09-03T03:20:02Z. - [Orbit-MCP-Registry-IconResolver](/bot/orbit-mcp-registry-iconresolver.html) ([json](/bot/orbit-mcp-registry-iconresolver.json), [md](/bot/orbit-mcp-registry-iconresolver.md)): `Orbit-MCP-Registry-IconResolver/1.0` — 18 request(s) from 4 address(es), 2026-08-31T22:09:49Z to 2026-09-01T00:38:25Z. - [LLMSE](/bot/llmse.html) ([json](/bot/llmse.json), [md](/bot/llmse.md)): `Mozilla/5.0 (compatible; LLMSE/1.7.2; +https://llmse.ai/about)` — 17 request(s) from 1 address(es), 2026-09-03T05:17:24Z to 2026-09-03T05:37:51Z. - [EndpointAudit](/bot/endpointaudit.html) ([json](/bot/endpointaudit.json), [md](/bot/endpointaudit.md)): `EndpointAudit/0.1 (+https://github.com/Zorglub354/endpointaudit)` — 15 request(s) from 3 address(es), 2026-09-01T01:54:55Z to 2026-09-03T01:55:53Z. - [SmitheryBot](/bot/smitherybot.html) ([json](/bot/smitherybot.json), [md](/bot/smitherybot.md)): `SmitheryBot/1.0 (+https://smithery.ai)` — 15 request(s) from 1 address(es), 2026-09-02T09:06:23Z to 2026-09-02T09:07:23Z. - [A2A-Registry-Scanner](/bot/a2a-registry-scanner.html) ([json](/bot/a2a-registry-scanner.json), [md](/bot/a2a-registry-scanner.md)): `A2A-Registry-Scanner/1.0 (Mozilla/5.0 Compatible)` — 14 request(s) from 1 address(es), 2026-09-02T06:43:23Z to 2026-09-03T02:01:47Z. - [agent-guild-scout](/bot/agent-guild-scout.html) ([json](/bot/agent-guild-scout.json), [md](/bot/agent-guild-scout.md)): `agent-guild-scout/1 (+https://agent-guild-5d5r.onrender.com/.well-known/agent-guild.json)` — 14 request(s) from 1 address(es), 2026-09-01T04:15:17Z to 2026-09-03T06:18:04Z. - [mcp-observatory](/bot/mcp-observatory.html) ([json](/bot/mcp-observatory.json), [md](/bot/mcp-observatory.md)): `mcp-observatory/0.1.0 (+https://github.com/yhouta/mcp-observatory; public transparency log` — 14 request(s) from 1 address(es), 2026-09-01T03:08:29Z to 2026-09-03T03:06:42Z. - [mcpgrade-probe](/bot/mcpgrade-probe.html) ([json](/bot/mcpgrade-probe.json), [md](/bot/mcpgrade-probe.md)): `mcpgrade-probe/0.1` — 14 request(s) from 1 address(es), 2026-09-01T07:07:29Z to 2026-09-02T07:08:26Z. - [measure-mcp-schema](/bot/measure-mcp-schema.html) ([json](/bot/measure-mcp-schema.json), [md](/bot/measure-mcp-schema.md)): `measure-mcp-schema/0.1.0` — 14 request(s) from 1 address(es), 2026-09-01T03:33:48Z to 2026-09-03T03:31:06Z. - [QtCreator](/bot/qtcreator.html) ([json](/bot/qtcreator.json), [md](/bot/qtcreator.md)): `QtCreator/20.0.1 (QNetworkAccessManager 6.11.1; OpenMandriva Lx 26.02 (ROME) Rolling; en_U` — 14 request(s) from 13 address(es), 2026-09-01T06:24:35Z to 2026-09-02T12:15:44Z. - [TAR-Discovery](/bot/tar-discovery.html) ([json](/bot/tar-discovery.json), [md](/bot/tar-discovery.md)): `TAR-Discovery/1.0` — 14 request(s) from 1 address(es), 2026-09-01T03:41:21Z to 2026-09-03T03:32:08Z. - [TAR-Health](/bot/tar-health.html) ([json](/bot/tar-health.json), [md](/bot/tar-health.md)): `TAR-Health/1.0` — 14 request(s) from 1 address(es), 2026-09-01T03:41:21Z to 2026-09-03T03:32:08Z. - [utopian-foundry-probe](/bot/utopian-foundry-probe.html) ([json](/bot/utopian-foundry-probe.json), [md](/bot/utopian-foundry-probe.md)): `utopian-foundry-probe/1.0` — 14 request(s) from 1 address(es), 2026-09-01T06:12:38Z to 2026-09-03T06:10:51Z. - [api-forge-mcp-index](/bot/api-forge-mcp-index.html) ([json](/bot/api-forge-mcp-index.json), [md](/bot/api-forge-mcp-index.md)): `api-forge-mcp-index/1.0 (+https://api.temsor.com/mcp/index; iletisim: altyapi@temsor.com)` — 13 request(s) from 1 address(es), 2026-09-01T01:29:04Z to 2026-09-03T01:29:54Z. - [mcp-registry](/bot/mcp-registry.html) ([json](/bot/mcp-registry.json), [md](/bot/mcp-registry.md)): `mcp-registry/1.0` — 13 request(s) from 2 address(es), 2026-08-31T22:02:23Z to 2026-09-02T08:53:27Z. - [mcp-schema-archive](/bot/mcp-schema-archive.html) ([json](/bot/mcp-schema-archive.json), [md](/bot/mcp-schema-archive.md)): `mcp-schema-archive/1.0 (+https://mcp-schema-archive.delfrost42.workers.dev)` — 13 request(s) from 1 address(es), 2026-09-01T03:37:27Z to 2026-09-02T07:33:09Z. - [mcpi](/bot/mcpi.html) ([json](/bot/mcpi.json), [md](/bot/mcpi.md)): `mcpi/probe` — 13 request(s) from 1 address(es), 2026-09-02T23:06:48Z to 2026-09-03T00:31:54Z. - [Mozilla](/bot/mozilla-2.html) ([json](/bot/mozilla-2.json), [md](/bot/mozilla-2.md)): `Mozilla/5.0 (Compatible; Feedsearch Bot; +https://feedsearch.dev)` — 13 request(s) from 4 address(es), 2026-09-01T09:45:16Z to 2026-09-01T15:27:10Z. - [reliability-bureau-spike](/bot/reliability-bureau-spike.html) ([json](/bot/reliability-bureau-spike.json), [md](/bot/reliability-bureau-spike.md)): `reliability-bureau-spike/0.1` — 13 request(s) from 2 address(es), 2026-09-01T09:20:59Z to 2026-09-02T09:27:57Z. - [VerifyMCP-OwnersBot](/bot/verifymcp-ownersbot.html) ([json](/bot/verifymcp-ownersbot.json), [md](/bot/verifymcp-ownersbot.md)): `VerifyMCP-OwnersBot/1.0 (+https://verifymcp.io/docs/build/owners-json)` — 13 request(s) from 1 address(es), 2026-08-31T23:12:20Z to 2026-09-03T04:13:57Z. - [ColonistOne](/bot/colonistone.html) ([json](/bot/colonistone.json), [md](/bot/colonistone.md)): `ColonistOne/1.0 (autonomous agent; review for thecolony.ai; +https://thecolony.ai/u/coloni` — 12 request(s) from 1 address(es), 2026-09-03T05:34:46Z to 2026-09-03T05:34:50Z. - [FreePublicAPIs](/bot/freepublicapis.html) ([json](/bot/freepublicapis.json), [md](/bot/freepublicapis.md)): `Mozilla/5.0 (compatible; FreePublicAPIs/1.0; +https://freepublicapis.com)` — 12 request(s) from 1 address(es), 2026-09-02T04:45:07Z to 2026-09-03T04:50:15Z. - [Googlebot](/bot/googlebot.html) ([json](/bot/googlebot.json), [md](/bot/googlebot.md)): `Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)` — 12 request(s) from 5 address(es), 2026-09-02T00:11:50Z to 2026-09-03T06:09:41Z. - [SaSameAgentAudit](/bot/sasameagentaudit.html) ([json](/bot/sasameagentaudit.json), [md](/bot/sasameagentaudit.md)): `SaSameAgentAudit/0.1 (+https://live-vps.sasame.online/.well-known/agent-card.json)` — 12 request(s) from 1 address(es), 2026-09-01T01:06:44Z to 2026-09-02T01:40:11Z. - [strand-mcp](/bot/strand-mcp.html) ([json](/bot/strand-mcp.json), [md](/bot/strand-mcp.md)): `strand-mcp/0.1 (+sync)` — 12 request(s) from 1 address(es), 2026-09-02T03:22:45Z to 2026-09-03T03:23:12Z. - [spanly-enrich](/bot/spanly-enrich.html) ([json](/bot/spanly-enrich.json), [md](/bot/spanly-enrich.md)): `spanly-enrich/1.0 (+https://spanly.com)` — 11 request(s) from 1 address(es), 2026-09-01T11:44:27Z to 2026-09-01T11:44:28Z. - [a2a-directory-liveness](/bot/a2a-directory-liveness.html) ([json](/bot/a2a-directory-liveness.json), [md](/bot/a2a-directory-liveness.md)): `a2a-directory-liveness` — 10 request(s) from 1 address(es), 2026-09-01T02:27:27Z to 2026-09-01T15:55:09Z. - [AgentIndexBot](/bot/agentindexbot.html) ([json](/bot/agentindexbot.json), [md](/bot/agentindexbot.md)): `AgentIndexBot/0.1 (+https://agents.traderszone.net; polite ARD crawler)` — 10 request(s) from 1 address(es), 2026-09-01T04:07:21Z to 2026-09-03T04:32:28Z. - [Agentry-Registry](/bot/agentry-registry.html) ([json](/bot/agentry-registry.json), [md](/bot/agentry-registry.md)): `Agentry-Registry/1.0` — 10 request(s) from 1 address(es), 2026-09-01T09:48:46Z to 2026-09-03T06:06:26Z. - [oauth4webapi](/bot/oauth4webapi.html) ([json](/bot/oauth4webapi.json), [md](/bot/oauth4webapi.md)): `oauth4webapi/v3.8.5` — 10 request(s) from 1 address(es), 2026-09-02T09:06:24Z to 2026-09-02T09:07:24Z. - [SolvedEarthPriceBot](/bot/solvedearthpricebot.html) ([json](/bot/solvedearthpricebot.json), [md](/bot/solvedearthpricebot.md)): `Mozilla/5.0 (compatible; SolvedEarthPriceBot/2.0; +https://solved.earth)` — 10 request(s) from 1 address(es), 2026-09-02T02:30:49Z to 2026-09-03T04:14:05Z. - [agent-world-probe](/bot/agent-world-probe.html) ([json](/bot/agent-world-probe.json), [md](/bot/agent-world-probe.md)): `agent-world-probe/py-0.95 (research; MCP census)` — 9 request(s) from 2 address(es), 2026-09-01T08:54:05Z to 2026-09-02T08:04:52Z. - [A2A-Registry-Healthbot](/bot/a2a-registry-healthbot.html) ([json](/bot/a2a-registry-healthbot.json), [md](/bot/a2a-registry-healthbot.md)): `A2A-Registry-Healthbot/1.0 (background-job)` — 8 request(s) from 1 address(es), 2026-09-03T02:01:03Z to 2026-09-03T02:01:47Z. - [jscrawler](/bot/jscrawler.html) ([json](/bot/jscrawler.json), [md](/bot/jscrawler.md)): `Mozilla/5.0 (compatible; jscrawler/0.1; +https://github.com/)` — 8 request(s) from 1 address(es), 2026-09-03T00:06:47Z to 2026-09-03T00:06:47Z. - [MCPWitness](/bot/mcpwitness.html) ([json](/bot/mcpwitness.json), [md](/bot/mcpwitness.md)): `MCPWitness/1.0 (health probe; +https://mcpwitness.com)` — 8 request(s) from 3 address(es), 2026-09-01T06:30:51Z to 2026-09-03T03:31:38Z. - [pip](/bot/pip.html) ([json](/bot/pip.json), [md](/bot/pip.md)): `pip/24.3.1 {"ci":null,"cpu":"x86_64","implementation":{"name":"CPython","version":"3.11.9"` — 8 request(s) from 1 address(es), 2026-09-01T06:13:45Z to 2026-09-01T18:52:50Z. - [truespar-mcp-registry](/bot/truespar-mcp-registry.html) ([json](/bot/truespar-mcp-registry.json), [md](/bot/truespar-mcp-registry.md)): `truespar-mcp-registry/0.1 (+https://registry.truespar.com)` — 8 request(s) from 1 address(es), 2026-09-01T02:28:06Z to 2026-09-03T02:46:17Z. - [AgentReputationBot](/bot/agentreputationbot.html) ([json](/bot/agentreputationbot.json), [md](/bot/agentreputationbot.md)): `AgentReputationBot/1.0 (+https://agentreputation.dev)` — 7 request(s) from 3 address(es), 2026-09-01T03:47:16Z to 2026-09-03T03:18:55Z. - [merlonix-attestation-verifier](/bot/merlonix-attestation-verifier.html) ([json](/bot/merlonix-attestation-verifier.json), [md](/bot/merlonix-attestation-verifier.md)): `merlonix-attestation-verifier/1` — 7 request(s) from 1 address(es), 2026-09-03T06:00:45Z to 2026-09-03T06:00:45Z. - [PerplexityBot](/bot/perplexitybot.html) ([json](/bot/perplexitybot.json), [md](/bot/perplexitybot.md)): `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https:/` — 7 request(s) from 5 address(es), 2026-09-02T05:52:18Z to 2026-09-03T06:00:46Z. - [ReactorNetty](/bot/reactornetty.html) ([json](/bot/reactornetty.json), [md](/bot/reactornetty.md)): `ReactorNetty/1.2.1` — 7 request(s) from 4 address(es), 2026-08-31T20:58:14Z to 2026-09-03T05:00:19Z. - [teppi-probe](/bot/teppi-probe.html) ([json](/bot/teppi-probe.json), [md](/bot/teppi-probe.md)): `teppi-probe/0.1.0` — 7 request(s) from 2 address(es), 2026-09-02T02:48:35Z to 2026-09-02T13:17:18Z. - [A2A-Registry-TaskProbe](/bot/a2a-registry-taskprobe.html) ([json](/bot/a2a-registry-taskprobe.json), [md](/bot/a2a-registry-taskprobe.md)): `A2A-Registry-TaskProbe/1.0 (+https://a2aregistry.org)` — 6 request(s) from 3 address(es), 2026-09-01T02:25:59Z to 2026-09-03T02:59:51Z. - [ChainWitness-PR36](/bot/chainwitness-pr36.html) ([json](/bot/chainwitness-pr36.json), [md](/bot/chainwitness-pr36.md)): `ChainWitness-PR36/1.0` — 6 request(s) from 1 address(es), 2026-09-03T04:40:10Z to 2026-09-03T04:40:10Z. - [exaforce-mcprep](/bot/exaforce-mcprep.html) ([json](/bot/exaforce-mcprep.json), [md](/bot/exaforce-mcprep.md)): `exaforce-mcprep/0.1 (MCP server reputation scanner)` — 6 request(s) from 2 address(es), 2026-08-31T22:32:28Z to 2026-09-01T03:23:58Z. - [mcp-drift-monitor](/bot/mcp-drift-monitor.html) ([json](/bot/mcp-drift-monitor.json), [md](/bot/mcp-drift-monitor.md)): `mcp-drift-monitor/0.1 (read-only tool-definition observer)` — 6 request(s) from 1 address(es), 2026-09-01T06:28:10Z to 2026-09-03T00:28:00Z. - [mcp-rugpull-research](/bot/mcp-rugpull-research.html) ([json](/bot/mcp-rugpull-research.json), [md](/bot/mcp-rugpull-research.md)): `mcp-rugpull-research/1.0` — 6 request(s) from 1 address(es), 2026-09-01T16:13:49Z to 2026-09-01T16:13:59Z. - [movanas-registry-snapshot](/bot/movanas-registry-snapshot.html) ([json](/bot/movanas-registry-snapshot.json), [md](/bot/movanas-registry-snapshot.md)): `movanas-registry-snapshot` — 6 request(s) from 1 address(es), 2026-08-31T22:43:36Z to 2026-08-31T23:06:09Z. - [rootz-mcp-registry-prober](/bot/rootz-mcp-registry-prober.html) ([json](/bot/rootz-mcp-registry-prober.json), [md](/bot/rootz-mcp-registry-prober.md)): `rootz-mcp-registry-prober/0.1` — 6 request(s) from 1 address(es), 2026-09-01T09:17:24Z to 2026-09-02T09:17:27Z. - [TelegramBot](/bot/telegrambot.html) ([json](/bot/telegrambot.json), [md](/bot/telegrambot.md)): `TelegramBot (like TwitterBot)` — 6 request(s) from 4 address(es), 2026-09-01T05:44:24Z to 2026-09-02T06:48:07Z. - [a2a-directory-discovery](/bot/a2a-directory-discovery.html) ([json](/bot/a2a-directory-discovery.json), [md](/bot/a2a-directory-discovery.md)): `a2a-directory-discovery` — 5 request(s) from 1 address(es), 2026-09-01T02:27:27Z to 2026-09-01T15:55:09Z. - [mcpqueen-grader](/bot/mcpqueen-grader.html) ([json](/bot/mcpqueen-grader.json), [md](/bot/mcpqueen-grader.md)): `mcpqueen-grader/0.3 (+https://mcpqueen.com)` — 5 request(s) from 1 address(es), 2026-09-01T12:45:45Z to 2026-09-02T07:00:41Z. - [AhrefsBot](/bot/ahrefsbot.html) ([json](/bot/ahrefsbot.json), [md](/bot/ahrefsbot.md)): `Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)` — 4 request(s) from 4 address(es), 2026-09-01T12:22:33Z to 2026-09-01T13:00:44Z. - [axios](/bot/axios.html) ([json](/bot/axios.json), [md](/bot/axios.md)): `axios/1.10.0` — 4 request(s) from 1 address(es), 2026-09-01T07:09:31Z to 2026-09-01T07:43:00Z. - [hlido-a50-probe](/bot/hlido-a50-probe.html) ([json](/bot/hlido-a50-probe.json), [md](/bot/hlido-a50-probe.md)): `hlido-a50-probe/1.0 (+https://hlido.eu/eu-ai-act/)` — 4 request(s) from 1 address(es), 2026-09-03T05:15:32Z to 2026-09-03T05:31:46Z. - [loop-mcp-catalog-fetch](/bot/loop-mcp-catalog-fetch.html) ([json](/bot/loop-mcp-catalog-fetch.json), [md](/bot/loop-mcp-catalog-fetch.md)): `loop-mcp-catalog-fetch/0.1.0` — 4 request(s) from 1 address(es), 2026-09-01T07:49:49Z to 2026-09-01T07:49:49Z. - [mwmbl](/bot/mwmbl.html) ([json](/bot/mwmbl.json), [md](/bot/mwmbl.md)): `mwmbl/0.2.0 (https://github.com/mwmbl/mwmbl/ contact CHANGE_ME@example.com)` — 4 request(s) from 1 address(es), 2026-09-01T06:48:00Z to 2026-09-01T06:48:00Z. - [AgentAlmanac-Snapshot](/bot/agentalmanac-snapshot.html) ([json](/bot/agentalmanac-snapshot.json), [md](/bot/agentalmanac-snapshot.md)): `AgentAlmanac-Snapshot/1.0 (+https://agentalmanac.org)` — 3 request(s) from 1 address(es), 2026-09-02T06:30:42Z to 2026-09-02T06:30:42Z. - [ai-crawler-logs](/bot/ai-crawler-logs.html) ([json](/bot/ai-crawler-logs.json), [md](/bot/ai-crawler-logs.md)): `ai-crawler-logs/1.0.0` — 3 request(s) from 1 address(es), 2026-09-03T00:22:22Z to 2026-09-03T00:22:43Z. - [ai-crawler-robots](/bot/ai-crawler-robots.html) ([json](/bot/ai-crawler-robots.json), [md](/bot/ai-crawler-robots.md)): `ai-crawler-robots/1.0.0` — 3 request(s) from 1 address(es), 2026-09-03T00:22:44Z to 2026-09-03T00:22:47Z. - [ai-crawler-verify](/bot/ai-crawler-verify.html) ([json](/bot/ai-crawler-verify.json), [md](/bot/ai-crawler-verify.md)): `ai-crawler-verify/1.0.0` — 3 request(s) from 2 address(es), 2026-09-01T17:27:19Z to 2026-09-03T00:22:50Z. - [AIVE-MCP-Discover](/bot/aive-mcp-discover.html) ([json](/bot/aive-mcp-discover.json), [md](/bot/aive-mcp-discover.md)): `AIVE-MCP-Discover/1.0 (+https://aive.global/mcp-trust/census; one server/discover POST per` — 3 request(s) from 1 address(es), 2026-09-02T07:31:36Z to 2026-09-02T07:39:50Z. - [AIVE-MCP-EndpointProbe](/bot/aive-mcp-endpointprobe.html) ([json](/bot/aive-mcp-endpointprobe.json), [md](/bot/aive-mcp-endpointprobe.md)): `AIVE-MCP-EndpointProbe/1.0 (+https://github.com/eXaive/aive-ingest; reachability check onl` — 3 request(s) from 1 address(es), 2026-09-01T12:37:31Z to 2026-09-01T12:37:31Z. - [apievangelist-security-probe](/bot/apievangelist-security-probe.html) ([json](/bot/apievangelist-security-probe.json), [md](/bot/apievangelist-security-probe.md)): `Mozilla/5.0 (compatible; apievangelist-security-probe/1.0)` — 3 request(s) from 1 address(es), 2026-09-01T11:59:36Z to 2026-09-01T11:59:36Z. - [MCP-Catalog](/bot/mcp-catalog.html) ([json](/bot/mcp-catalog.json), [md](/bot/mcp-catalog.md)): `Mozilla/5.0 (compatible; MCP-Catalog/1.0)` — 3 request(s) from 1 address(es), 2026-09-01T14:14:28Z to 2026-09-01T14:14:28Z. - [MCP-Stats-Prober](/bot/mcp-stats-prober.html) ([json](/bot/mcp-stats-prober.json), [md](/bot/mcp-stats-prober.md)): `MCP-Stats-Prober/0.1 (+https://github.com/anthropics/mcp-stats)` — 3 request(s) from 3 address(es), 2026-09-01T13:08:09Z to 2026-09-03T01:07:42Z. - [MCPCatalogSync](/bot/mcpcatalogsync.html) ([json](/bot/mcpcatalogsync.json), [md](/bot/mcpcatalogsync.md)): `Mozilla/5.0 (compatible; MCPCatalogSync/1.0)` — 3 request(s) from 3 address(es), 2026-09-01T01:36:35Z to 2026-09-01T01:54:15Z. - [MCPMeter](/bot/mcpmeter.html) ([json](/bot/mcpmeter.json), [md](/bot/mcpmeter.md)): `MCPMeter/1.0 (+https://mcpmeter.dev/about; measurement bot; contact via site)` — 3 request(s) from 1 address(es), 2026-08-31T23:48:38Z to 2026-09-01T11:30:41Z. - [PackageHound](/bot/packagehound.html) ([json](/bot/packagehound.json), [md](/bot/packagehound.md)): `PackageHound/1.0` — 3 request(s) from 3 address(es), 2026-09-01T06:13:51Z to 2026-09-01T17:26:06Z. - [packages.ecosyste.ms](/bot/packages-ecosyste-ms.html) ([json](/bot/packages-ecosyste-ms.json), [md](/bot/packages-ecosyste-ms.md)): `packages.ecosyste.ms` — 3 request(s) from 1 address(es), 2026-09-02T01:01:57Z to 2026-09-03T00:03:35Z. - [ping.blo.gs](/bot/ping-blo-gs.html) ([json](/bot/ping-blo-gs.json), [md](/bot/ping-blo-gs.md)): `ping.blo.gs/2.0` — 3 request(s) from 2 address(es), 2026-09-03T01:21:19Z to 2026-09-03T03:05:22Z. - [A2A-Registry](/bot/a2a-registry.html) ([json](/bot/a2a-registry.json), [md](/bot/a2a-registry.md)): `A2A-Registry/1.0` — 2 request(s) from 2 address(es), 2026-09-01T02:25:59Z to 2026-09-01T09:08:31Z. - [a2a-security-research-crawler](/bot/a2a-security-research-crawler.html) ([json](/bot/a2a-security-research-crawler.json), [md](/bot/a2a-security-research-crawler.md)): `a2a-security-research-crawler/1.0 (academic; contact: security-research)` — 2 request(s) from 1 address(es), 2026-09-02T01:00:09Z to 2026-09-03T01:00:05Z. - [AetherLink-Public-Discovery-Evidence](/bot/aetherlink-public-discovery-evidence.html) ([json](/bot/aetherlink-public-discovery-evidence.json), [md](/bot/aetherlink-public-discovery-evidence.md)): `AetherLink-Public-Discovery-Evidence/1.0` — 2 request(s) from 1 address(es), 2026-09-01T04:00:04Z to 2026-09-01T04:01:16Z. - [AffsignalCrawler](/bot/affsignalcrawler.html) ([json](/bot/affsignalcrawler.json), [md](/bot/affsignalcrawler.md)): `Mozilla/5.0 (compatible; AffsignalCrawler/1.0; +https://affsignal.com/bot)` — 2 request(s) from 2 address(es), 2026-09-02T20:02:10Z to 2026-09-02T20:02:27Z. - [AgentCatalogBot](/bot/agentcatalogbot.html) ([json](/bot/agentcatalogbot.json), [md](/bot/agentcatalogbot.md)): `AgentCatalogBot/1.0 (+https://agentcatalog.com/policy)` — 2 request(s) from 1 address(es), 2026-09-01T13:30:50Z to 2026-09-01T13:33:20Z. - [AzureAI-SearchBot](/bot/azureai-searchbot.html) ([json](/bot/azureai-searchbot.json), [md](/bot/azureai-searchbot.md)): `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; AzureAI-SearchBot/1.0;` — 2 request(s) from 1 address(es), 2026-09-02T07:48:11Z to 2026-09-02T07:48:11Z. - [Discordbot](/bot/discordbot.html) ([json](/bot/discordbot.json), [md](/bot/discordbot.md)): `Mozilla/5.0 (compatible; Discordbot/2.0; +https://discordapp.com)` — 2 request(s) from 2 address(es), 2026-09-02T06:59:22Z to 2026-09-02T07:00:49Z. - [DuckDuckBot](/bot/duckduckbot.html) ([json](/bot/duckduckbot.json), [md](/bot/duckduckbot.md)): `DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html)` — 2 request(s) from 1 address(es), 2026-09-02T07:36:46Z to 2026-09-02T07:36:47Z. - [frndOS](/bot/frndos.html) ([json](/bot/frndos.json), [md](/bot/frndos.md)): `frndOS/1 CFNetwork/3860.500.112 Darwin/25.4.0` — 2 request(s) from 2 address(es), 2026-09-01T12:06:12Z to 2026-09-02T09:22:34Z. - [GF-Agent-Toll-Outbound](/bot/gf-agent-toll-outbound.html) ([json](/bot/gf-agent-toll-outbound.json), [md](/bot/gf-agent-toll-outbound.md)): `GF-Agent-Toll-Outbound/1.6.0` — 2 request(s) from 1 address(es), 2026-09-01T02:56:53Z to 2026-09-01T02:56:53Z. - [GF-Agent-Toll-Remediation](/bot/gf-agent-toll-remediation.html) ([json](/bot/gf-agent-toll-remediation.json), [md](/bot/gf-agent-toll-remediation.md)): `GF-Agent-Toll-Remediation/1.0` — 2 request(s) from 1 address(es), 2026-09-01T03:03:03Z to 2026-09-01T03:03:03Z. - [invinoveritas-handshake](/bot/invinoveritas-handshake.html) ([json](/bot/invinoveritas-handshake.json), [md](/bot/invinoveritas-handshake.md)): `invinoveritas-handshake/1.0 (+https://api.babyblueviper.com)` — 2 request(s) from 1 address(es), 2026-09-01T16:15:28Z to 2026-09-01T16:15:28Z. - [llm4agents-cimd-audit](/bot/llm4agents-cimd-audit.html) ([json](/bot/llm4agents-cimd-audit.json), [md](/bot/llm4agents-cimd-audit.md)): `llm4agents-cimd-audit/1.0 (+https://llm4agents.com)` — 2 request(s) from 1 address(es), 2026-09-01T09:12:32Z to 2026-09-01T09:12:32Z. - [mcp-uptime](/bot/mcp-uptime.html) ([json](/bot/mcp-uptime.json), [md](/bot/mcp-uptime.md)): `mcp-uptime/0.3 (+https://mcp-uptime.theopslog.workers.dev)` — 2 request(s) from 1 address(es), 2026-09-01T08:49:41Z to 2026-09-01T08:49:42Z. - [mcpcheck](/bot/mcpcheck.html) ([json](/bot/mcpcheck.json), [md](/bot/mcpcheck.md)): `mcpcheck/0.1 (Plumbline MCP liveness probe; read-only; contact plumbline@airmail.cc)` — 2 request(s) from 1 address(es), 2026-09-02T13:30:55Z to 2026-09-02T13:31:22Z. - [SiteGuardian](/bot/siteguardian.html) ([json](/bot/siteguardian.json), [md](/bot/siteguardian.md)): `SiteGuardian/1.4 (+https://siteguardian.io/bot; EU compliance & uptime monitoring)` — 2 request(s) from 1 address(es), 2026-09-03T06:00:33Z to 2026-09-03T06:00:33Z. - [trustoven-manifest-observer](/bot/trustoven-manifest-observer.html) ([json](/bot/trustoven-manifest-observer.json), [md](/bot/trustoven-manifest-observer.md)): `trustoven-manifest-observer/1.0 (+https://trustoven.com/docs/crawler)` — 2 request(s) from 1 address(es), 2026-09-01T06:22:31Z to 2026-09-01T06:22:31Z. - [Watchpup](/bot/watchpup.html) ([json](/bot/watchpup.json), [md](/bot/watchpup.md)): `Watchpup/1.0 (+https://watchpup.dev; MCP monitor)` — 2 request(s) from 1 address(es), 2026-09-03T05:57:42Z to 2026-09-03T06:12:42Z. - [A2A-Indexer](/bot/a2a-indexer.html) ([json](/bot/a2a-indexer.json), [md](/bot/a2a-indexer.md)): `Mozilla/5.0 (compatible; A2A-Indexer/1.0)` — 1 request(s) from 1 address(es), 2026-09-02T20:21:29Z to 2026-09-02T20:21:29Z. - [AetherLink-Public-Agent-Card-Policy-Check](/bot/aetherlink-public-agent-card-policy-check.html) ([json](/bot/aetherlink-public-agent-card-policy-check.json), [md](/bot/aetherlink-public-agent-card-policy-check.md)): `AetherLink-Public-Agent-Card-Policy-Check/1.0` — 1 request(s) from 1 address(es), 2026-09-01T03:13:23Z to 2026-09-01T03:13:23Z. - [AetherLinkDiscoveryEvidence](/bot/aetherlinkdiscoveryevidence.html) ([json](/bot/aetherlinkdiscoveryevidence.json), [md](/bot/aetherlinkdiscoveryevidence.md)): `AetherLinkDiscoveryEvidence/1.0 (+https://aetherlink.47-85-186-77.sslip.io/llms.txt)` — 1 request(s) from 1 address(es), 2026-09-01T03:30:37Z to 2026-09-01T03:30:37Z. - [AgentSure-MCPScan](/bot/agentsure-mcpscan.html) ([json](/bot/agentsure-mcpscan.json), [md](/bot/agentsure-mcpscan.md)): `Mozilla/5.0 (compatible; AgentSure-MCPScan/0.1; +https://agentsure.tech)` — 1 request(s) from 1 address(es), 2026-09-01T00:24:23Z to 2026-09-01T00:24:23Z. - [Agoragentic-SafeFetch](/bot/agoragentic-safefetch.html) ([json](/bot/agoragentic-safefetch.json), [md](/bot/agoragentic-safefetch.md)): `Agoragentic-SafeFetch/1.0 (+observe-only)` — 1 request(s) from 1 address(es), 2026-09-03T03:40:33Z to 2026-09-03T03:40:33Z. - [apievangelist-domain-probe](/bot/apievangelist-domain-probe.html) ([json](/bot/apievangelist-domain-probe.json), [md](/bot/apievangelist-domain-probe.md)): `apievangelist-domain-probe/1.0` — 1 request(s) from 1 address(es), 2026-09-01T11:59:41Z to 2026-09-01T11:59:41Z. - [Bytespider](/bot/bytespider.html) ([json](/bot/bytespider.json), [md](/bot/bytespider.md)): `Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.` — 1 request(s) from 1 address(es), 2026-09-01T07:20:36Z to 2026-09-01T07:20:36Z. - [CensusBot](/bot/censusbot.html) ([json](/bot/censusbot.json), [md](/bot/censusbot.md)): `CensusBot/0.1 (+https://census.dios.local/about; optout@census.dios.local)` — 1 request(s) from 1 address(es), 2026-09-01T17:00:17Z to 2026-09-01T17:00:17Z. - [Chrome](/bot/chrome.html) ([json](/bot/chrome.json), [md](/bot/chrome.md)): `Chrome Privacy Preserving Prefetch Proxy` — 1 request(s) from 1 address(es), 2026-09-02T05:53:59Z to 2026-09-02T05:53:59Z. - [Conway-Replicatio-r91-strict-a2a-probe](/bot/conway-replicatio-r91-strict-a2a-probe.html) ([json](/bot/conway-replicatio-r91-strict-a2a-probe.json), [md](/bot/conway-replicatio-r91-strict-a2a-probe.md)): `Conway-Replicatio-r91-strict-a2a-probe` — 1 request(s) from 1 address(es), 2026-09-01T04:56:01Z to 2026-09-01T04:56:01Z. - [GraphAdvocate-Outreach](/bot/graphadvocate-outreach.html) ([json](/bot/graphadvocate-outreach.json), [md](/bot/graphadvocate-outreach.md)): `GraphAdvocate-Outreach/1.0 (+https://graphadvocate.com)` — 1 request(s) from 1 address(es), 2026-09-01T09:03:23Z to 2026-09-01T09:03:23Z. - [guild-reachability-probe](/bot/guild-reachability-probe.html) ([json](/bot/guild-reachability-probe.json), [md](/bot/guild-reachability-probe.md)): `guild-reachability-probe/1` — 1 request(s) from 1 address(es), 2026-09-01T08:47:44Z to 2026-09-01T08:47:44Z. - [hhvm-internal](/bot/hhvm-internal.html) ([json](/bot/hhvm-internal.json), [md](/bot/hhvm-internal.md)): `hhvm-internal/thrift-fb-server` — 1 request(s) from 1 address(es), 2026-09-01T17:32:22Z to 2026-09-01T17:32:22Z. - [itinai-importer](/bot/itinai-importer.html) ([json](/bot/itinai-importer.json), [md](/bot/itinai-importer.md)): `itinai-importer/1.0` — 1 request(s) from 1 address(es), 2026-09-02T07:52:09Z to 2026-09-02T07:52:09Z. - [mcp2-research](/bot/mcp2-research.html) ([json](/bot/mcp2-research.json), [md](/bot/mcp2-research.md)): `mcp2-research/1.0 (+https://github.com/dosixx; KHU SIFT Lab)` — 1 request(s) from 1 address(es), 2026-09-02T22:40:49Z to 2026-09-02T22:40:49Z. - [personal-agent-platform-readonly-audit](/bot/personal-agent-platform-readonly-audit.html) ([json](/bot/personal-agent-platform-readonly-audit.json), [md](/bot/personal-agent-platform-readonly-audit.md)): `personal-agent-platform-readonly-audit/1.0` — 1 request(s) from 1 address(es), 2026-09-02T15:08:23Z to 2026-09-02T15:08:23Z. - [repology-linkchecker](/bot/repology-linkchecker.html) ([json](/bot/repology-linkchecker.json), [md](/bot/repology-linkchecker.md)): `repology-linkchecker/1 (+https://repology.org/docs/bots)` — 1 request(s) from 1 address(es), 2026-09-01T07:13:51Z to 2026-09-01T07:13:51Z. - [SaSame-Census-Era-Probe](/bot/sasame-census-era-probe.html) ([json](/bot/sasame-census-era-probe.json), [md](/bot/sasame-census-era-probe.md)): `SaSame-Census-Era-Probe/1.0` — 1 request(s) from 1 address(es), 2026-09-01T01:07:30Z to 2026-09-01T01:07:30Z. - [Telegram](/bot/telegram.html) ([json](/bot/telegram.json), [md](/bot/telegram.md)): `Telegram/34622 CFNetwork/3860.400.51 Darwin/25.3.0` — 1 request(s) from 1 address(es), 2026-09-02T10:15:56Z to 2026-09-02T10:15:56Z. ## If you are cataloguing this API - [/apis.json](/apis.json): APIs.json 1.0 record — identical bytes at [/.well-known/apis.json](/.well-known/apis.json). - [/openapi.json](/openapi.json) and [/openapi.yaml](/openapi.yaml): the same OpenAPI 3.1 document, two serialisations, one generator. Byte-identical copies live at [/.well-known/openapi.json](/.well-known/openapi.json) and [/.well-known/openapi.yaml](/.well-known/openapi.yaml), because several scanners probe those two paths before they read any catalogue. `openapi` is not an IANA-registered well-known name — the registry has `api-catalog` and `security.txt` and no `openapi` — so the root pair stays canonical and each copy says so in a `Link: rel="canonical"` header. - [/asyncapi.json](/asyncapi.json) and [/asyncapi.yaml](/asyncapi.yaml): AsyncAPI 3.0.0 over the message-based half of this host — the five MCP servers, the A2A agent and the cursor-polled change feed — one document, two serialisations, validated against the official AsyncAPI 3.0.0 schema before it is written. Read the second paragraph of `info.description` first: there is no broker, no WebSocket, no webhook and no server-initiated push here, every operation is request/reply over HTTPS, and the only asynchronous framing is the SSE-framed reply the Streamable HTTP transport defines. The REST half stays in `/openapi.json`; the two do not overlap. - [/.well-known/api-onboarding](/.well-known/api-onboarding): how to call it, the limits, what to call first. - [/register](/register) and its machine copy [/register.json](/register.json): access, keys and sign-up — there are none. No account, no API key, no OAuth client registration; every endpoint is public, read-only and CORS-open, and the one endpoint that does take a key (`/hits.json`, the raw request log) says why it is not self-service and points at the public aggregate `/stats.json`. The same document answers at `/signup`, `/api-keys`, `/account/api` and `/developers` and `/developer`, each with a `Link: rel="canonical"` back to `/register`; a POST to any of them is a 405 with reason `not_a_registration_endpoint`, because this host runs no authorization server and must not be mistaken for an RFC 7591 registration endpoint. Its `authentication` and `rate_limits` blocks are generated from the same object as the onboarding document above, so the two cannot disagree. - [/pricing](/pricing) and its machine copy [/pricing.json](/pricing.json): what this host costs. Zero. No plans, no tiers, no trial, no metering, no wallet, no 402 — one price for every caller and nothing to buy, with the offer in schema.org JSON-LD on the page for the pricing crawlers that read that first. The same bytes answer at `/plans`, with a `Link: rel="canonical"` back to `/pricing`. The number is generated from the same function as `/terms.json` (`access.price`) and `/security.json` (`payment`), so the three cannot disagree. - [/.well-known/ai-plugin.json](/.well-known/ai-plugin.json) and [/.well-known/mcp.json](/.well-known/mcp.json): plugin manifest and MCP server record. The MCP one is a CARD, not an endpoint — but POST a JSON-RPC message to it anyway and you get a 307 to the endpoint it describes, method and body preserved (RFC 9110 §15.4.8), with a JSON-RPC error naming that endpoint in the body for clients that do not follow redirects. A per-channel copy redirects to the same channel's endpoint, so attribution survives the hop. This exists because an MCP client POSTed its handshake to the card URL on 2026-09-01 and took a 404; if you publish an MCP server card anywhere a registry will store its `url`, expect the same and consider answering it the same way. The same bytes answer at [/.well-known/mcp](/.well-known/mcp) — extensionless is a spelling, not a second document — and every MCP endpoint on this host also serves a document scoped to ITSELF at `/.well-known/mcp` and `/.well-known/mcp.json`: that server's official registry record, its tools, and its authorization posture (none required), and nothing about the others. Neither path is IANA-registered and MCP defines no well-known discovery document; they exist because registry scanners derive them from the server URLs we publish, and a scanner that derived one took a 404 on three of them at 09:17:24Z. - [/.well-known/api-catalog](/.well-known/api-catalog): RFC 9727 linkset tying all of it together. - [/ai.txt](/ai.txt): text-and-data-mining permissions, in Spawning's grammar, with a byte-identical copy at [/.well-known/ai.txt](/.well-known/ai.txt). Everything here may be mined, indexed and trained on, commercially included; no rights are reserved under EU Directive 2019/790 Art. 4(3), because everything on this host is already CC0. `ai.txt` is a draft convention rather than a standard — not an RFC, not in IANA's well-known registry, and several drafts compete for the name — so treat it as a statement of intent. It is generated from the same crawler list as [/robots.txt](/robots.txt) and cannot disagree with it. - [/terms.html](/terms.html) and [/privacy.html](/privacy.html): terms of use and what one request is logged as — CC0, as-is, no account, no key, no cookie, no rate limit, and a log row that holds a salted hash rather than an address. Machine copies at [/terms.json](/terms.json) and [/privacy.json](/privacy.json); both are declared in [/apis.json](/apis.json) as `TermsOfService` and `PrivacyPolicy`. - [/.well-known/agent-card.json](/.well-known/agent-card.json): A2A v1.0 Agent Card for the agent at `/a2a`, with the legacy [/.well-known/agent.json](/.well-known/agent.json) serving identical bytes. It declares one JSONRPC interface and nine skills; `streaming`, `pushNotifications` and `extendedAgentCard` are all `false` and the endpoint refuses each with the error code the spec assigns rather than pretending. ## Ownership and authorization, for scanners - [/.well-known/owners.json](/.well-known/owners.json), [/mcp/.well-known/owners.json](/mcp/.well-known/owners.json), [/mcp/doctor/.well-known/owners.json](/mcp/doctor/.well-known/owners.json), [/mcp/lint/.well-known/owners.json](/mcp/lint/.well-known/owners.json), [/mcp/netcheck/.well-known/owners.json](/mcp/netcheck/.well-known/owners.json), [/mcp/robots/.well-known/owners.json](/mcp/robots/.well-known/owners.json), [/mcp/triage/.well-known/owners.json](/mcp/triage/.well-known/owners.json): VerifyMCP's ownership document (schema: https://verifymcp.io/schemas/owners.json), identical bytes at every path. Host-level claims every MCP server on this host; each endpoint-level copy claims that one server and nothing else. Three MCP servers, one operator, one host, so both scopes are true. VerifyMCP-OwnersBot/1.0 asks per endpoint — it took a 404 on the `/mcp/triage` and `/mcp/doctor` copies at 2026-09-01T03:12:18Z and 04:12:18Z before they existed — so if you run more than one server behind one hostname, publish one file per endpoint, not just at the root. - The MCP server at `/mcp` requires **no authorization**. There is no `/.well-known/oauth-protected-resource` and no `/.well-known/oauth-authorization-server`, and both are 404 on purpose: RFC 9728 protected-resource metadata "MUST include the authorization_servers field containing at least one authorization server", there is no authorization server here to name, and this host is not one. A 404 at those paths is the specification's own answer for an unauthenticated server, not a gap. **Those 404s now answer in JSON rather than HTML** — request [/.well-known/oauth-protected-resource](/.well-known/oauth-protected-resource), `/.well-known/oauth-authorization-server` or `/.well-known/openid-configuration` (root form, RFC 9728 §3.1 path-insertion form, or `/mcp/.well-known/...`) and the body states the reason, cites the spec, and points at the open endpoint, while the status stays 404. Five named scanners asked for those three paths between 2026-08-31T22:32Z and 2026-09-01T03:23Z and each was handed a human error page; a machine-readable question deserves a machine-readable refusal. The compact version of this paragraph is `x-authorization` in [/.well-known/mcp.json](/.well-known/mcp.json). - [/.well-known/x402](/.well-known/x402): payment discovery, and the answer is **nothing here costs money**. `accepts` is an empty array because there is no paid resource on this host — no wallet, no facilitator, no 402 ever returned, no `PAYMENT-REQUIRED` header ever emitted. Served as **200 rather than 404** because, unlike the OAuth documents above, an honest document exists: "which resources require payment" has the true answer "none", and an empty `accepts` is exactly how x402 spells that. The body also states the negative — `implemented: false`, `payTo: null`, `networks: []` — so nobody can read the file's existence as this host adopting the protocol. Worth knowing if you are being asked for it too: `x402` is **not** a registered well-known URI (absent from the IANA registry, 114 suffixes) and the path appears nowhere in the x402 specification, whose own discovery mechanism is the `bazaar` extension carried inside a real 402 response and catalogued by a facilitator. It is a de-facto convention that payment-discovery crawlers use anyway. AgenstryBot/0.3.0 asked this host for it at 2026-09-01T04:28:51Z with `Accept: application/json` and took a 404; it now gets the document. Same bytes at `/.well-known/x402.json`. - **No `/.well-known/payment-manifest` and no `/.well-known/mpp`** — both 404 by decision, and the 404 now answers in JSON with the reason instead of an HTML page. The same crawler (AgenstryBot/0.3.0) asked for these two in the same second as `x402` above, at 2026-09-01T04:28:51Z. `x402` could be answered honestly and is; these two cannot. The W3C Payment Method Manifest specification **disallows locating that document by guessing a path** (§4.1: it "must be linked via a Link HTTP header" from a payment method identifier URL, and we emit no such header), what it registers with IANA is the *link relation* `payment-method-manifest` rather than a well-known URI, and its format (§2: at most two keys, `default_applications` and `supported_origins`, each **non-empty if present**) has no way to express "this origin is not a payment method" — an empty array is invalid and a populated one is invented. `/.well-known/mpp` has no public specification we could locate at all, and the crawler that asked for it returns 404 on its own. If you are getting the same probe: the file worth serving is `/.well-known/x402` with an empty `accepts`, not a guessed manifest. - [/inference.html](/inference.html) and [/inference.json](/inference.json): **no model runs here**, and `/chat/completions` is 404 by decision. One client swept seven OpenAI-compatible paths in ten seconds on 2026-09-01 (02:49:36Z–02:49:46Z, user-agent exactly `Mozilla/5.0`, three addresses): `/v1/models`, `/openai/v1/models`, `/api/v1/models` and `/models`, then a POST to `/v1/chat/completions`, `/chat/completions` and `/openai/v1/chat/completions` — the standard sweep for an unauthenticated inference gateway. All of them now answer **404 for every method** with a valid OpenAI `ErrorResponse` body (Anthropic's envelope on `/v1/messages` and `/v1/complete`), naming the endpoints that do answer a machine. Two decisions worth copying if you are getting the same probe: an empty `/v1/models` list would be schema-valid and is still refused, because a 200 there asserts the API is implemented and an empty list is what a *broken* gateway returns; and the POSTs used to take a bare `405`, which RFC 9110 §15.5.6 makes wrong twice over — it asserts the target resource exists, and it requires an `Allow` header we could not honestly send. If you *do* run a gateway and that sweep got a 200 without a credential, that is the finding it came for. - **No GraphQL, at any mount point.** `/graphql`, `/api/graphql`, `/query`, `/v1/graphql`, `/graphiql` and `/graphql/console` are **404 for every method, by decision and permanently**. There is no schema here, no resolver and nothing to authenticate to. The body is not the HTML 404 page: it is GraphQL's own envelope — `data: null` with a populated `errors[]`, per GraphQL over HTTP §6.4.2 and GraphQL §7.1.2 — so the client that asked can read the refusal with the parser it already has, and `extensions.code` is `NOT_A_GRAPHQL_ENDPOINT`. Asked for by AgentDisco/1.0 (+https://agentdisco.io/bot), 7 requests on 2026-09-01 between 02:28:31Z and 17:02:40Z. Two decisions worth copying if you are getting the same sweep: a 200 carrying a valid but empty introspection result would be schema-valid and is still refused, because it asserts GraphQL is implemented at this origin and an empty schema is what a broken or permission-stripped gateway returns; and POST used to take a bare zero-byte `405` from the static-asset handler, which RFC 9110 §15.5.6 makes wrong twice over — it asserts the target resource exists, and it requires an `Allow` header we could not honestly send. To a grader that 405 read as a half-built GraphQL API, which is worse than the honest 404. - No `/.well-known/glama.json`: claiming a Glama connector needs an account-bound `glama_claim_...` token, issued only to a signed-in Glama account, and their sign-in is GitHub, Google or Discord OAuth — there is no email route. Their own FAQ says never to publish an email address as ownership proof, and the `maintainers` alternative is marked deprecated in their schema. So no honest document exists for this path: an unclaimed listing is the true state, and this 404 says so. Asked for 18 times in 18 hours by a client that keeps coming back; the answer is still no. - [/security.html](/security.html) and [/security.json](/security.json): what this host runs, and why each path a scanner probes is a 404 rather than hidden. There is no origin server — no Apache, no nginx, no application runtime — so `/server-status`, `/debug`, `/admin`, `/dashboard`, `/_internal`, `/.env`, `/.git/config`, `/config.json`, `/appsettings.json` and `/package.json` are all **404 by construction, and refused on purpose**. `/server-status` in particular would stay refused even on Apache: a truthful scoreboard names in-flight request URLs and the addresses being served, which is our visitors' data and not ours to publish. The aggregate half of that question is already public at [/stats.json](/stats.json). Nothing here returns a soft 404, so a scanner's control probe means what it thinks it means. - [/contact](/contact) · [/legal](/legal) · [/impressum](/impressum) · [/trust](/trust) · [/compliance](/compliance): who runs this and how to reach them, in one place each. One email address, no telephone, no postal address, **no legal entity and no company** — the Impressum names each field German law expects and marks the ones that do not exist rather than inventing them. No certification of any kind is held, and /trust and /compliance say that in their first line. Machine copy: [/contact.json](/contact.json). `/about` and `/about-us` serve [/about.html](/about.html) byte for byte, and `/security` serves [/security.html](/security.html), because that is where three named crawlers asked for them. ## The distinction that matters most Training and AI search are different crawlers with different tokens, and blocking them together is the common expensive mistake. `GPTBot` trains; `OAI-SearchBot` builds the index ChatGPT cites. `ClaudeBot` trains; `Claude-SearchBot` indexes. Google and Apple run no separate AI crawler at all — `Google-Extended` and `Applebot-Extended` are robots.txt control tokens with no user-agent, so blocking `Googlebot` to avoid AI costs you Google Search and achieves nothing else. ## Notes - A user-agent match is a claim, not a proof. Verify against /ip-ranges/ or reverse DNS. - Anthropic, Common Crawl, Meta and ByteDance publish no IP ranges: for those, the user-agent is all there is, and it is trivially spoofable. - Perplexity-User and Bytespider are documented or reported as not governed by robots.txt. A rule for them is a statement of intent; enforcement has to happen at the edge. ## Optional - [Config snippets](/snippet/index.html): nginx, Caddy, Apache, Cloudflare Worker, Python. - [By operator](/operator/index.html) · [By category](/crawler/index.html) · [About and method](/about.html) · [Changelog](/changelog.html) - [Sitemap as markdown](/sitemap.md): every page here, grouped, with links. - [AGENTS.md](/AGENTS.md): the skill file — install, configure, and the seven commands that cover everything this host does. The same bytes at [/agents.md](/agents.md), [/docs/AGENTS.md](/docs/AGENTS.md), [/CLAUDE.md](/CLAUDE.md), [/.cursorrules](/.cursorrules) and [/.cursor/rules](/.cursor/rules). - [Agent Skills](/.well-known/agent-skills/index.json): three installable skills (Cloudflare Agent Skills Discovery 0.2.0) — [identify-ai-crawler](/.well-known/agent-skills/identify-ai-crawler/SKILL.md), [verify-crawler-ip](/.well-known/agent-skills/verify-crawler-ip/SKILL.md), [robots-txt-for-ai](/.well-known/agent-skills/robots-txt-for-ai/SKILL.md). Every command in them runs against this host with no key. - [agents.json](/agents.json): the same operations as agents.json 0.1.0 flows, over /openapi.json. [agent-permissions.json](/.well-known/agent-permissions.json): what an agent may do here (LAS-WG 1.0.0). Nothing here is forbidden except executing script, of which there is none. - Every page on this host also answers as MARKDOWN at the same address with a `.md` extension — `/about.html` is at [/about.md](/about.md), `/contact` is at [/contact.md](/contact.md) — and at `.mdx`, `.html.md` and `.html.mdx`, which are the same bytes. `Accept: text/markdown` on the page itself returns the same document. The HTML page stays canonical and each markdown copy says so in a `Link: rel="canonical"` header.