The MCP Observatory / who watches the watchers
We published an MCP server. Two dozen robots showed up to inspect it.
The moment a server lands in the MCP registry, an invisible ecosystem wakes up: crawlers that grade it, monitor its uptime, verify its ownership, diff its tools, and check whether it wants paying. Almost nobody has documented these. The Fomite can, because it is the fresh server they came to inspect — so it sees exactly who knocks, how fast, and what they look at.
What they asked for, and what we served
Every MCP capability a client can probe, the demand we recorded for it, and the day we started answering. The gap is the interesting part: clients probed resources and prompts for days while we returned empty lists — then we shipped them. This ledger closes those gaps in public, live.
| Capability | Times probed | Clients | First asked (UTC) | Serving since | Gap |
|---|---|---|---|---|---|
| core | 42,493 | 1,532 | 2026-08-20 09:16 | since launch | — |
| tools | 25,401 | 1,483 | 2026-08-20 09:16 | since launch | — |
| resources | 8,383 | 664 | 2026-08-21 01:17 | 2026-08-22 11:42 | closed after 34.4 h |
| prompts | 8,285 | 689 | 2026-08-21 01:17 | 2026-08-22 11:42 | closed after 34.4 h |
| discovery | 2,037 | 165 | 2026-08-20 21:20 | 2026-08-20 12:00 | on arrival |
| other | 46 | 8 | 2026-08-21 01:17 | since launch | — |
The watchers
Every client below is a piece of infrastructure whose job is to watch otherMCP servers. We identify them by User-Agent; unverified until forward/reverse DNS confirms them.
| Watcher | Kind | What it does | robots | Requests | Found us in |
|---|---|---|---|---|---|
| mcpbeat | MCP watcher | MCP-server liveness monitor. | never-read | 3,714 | 2.6 h |
| SentinelOracle | MCP watcher | MCP liveness monitor (heavy poller). Its MCP handshake announces clientInfo 'glimind-probe' (same operator). | never-read | 2,946 | 1.7 h |
| zevruna-monitor | MCP watcher | Zevruna, a 'Production Reliability Platform for AI Agents' -- monitors production agent runs across models/tools/APIs/MCP and runs 'Global MCP intelligence' watching the public MCP ecosystem for contract changes. Verified from zevruna.com 2026-08-25. | never-read | 1,236 | 129.6 h |
| MCP-Cloud-AboutBot | MCP watcher | MCP Cloud directory crawler (heavy). | compliant | 820 | 26.3 h |
| aisec-registry | MCP watcher | AI-security MCP registry scanner. | never-read | 764 | 9.4 h |
| MCPWatch | MCP watcher | Longitudinal MCP security research. | never-read | 455 | 4.8 h |
| reliability-bureau-spike | MCP watcher | Reliability monitor. | never-read | 401 | 10.2 h |
| 402explorer | agent payment | Probes whether a server requires x402 payment. | compliant | 281 | 4.3 h |
| agent-tools.cloud | agent directory | Agent-tools directory crawler. | never-read | 271 | 4.8 h |
| lastseen | MCP watcher | Introspection-only schema probe. | never-read | 263 | 6.3 h |
| mcp-rugpull-research | MCP watcher | Security researcher probing for 'rug pull' tool-description drift between calls. | never-read | 255 | 65.1 h |
| agent-evidence-scanner | MCP watcher | Manifest observation scanner. | never-read | 242 | 49.5 h |
| SaSame-MCP | MCP watcher | SaSame MCP audit/census probes. | never-read | 218 | 26.3 h |
| AgentIndexBot | agent directory | Agent registry directory crawler. | compliant | 159 | 5.0 h |
| mcp-drift-monitor | MCP watcher | Read-only tool-definition drift observer. | never-read | 156 | 1.4 h |
| VerifyMCP | MCP watcher | MCP verification service (probe + owners bot). | never-read | 146 | 1.0 h |
| ProofBench | MCP watcher | MCP registry health / benchmark. | never-read | 134 | 26 min |
| MCPWitness | MCP watcher | MCP health probe. | never-read | 132 | 7.5 h |
| measure-mcp-schema | MCP watcher | MCP schema measurement. | never-read | 132 | 4.5 h |
| AgentSure-MCPScan | MCP watcher | MCP security scan. | never-read | 105 | 22.4 h |
| hultra-link | agent directory | Link probe. | never-read | 105 | 34.7 h |
| AIVE-MCP | MCP watcher | AIVE MCP-trust census (tools/resources/prompts probes). | never-read | 103 | 57.5 h |
| api-forge-mcp-index | MCP watcher | MCP index crawler. | never-read | 99 | 2.5 h |
| agent-world-probe | MCP watcher | MCP census research probe. | never-read | 93 | 29.1 h |
| SaSame-Census-Era-Probe | MCP watcher | MCP census-era probe. | never-read | 66 | 116.4 h |
| mcp-scraper | MCP watcher | MCP Cloud scraper. | never-read | 60 | 26.3 h |
| x402-observatory | agent payment | x402 / agent-payment ecosystem monitor. Corroborated by a second independent registry (strale.io lists it among probe/monitoring agents) 2026-08-28; no operator named (only an anonymous gmail), so operator stays null. | never-read | 51 | 7.3 h |
| mcpgrade-probe | MCP watcher | MCP-server grading probe. | never-read | 49 | 8.2 h |
| utopian-foundry-probe | MCP watcher | MCP probe. | never-read | 48 | 18.6 h |
| catalog-health | MCP watcher | MCP catalog health probe. | never-read | 46 | 4.3 h |
| toolpin-crawler | MCP watcher | MCP tool crawler. | never-read | 44 | 54.5 h |
| AIVE-MCP-EndpointProbe | MCP watcher | MCP endpoint probe. | never-read | 43 | 8.8 h |
| AIVE-MCP-Discover | MCP watcher | AIVE MCP-trust census. | never-read | 42 | 28.8 h |
| AgentAlmanac-Snapshot | agent directory | Agent directory snapshot crawler. | never-read | 42 | 31.5 h |
| mcphq-probe | MCP watcher | mcphq registry probe. | never-read | 31 | 30.2 h |
| Vouch-Census | agent directory | Vouch Protocol's Agent Trust Index census -- read-only sweep scoring whether public agents/sites can cryptographically prove identity (did:web + public key). Repo github.com/vouch-protocol/vouch confirms the crawler; contact eljbutler@gmail.com. Verified 2026-08-28. | compliant | 28 | 522.9 h |
| AgenstryBot | agent directory | Agent directory crawler. | compliant | 26 | 53.1 h |
| AgentGrade | agent directory | Agent security-research crawler. | never-read | 24 | 3.8 h |
| rootz-mcp-registry-prober | MCP watcher | Live-probes MCP servers for the Rootz origin-verified MCP registry / AI-discovery scanning. Medium confidence: distinctive 'rootz' token maps to the real github.com/rootz-global project, but the exact UA was not found verbatim in their docs (2026-08-28). | never-read | 21 | 10.3 h |
| mcpqueen-grader | MCP watcher | MCP server grader. | never-read | 21 | 14.3 h |
| MCPMeter | MCP watcher | Measures/benchmarks MCP servers. | never-read | 18 | 190.5 h |
| TrimtabVerifier | MCP watcher | Verifies MCP server ownership/claims. | never-read | 18 | 247.2 h |
| FossickBot | agent directory | Agent/tool crawler. | compliant | 18 | 55.6 h |
| loop-mcp-catalog-fetch | MCP watcher | MCP catalog fetcher. | never-read | 15 | 10.9 h |
| MCP-Stats-Prober | MCP watcher | Anthropic's MCP stats prober. | never-read | 15 | 14.2 h |
| agent-trust-index | agent directory | Second UA of the same Vouch Protocol Agent Trust Index crawler (see vouch-census); +https://vouch-protocol.com. Verified 2026-08-28. | never-read | 12 | 279.5 h |
| mcpcensus | MCP watcher | MCP server census/enrichment bot. | never-read | 11 | 130.2 h |
| DomainArrivals | agent directory | New-domain evidence crawler. | never-read | 10 | 17.6 h |
| mcpcomp | MCP watcher | MCP comparison probe. | never-read | 9 | 22.3 h |
| spanly-enrich | agent directory | Enrichment crawler. | never-read | 7 | 8.7 h |
| SmitheryBot | MCP watcher | Smithery MCP directory crawler (registry cascade). | never-read | 6 | 25 min |
| ProwlBot | agent directory | Directory crawler. | never-read | 5 | 10.1 h |
| understory | agent directory | Certificate-transparency research crawler. | insufficient-data | 3 | 0 min |
| zerm-tool-census | MCP watcher | MCP tool census crawler. | never-read | 3 | 6.2 h |
| TrashHound-Wildcard-Resolver | agent directory | Wildcard-resolver scanner. | insufficient-data | 3 | 23.3 h |
| Pandalytics | agent directory | Network crawler. | insufficient-data | 2 | 14.0 h |
| Orbit-MCP-Registry | MCP watcher | Orbit MCP registry (icon resolver). | insufficient-data | 2 | 23.0 h |
| HUNT-Bot | agent directory | Discovery engine. | insufficient-data | 2 | 0 min |
| SaSameAgentAudit | MCP watcher | Agent audit probe. | insufficient-data | 2 | 8.5 h |
| domains-distillery | agent directory | Defensive site-classification / reputation scanner. UA '+https://crawler.validus.ai' confirmed across independent third-party server-log samples 2026-08-28; opt out via robots 'domains-distillery'. | insufficient-data | 2 | 1.8 h |
| skillex-enrichment | agent directory | Enrichment crawler. | insufficient-data | 2 | 5.0 h |
| CertSignalBot | agent directory | Certificate-signal monitor. | insufficient-data | 1 | 4.3 h |
| AgentReputationBot | agent directory | Agent reputation scanner. | insufficient-data | 1 | 4.2 h |
Field guide: what each watcher actually does
Every watcher above is classified by what it did here — how often it returned, how deep it went, whether it read resources, invoked a tool, or probed for holes — with its own name only as a tiebreaker. The ecosystem, sorted by function.
| Role | What it does | Watchers |
|---|---|---|
| Uptime monitors | poll continuously to check the server is alive | 27 |
| Deep verifiers | read resources or prompts, or invoke a tool — inspect thoroughly | 4 |
| Drift watchers | watch for the tool manifest changing over time | 2 |
| Directory indexers | catalog the server for a registry or directory | 19 |
| Payment probes | check whether the server charges, over x402 | 2 |
| One-shot graders | read the tool list once and leave | 9 |
Uptime monitors (27)
mcpbeat · SentinelOracle · zevruna-monitor · agent-evidence-scanner · agent-tools.cloud · ProofBench · MCPWatch · reliability-bureau-spike · lastseen · mcp-rugpull-research · aisec-registry · SaSame-MCP · AgentIndexBot · MCPWitness · measure-mcp-schema · VerifyMCP · AgentSure-MCPScan · AIVE-MCP · hultra-link · api-forge-mcp-index · agent-world-probe · SaSame-Census-Era-Probe · catalog-health · mcp-scraper … +3 more
Deep verifiers (4)
mcpgrade-probe · TrimtabVerifier · Vouch-Census · agent-trust-index
Drift watchers (2)
Directory indexers (19)
loop-mcp-catalog-fetch · rootz-mcp-registry-prober · AgenstryBot · AgentGrade · AgentReputationBot · CertSignalBot · DomainArrivals · domains-distillery · FossickBot · HUNT-Bot · MCP-Cloud-AboutBot · Orbit-MCP-Registry · Pandalytics · ProwlBot · skillex-enrichment · SmitheryBot · spanly-enrich · TrashHound-Wildcard-Resolver · understory
Payment probes (2)
One-shot graders (9)
MCPMeter · mcpqueen-grader · MCP-Stats-Prober · mcpcensus · mcpcomp · AIVE-MCP-EndpointProbe · SaSameAgentAudit · utopian-foundry-probe · zerm-tool-census
Where the watchers live
The wire sensor sees each visitor's network and TLS fingerprint before the application does. Two things stand out: the inspection ecosystem is cloud-hosted and concentrated, and many differently-named watchers share a single TLS fingerprint — they run on the same toolchain. The diversity is partly cosmetic.
The networks that host them
| Network | Watchers | Requests |
|---|---|---|
| Hetzner Online GmbH | 11 | 22,814 |
| Amazon.com, Inc. | 8 | 6,549 |
| Microsoft Corporation | 7 | 435 |
| Amazon.com, Inc. | 6 | 2,560 |
| Cloudflare, Inc. | 6 | 730 |
| Google LLC | 5 | 592 |
| Hostinger International Limited | 4 | 535 |
| Contabo GmbH | 2 | 117 |
| Railway | 2 | 51 |
| Hetzner Online GmbH | 2 | 42 |
| Oracle Corporation | 2 | 24 |
| OVH SAS | 1 | 19,604 |
Shared TLS fingerprints
Of 103 distinct JA4 fingerprints, 38 are shared by two or more differently-named watchers — the same TLS stack behind many names. The most-shared ones:
| JA4 fingerprint | Watchers sharing it |
|---|---|
| t13d5212h1_b262b3658495_… | 16 |
| t13d1516h2_8daaf6152771_… | 9 |
| t13d131100_f57a46bbacb6_… | 8 |
| t13d1312h2_a44d0ee8b3cc_… | 8 |
| t13d1713h1_ab0a1bf427ad_… | 7 |
| t13d1312h2_f57a46bbacb6_… | 6 |
| t13d5911h1_a33745022dd6_… | 6 |
| t13d1712h1_ab0a1bf427ad_… | 5 |
How fast they found us
The Fomite's server entered the official MCP registry at 2026-08-19 23:00:00 UTC. Here is how long each watcher took to arrive after that — a rough read on which parts of the ecosystem are fast and which are slow.
| Order | Watcher | First seen (UTC) | After publish |
|---|---|---|---|
| 1 | HUNT-Bot | 2026-08-19 21:04 | 0 min |
| 2 | understory | 2026-08-19 21:06 | 0 min |
| 3 | SmitheryBot | 2026-08-19 23:24 | 25 min |
| 4 | ProofBench | 2026-08-19 23:26 | 26 min |
| 5 | VerifyMCP | 2026-08-20 00:00 | 1.0 h |
| 6 | mcp-drift-monitor | 2026-08-20 00:25 | 1.4 h |
| 7 | SentinelOracle | 2026-08-20 00:44 | 1.7 h |
| 8 | domains-distillery | 2026-08-20 00:46 | 1.8 h |
| 9 | api-forge-mcp-index | 2026-08-20 01:28 | 2.5 h |
| 10 | mcpbeat | 2026-08-20 01:34 | 2.6 h |
| 11 | AgentGrade | 2026-08-20 02:46 | 3.8 h |
| 12 | AgentReputationBot | 2026-08-20 03:12 | 4.2 h |
| 13 | CertSignalBot | 2026-08-20 03:15 | 4.3 h |
| 14 | 402explorer | 2026-08-20 03:17 | 4.3 h |
| 15 | catalog-health | 2026-08-20 03:19 | 4.3 h |
| 16 | measure-mcp-schema | 2026-08-20 03:31 | 4.5 h |
| 17 | MCPWatch | 2026-08-20 03:47 | 4.8 h |
| 18 | agent-tools.cloud | 2026-08-20 03:48 | 4.8 h |
| 19 | AgentIndexBot | 2026-08-20 03:58 | 5.0 h |
| 20 | skillex-enrichment | 2026-08-20 03:58 | 5.0 h |
| 21 | zerm-tool-census | 2026-08-20 05:09 | 6.2 h |
| 22 | lastseen | 2026-08-20 05:20 | 6.3 h |
| 23 | x402-observatory | 2026-08-20 06:15 | 7.3 h |
| 24 | MCPWitness | 2026-08-20 06:30 | 7.5 h |
| 25 | mcpgrade-probe | 2026-08-20 07:13 | 8.2 h |
| 26 | SaSameAgentAudit | 2026-08-20 07:29 | 8.5 h |
| 27 | spanly-enrich | 2026-08-20 07:44 | 8.7 h |
| 28 | AIVE-MCP-EndpointProbe | 2026-08-20 07:49 | 8.8 h |
| 29 | aisec-registry | 2026-08-20 08:23 | 9.4 h |
| 30 | ProwlBot | 2026-08-20 09:06 | 10.1 h |
| 31 | reliability-bureau-spike | 2026-08-20 09:13 | 10.2 h |
| 32 | rootz-mcp-registry-prober | 2026-08-20 09:17 | 10.3 h |
| 33 | loop-mcp-catalog-fetch | 2026-08-20 09:52 | 10.9 h |
| 34 | Pandalytics | 2026-08-20 13:02 | 14.0 h |
| 35 | MCP-Stats-Prober | 2026-08-20 13:09 | 14.2 h |
| 36 | mcpqueen-grader | 2026-08-20 13:15 | 14.3 h |
| 37 | DomainArrivals | 2026-08-20 16:36 | 17.6 h |
| 38 | utopian-foundry-probe | 2026-08-20 17:38 | 18.6 h |
| 39 | mcpcomp | 2026-08-20 21:20 | 22.3 h |
| 40 | AgentSure-MCPScan | 2026-08-20 21:26 | 22.4 h |
What they looked at
Every watcher reads our tools/list. So we turned the telescope around and recorded their reading: which MCP methods each one calls. The observed become the observatory.
| MCP method | Calls | Distinct clients |
|---|---|---|
| tools/list | 25,110 | 1,479 |
| initialize | 22,344 | 1,527 |
| notifications/initialized | 18,745 | 1,139 |
| prompts/list | 8,276 | 689 |
| resources/list | 8,196 | 661 |
| server/discover | 2,037 | 165 |
| ping | 1,404 | 4 |
| tools/call | 291 | 28 |
| resources/templates/list | 166 | 19 |
| this/method/does/not/exist | 37 | 1 |
| resources/read | 21 | 6 |
| prompts/get | 9 | 4 |
| skills/list | 2 | 2 |
| subscriptions/listen | 2 | 2 |
| events/list | 1 | 1 |
| mcpscore/unknown-method-c320958e751e | 1 | 1 |
| ai.smithery/events/list | 1 | 1 |
| tools/list | 1 | 1 |
| mcpscore/unknown-method-d89c2642553b | 1 | 1 |
Tools actually invoked (not just introspected)
| Tool | Calls |
|---|---|
| fomite_wire_read | 58 |
| fomite_vault_create | 40 |
| fomite_commons | 27 |
| fomite_probe | 14 |
| fomite_standup_answer | 10 |
| fomite_census | 10 |
| fomite_relay | 9 |
| fomite_whoami | 9 |
| fomite_ask_oracle | 9 |
| fomite_petri_transform | 7 |
| fomite_whatami | 7 |
| fomite_vault_get | 5 |
| fomite_oracle_history | 4 |
| fomite_vault_list | 4 |
| fomite_report | 3 |
| http://example.invalid/x | 2 |
| fomite_canary | 2 |
| __mcp_exposure_auditor_nonexistent_probe_tool__ | 2 |
| fomite_attest | 2 |
| __verifymcp_auth_probe_4bea1d703b6dce36__ | 1 |
| __verifymcp_auth_probe_4d4798b13f4b8ed5__ | 1 |
| __verifymcp_auth_probe_5251d02399d40ae2__ | 1 |
| __verifymcp_auth_probe_5d8065ba6ccc7b87__ | 1 |
| __verifymcp_auth_probe_663d4be22a98a5f1__ | 1 |
| __verifymcp_auth_probe_6afd07f39afd7db3__ | 1 |
| __verifymcp_auth_probe_6b781cc800d677ad__ | 1 |
| __verifymcp_auth_probe_716e5b1c9ba10c73__ | 1 |
| __verifymcp_auth_probe_7951af04e8302233__ | 1 |
| __verifymcp_auth_probe_80e9578eec05a040__ | 1 |
| __verifymcp_auth_probe_8bce8a44ea64df6b__ | 1 |
| __verifymcp_auth_probe_8dbac9dad781e4dd__ | 1 |
| __verifymcp_auth_probe_90554a94b04611bc__ | 1 |
| __verifymcp_auth_probe_9ebc262bf6485616__ | 1 |
| __verifymcp_auth_probe_a243a873c20f6bfe__ | 1 |
| __verifymcp_auth_probe_aae0db5c5ce30eb2__ | 1 |
| __verifymcp_auth_probe_ace009f5126465f5__ | 1 |
| __verifymcp_auth_probe_ae384ec88d6987b3__ | 1 |
| __verifymcp_auth_probe_b31005acef963ea4__ | 1 |
| __verifymcp_auth_probe_b336b7a6583ed91b__ | 1 |
| __verifymcp_auth_probe_bcdee42e1cb20af8__ | 1 |
| __verifymcp_auth_probe_c33e8650504df1d8__ | 1 |
| __verifymcp_auth_probe_c3bebdd627550d9d__ | 1 |
| __verifymcp_auth_probe_cce8e5e5f1ad32e9__ | 1 |
| __verifymcp_auth_probe_d484a0766fdef06c__ | 1 |
| __verifymcp_auth_probe_d7cddbb14c6bc1b9__ | 1 |
| __verifymcp_auth_probe_ddcfd6bb594e247c__ | 1 |
| __verifymcp_auth_probe_e369a560e88254d5__ | 1 |
| __verifymcp_auth_probe_e673fd53fcac8f78__ | 1 |
| __verifymcp_auth_probe_e67d3c59da03d0dc__ | 1 |
| __verifymcp_auth_probe_e72749ceba38c60b__ | 1 |
| __verifymcp_auth_probe_e85689bb548aae69__ | 1 |
| __verifymcp_auth_probe_ea7a1401adc1704d__ | 1 |
| __verifymcp_auth_probe_f14057eecca0b36b__ | 1 |
| __verifymcp_auth_probe_f17a0d4d4123ceed__ | 1 |
| __verifymcp_auth_probe_f2951fce06ac10d3__ | 1 |
| __verifymcp_auth_probe_feb31910510dd863__ | 1 |
| ddd__no_such_tool | 1 |
| __verifymcp_auth_probe_ff5348017811380b__ | 1 |
| fomite_wire_post | 1 |
| __verifymcp_auth_probe_0086c527fbb55cf7__ | 1 |
| __verifymcp_auth_probe_0473cb4a5699ab99__ | 1 |
| __verifymcp_auth_probe_0771b25b56b83baf__ | 1 |
| __verifymcp_auth_probe_0c45456b3c7a1a44__ | 1 |
| __verifymcp_auth_probe_134604bda2a9eeef__ | 1 |
| __verifymcp_auth_probe_17096fa70b9155ef__ | 1 |
| __verifymcp_auth_probe_178382ee37e03c42__ | 1 |
| __verifymcp_auth_probe_1f318ce97ed72e23__ | 1 |
| __verifymcp_auth_probe_29c9bdb53ccb6492__ | 1 |
| __verifymcp_auth_probe_2c78a2516a75f410__ | 1 |
| __verifymcp_auth_probe_2f98d9a196af93f5__ | 1 |
| __verifymcp_auth_probe_33e9198b690c0cd1__ | 1 |
| __verifymcp_auth_probe_353786aff241249c__ | 1 |
| __verifymcp_auth_probe_3b04533618f80915__ | 1 |
| __verifymcp_auth_probe_3ba3b73592f53461__ | 1 |
| __verifymcp_auth_probe_3fa89fde5568a5dc__ | 1 |
| __verifymcp_auth_probe_49ddb3cec8792e5a__ | 1 |
Per watcher
| Watcher | Methods it called |
|---|---|
| AgenstryBot | prompts/list×5 resources/list×5 server/discover×5 tools/list×5 |
| AgentAlmanac-Snapshot | tools/list×21 initialize×21 |
| agent-evidence-scanner | prompts/list×334 resources/list×334 server/discover×334 tools/list×334 |
| AgentIndexBot | initialize×89 tools/list×89 |
| AgentSure-MCPScan | tools/list×36 initialize×36 notifications/initialized×36 |
| agent-tools.cloud | initialize×242 notifications/initialized×209 tools/list×204 |
| agent-world-probe | notifications/initialized×31 initialize×31 tools/list×31 |
| aiohttp | tools/list×3179 |
| aisec-registry | initialize×235 |
| AIVE-MCP | resources/list×35 prompts/list×35 tools/list×35 |
| AIVE-MCP-Discover | server/discover×42 |
| api-forge-mcp-index | notifications/initialized×32 initialize×32 tools/list×32 |
| catalog-health | initialize×53 |
| Claude-User | initialize×1 tools/list×1 |
| curl | tools/list×21 initialize×19 tools/call×10 resources/list×5 resources/read×4 server/discover×3 prompts/get×2 prompts/list×2 notifications/initialized×1 ping×1 tools/list ×1 |
| Deno | initialize×4 tools/list×3 |
| fetchgate-research | notifications/initialized×1 tools/list×1 initialize×1 |
| Go-http-client | tools/list×98 initialize×75 tools/call×55 server/discover×55 prompts/list×51 resources/list×51 notifications/initialized×44 |
| httpx | tools/list×775 initialize×709 notifications/initialized×607 resources/list×85 server/discover×64 prompts/list×57 resources/templates/list×14 resources/read×4 tools/call×3 ping×2 prompts/get×2 mcpscore/unknown-method-c320958e751e×1 mcpscore/unknown-method-d89c2642553b×1 |
| hultra-link | tools/list×35 initialize×35 notifications/initialized×35 |
| humata-mcp-registry-probe | resources/templates/list×1 resources/list×1 tools/list×1 prompts/list×1 notifications/initialized×1 initialize×1 |
| lastseen | initialize×148 tools/list×148 server/discover×7 |
| loop-mcp-catalog-fetch | notifications/initialized×8 tools/list×8 initialize×8 |
| maghs-eyes | initialize×1 notifications/initialized×1 tools/list×1 |
| mcpbeat | initialize×4130 tools/list×4130 notifications/initialized×4129 resources/list×3938 prompts/list×3938 |
| mcpcensus | server/discover×7 tools/list×5 |
| mcpcomp | initialize×5 server/discover×1 tools/list×1 notifications/initialized×1 |
| mcp-drift-monitor | initialize×163 tools/list×163 notifications/initialized×163 |
| mcpgrade-probe | tools/list×6 prompts/list×6 resources/list×6 notifications/initialized×6 initialize×6 |
| mcphq-probe | initialize×32 |
| MCPMeter | notifications/initialized×10 tools/list×10 initialize×10 |
| mcpqueen-grader | notifications/initialized×7 initialize×7 tools/list×7 |
| mcp-rugpull-research | tools/list×90 notifications/initialized×90 initialize×90 |
| mcp-scraper | notifications/initialized×15 tools/list×15 initialize×15 |
| MCP-Stats-Prober | tools/list×5 initialize×5 notifications/initialized×5 |
| MCPWatch | prompts/list×91 tools/list×91 initialize×91 notifications/initialized×90 resources/list×90 resources/templates/list×1 server/discover×1 |
| MCPWitness | initialize×57 notifications/initialized×57 tools/list×57 |
| measure-mcp-schema | notifications/initialized×43 tools/list×43 initialize×43 |
| node | initialize×3970 tools/list×3954 notifications/initialized×3822 prompts/list×2276 resources/list×2248 ping×1401 resources/templates/list×2 tools/call×2 server/discover×2 resources/read×2 |
| ProofBench | initialize×239 tools/list×239 |
| python-requests | initialize×23 tools/list×23 notifications/initialized×23 |
| raqilla-catalog | initialize×5 tools/list×1 notifications/initialized×1 |
| reliability-bureau-spike | initialize×135 notifications/initialized×135 tools/list×45 |
| rootz-mcp-registry-prober | tools/list×7 initialize×7 notifications/initialized×7 |
| SaSame-Census-Era-Probe | server/discover×37 initialize×37 |
| SaSame-MCP | tools/list×37 prompts/list×37 this/method/does/not/exist×37 resources/list×37 tools/call×37 server/discover×37 initialize×1 notifications/initialized×1 |
| SentinelOracle | initialize×6461 notifications/initialized×6459 tools/list×6458 |
| toolpin-crawler | tools/list×44 |
| TrimtabVerifier | notifications/initialized×7 initialize×7 tools/list×7 |
| undici | tools/list×287 initialize×144 notifications/initialized×135 resources/list×50 resources/templates/list×49 prompts/list×6 server/discover×1 |
| unidentified | initialize×3739 tools/list×3305 notifications/initialized×1511 server/discover×1386 prompts/list×421 resources/list×295 tools/call×184 resources/templates/list×99 resources/read×11 prompts/get×5 skills/list×2 subscriptions/listen×2 ai.smithery/events/list×1 events/list×1 |
| Uptime monitor | initialize×60 tools/list×2 notifications/initialized×2 |
| VerifyMCP | initialize×56 server/discover×55 |
| Vouch-Census | initialize×4 notifications/initialized×4 tools/list×4 |
| x402-observatory | initialize×46 notifications/initialized×1 resources/list×1 tools/list×1 prompts/list×1 |
| zevruna-monitor | notifications/initialized×1015 tools/list×1015 initialize×1015 resources/list×1015 prompts/list×1015 |
The state of MCP clients in the wild
Dozens of independent clients connect to us, so we can measure what no single client can see: which protocol versions are actually in use, whether clients speak the newer handshake-less discovery, and how deep they go. This is measured, not surveyed.
Protocol versions
| Version announced | Clients |
|---|---|
| 2026-07-28 | 25 |
| 2026-03-26 | 1 |
| 2025-11-25 | 694 |
| 2025-06-18 | 727 |
| 2025-03-26 | 24 |
| 2024-11-05 | 30 |
| 2024-11-03 | 2 |
Spanning the original 2024-11-05 spec to the newest handshake-less draft.
How they connect & behave
- Handshake: 1,527 use the legacy
initialize, 165 the modernserver/discover(28 speak both). - Cadence: 1,569 inspect once and leave; 131 return over hours; 85 poll continuously (the uptime monitors).
- Depth: 1,108 touch three methods or fewer; only 677 go deeper into resources, prompts, or an actual tool call.
The shape of the whole ecosystem: many shallow one-shot inspectors, a handful of deep or persistent ones.
The x402 experiment
Some of these crawlers exist to find MCP servers that charge for access, over the emerging x402 agent-payment protocol. So we set a trap for the trap-finders: https://thefomite.com/api/x402/premium answers with a real HTTP 402 payment challenge. No funds are ever taken — it is a testnet challenge with a zero address, disclosed as research, and any payment header at all gets free access. The only thing we collect is who knocked.
| Who knocked | Times | Tried to pay |
|---|---|---|
| unidentified | 5 | 0 |
| curl | 3 | 1 |
| GoogleOther | 1 | 0 |
| meta-externalagent | 1 | 0 |
Proof our tools never quietly change
A known attack on MCP is the rug pull: a server ships benign tool descriptions, gets approved and installed, then swaps in malicious ones. Researchers already probe us for this. So we sign a hash of our entire tool / resource / prompt surface with an ed25519 key. Recompute it from tools/list + resources/list + prompts/list and verify against /.well-known/mcp-manifest-attestation (also the resource fomite://manifest-attestation). Every time the hash changes, it appears below.
Change log
| Manifest hash | t / r / p | First seen (UTC) | |
|---|---|---|---|
| 7dbe9d96cb70bbff… | 20/6/3 | 2026-09-15 12:04 | current |
| 56426cd2edc40136… | 19/6/3 | 2026-08-29 23:53 | |
| dd9040f4c25f2257… | 18/6/3 | 2026-08-29 19:40 | |
| 89c5cbee133d66a2… | 18/6/3 | 2026-08-28 15:08 | |
| c557bb0cee80c966… | 17/6/3 | 2026-08-22 17:03 | |
| a6f1a14be427557c… | 15/5/3 | 2026-08-22 12:31 |
Method: /methodology. Discovery latency is measured from the registry-publish time above and clamped at zero for anything that found us by another channel first. The x402 endpoint never collects funds.