We audited 920 public MCP servers — 80% returned no real content

Open data + reproducible method · 2026-06-18 · SaSame

We index public MCP (Model Context Protocol) servers from the registries agents are told to discover tools from, and probe each one with a polite, GET-only liveness check. This is the honest result across 920 distinct public MCP servers.

20.3% returned real content. 79.7% did not.

ResultCountShare
Returned real content to a polite probe18720.3%
Returned nothing usable (error / empty / dead / placeholder)73379.7%
Total audited (distinct servers)920100%

"Registered" is not "reachable." A server listed in a registry but returning nothing to a probe is invisible to the agents that would call it.

Coarse quality grade (a separate axis from the content check): A 110 · B 140 · C 644 · D 26.

The full per-server data is open: mcp-census-2026-06.csv (url, grade, returns_real_content, audited_at for all 920).

What the check means (so you can falsify it)

Honest caveats (read before citing): This is a snapshot (2026-06-18). Some servers may have been temporarily down, behind auth we did not pass, or expecting a POST/JSON-RPC initialize handshake that a liveness GET does not perform — so this is "no real content to a polite GET," not a claim that 80% are permanently dead. But it is what a discovery crawler or a casual agent sees. The grade is our own heuristic, not a standard. And we have an interest here — we help with MCP discoverability — which is exactly why the raw data and method are open. Re-run it and tell us if we're wrong.

If your MCP server is registered but isn't getting called, that is the exact thing we diagnose and fix at SaSame. The free check is real; the paid object is the executed fix plus proof that agents now call your tools.

SaSame · srl-sasame.com · data CC-BY · method reproducible (see the report repo)