State of MCP, 2026-09-13 census
Most MCP servers are not dead. We checked all 31,538.
A census of the entire official MCP registry, checked with the same zero-key probes anyone can run themselves. About 80.6% are healthy, roughly 1 in 5 is dead or broken, and only about 1 in 27 is fully dead. A verdict here is a measurement, not a rating.
- Census date
- 2026-09-13
- Servers checked
- 31,538
- License
- CC BY 4.0
- Probe engine
- akashi v0.3.0-11-g69de215
The verdict distribution
25,411
healthy (80.6%)
Browse healthy →
4,667
degraded (14.8%)
Browse degraded →
1,184
dead (3.8%)
Browse dead →
276
unknown (0.9%)
Browse unknown →
Dead-or-broken (degraded plus dead) is 5,851 servers, roughly 1 in 5. Fully dead is 1,184, roughly 1 in 27. Both counts are over the full 31,538, the more conservative and complete denominator.
Browse the archive: healthy, degraded, dead, unknown, or all 31,532 servers.
Honest denominator note: 276 servers declared only entrypoints we cannot probe without a key, so they are reported as unknown rather than folded into a rate. Excluding them narrows the base to 31,262 servers; over that smaller base healthy rises to 81.3% and dead-or-broken to 18.7%. We lead with the full 31,538 above because it is the more conservative, complete denominator.
Failure concentrates differently per layer
A single verdict hides where things actually break. Every server can fail at up to four independent layers, and they do not fail at the same rate.
Packages: the most reliable layer
Of 14,772 package entrypoints we could probe across npm, PyPI, and OCI, only 121 are broken, about 1%. A further 2,084 are OCI or private images we cannot probe without a key; they are reported separately, not counted as broken.
Repositories: the rot layer
Of 24,383 declared GitHub repositories, 3,370 return HTTP 404 or are gone and 217 are archived. Combined, 3,587 repositories have rotted, 14.7% of repository-bearing servers. A further 2,582 repository checks came back an ambiguous error, possibly transient or rate-limit related. We exclude those from the rotted figure instead of inflating it.
Hosted remotes: the fragile layer
Of 19,661 declared remote endpoints, 1,924 are down, 9.8%: unreachable, a server error, or not found. Remote-bearing servers (19,150 of them) are the sickest cohort: 22.5% dead-or-broken and 5.4% fully dead, versus 3.8% fully dead overall. 4,422 endpoints are auth-gated: alive, but not verifiable without a key. 366 answer HTTP 200 but are not real MCP servers, caught by an impostor guard before they ever count as healthy.
server.json validity
387 servers, 1.2% of the 31,538 that declare one, publish a server.json that fails validation against its own declared JSON Schema.
Conformance, not just uptime
12,003 remotes complete a full MCP initialize handshake. Of those, 10,641 go on to resolve tools/list over the official go-sdk client, the strongest keyless proof a server actually works.
Ready for the 2026-07-28 spec?
Health answers whether a server works today. The 2026-07-28 revision removes protocol
sessions and the initialize handshake, so it also matters whether
a server will still work afterwards. Of the 11,929 servers reachable
through a conformant keyless initialize, 31
pass all four required-conformance signals, against 29 in the previous census. 63.3% already accept handshake-free calls, the heart of the change.
Keyless and reproducible
Keyless
Every probe touches only public endpoints: the registry, the public GitHub API, npm, PyPI, anonymous Docker Hub, and a capability-only MCP initialize / tools-list handshake. Akashi authenticates to no probed server and runs none of its tools. A GitHub token, if present, only raises the public API rate limit.
Reproducible
Same registry, same probe set, same documented criteria, akashi v0.3.0-11-g69de215. Any row is re-checkable with akashi check <server>, any time.
Data access
Open data, CC BY 4.0, dated 2026-09-13.
- GitHub repository - the dated census releases and methodology source
- /data/state-of-mcp/summary.json - the machine-readable summary behind every number on this page
- /data/state-of-mcp/index.json - the per-server endpoint index
- /data/state-of-mcp/feed.xml - Atom feed, one entry per dated census with the movement since the last one
Cite this data
CC BY 4.0 asks for attribution. Cite the dated census so your snapshot is reproducible: the registry moves, and each census supersedes the last without deleting it.
RoninForge.org, "State of MCP: a dated census of the official Model Context Protocol registry", 2026-09-13. CC BY 4.0. https://roninforge.org/data/state-of-mcp/ BibTeX
@misc{roninforge_state_of_mcp,
author = {{RoninForge}},
title = {{State of MCP: a dated census of the official Model Context Protocol registry}},
year = {2026},
howpublished = {\url{https://roninforge.org/data/state-of-mcp/}},
note = {Census 2026-09-13. 31,538 servers. Data licensed CC BY 4.0.}
} The same attribution string ships inside every JSON payload, on the cite field, so it survives a copy of the raw data.
Source, methodology and a machine-readable CITATION.cff: the state-of-mcp repository.
Check it yourself
- Browse all 31,532 servers - alphabetical shards and verdict cohorts
- Read the methodology - the denominator, the definitions, and what each probe does
- Check a server yourself - the one-shot form, or run it locally:
$ akashi check io.github.owner/nameInstall Akashi - single Go binary, zero keys, MIT licensed.