State of MCP, 2026-08-03 census

Most MCP servers are not dead. We checked all 19,804.

A census of the entire official MCP registry, checked with the same zero-key probes anyone can run themselves. About 80.7% are healthy, roughly 1 in 5 is dead or broken, and only about 1 in 23 is fully dead. A verdict here is a measurement, not a rating.

Census date
2026-08-03
Servers checked
19,804
License
CC BY 4.0
Probe engine
akashi v0.3.0-6-gb1c497b

The verdict distribution

Dead-or-broken (degraded plus dead) is 3,643 servers, roughly 1 in 5. Fully dead is 851, roughly 1 in 23. Both counts are over the full 19,804, the more conservative and complete denominator.

Browse the archive: healthy, degraded, dead, unknown, or all 19,800 servers.

Honest denominator note: 187 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 19,617 servers; over that smaller base healthy rises to 81.4% and dead-or-broken to 18.6%. We lead with the full 19,804 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 11,498 package entrypoints we could probe across npm, PyPI, and OCI, only 97 are broken, about 1%. A further 1,330 are OCI or private images we cannot probe without a key; they are reported separately, not counted as broken.

Repositories: the rot layer

Of 15,997 declared GitHub repositories, 2,083 return HTTP 404 or are gone and 152 are archived. Combined, 2,235 repositories have rotted, 14.0% of repository-bearing servers. A further 1,630 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 10,376 declared remote endpoints, 1,401 are down, 13.5%: unreachable, a server error, or not found. Remote-bearing servers (9,957 of them) are the sickest cohort: 24.1% dead-or-broken and 7.6% fully dead, versus 4.3% fully dead overall. 2,716 endpoints are auth-gated: alive, but not verifiable without a key. 63 answer HTTP 200 but are not real MCP servers, caught by an impostor guard before they ever count as healthy.

server.json validity

367 servers, 1.9% of the 19,804 that declare one, publish a server.json that fails validation against its own declared JSON Schema.

Conformance, not just uptime

5,582 remotes complete a full MCP initialize handshake. Of those, 5,353 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 5,515 servers reachable through a conformant keyless initialize, 6 pass all four required-conformance signals, against 0 in the previous census. 80.9% already accept handshake-free calls, the heart of the change.

Read the spec-readiness report

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-6-gb1c497b. Any row is re-checkable with akashi check <server>, any time.

Data access

Open data, CC BY 4.0, dated 2026-08-03.

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-08-03. 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-08-03. 19,804 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

$ akashi check io.github.owner/name

Install Akashi - single Go binary, zero keys, MIT licensed.