9.8% of the endpoints the official MCP registry declares fail the MCP initialize handshake: 3634 of 36912, measured on 2026-11-01. The listing was walked to the end - 54142 entries - rather than sampled.
Separately, 5.5% of the npm and PyPI packages those entries name are not installable as named: 1087 of 19836. Nothing was installed to find that out - the package registry's own document says whether the package and the declared version exist.
Figures for how much of the MCP ecosystem is broken range from about one in ten to more than half. They are not measuring the same thing, and the number moves for three reasons before anyone probes anything.
So the figure above is published with its denominator attached, and every record carries the request that produced it. You are not asked to accept the rate; you are given what you need to recompute it.
Each of these was produced by this registry's own harvesters and then rejected. They are the difference between a defect and a thing that merely failed.
A claim, what was observed, and a check: a method, a URL and the result we saw. Run the check. If it answers differently, the record is withdrawn - 1141 already have been. Nothing here asks to be believed.
The loop runs every night; a record is re-checked when its own interval is up - the next night for one held awaiting a second observation, within thirty days for a settled one. "Re-checked nightly" is what this page said until somebody counted, and what it meant was that the loop runs nightly, not that every record does.
Records are never deleted. A withdrawal is not a claim of health: it means this particular check stopped supporting this particular claim.
| kind | open records |
|---|---|
endpoint_gone | 1369 |
host_gone | 881 |
declared_package_deprecated | 800 |
server_error | 779 |
document_gone | 560 |
not_a_conformant_mcp_endpoint | 518 |
host_unreachable | 437 |
auth_unknown_resolved_credentials_required | 413 |
entry_unexpanded_template | 366 |
timeout | 263 |
declared_package_gone | 138 |
declared_package_unpublished | 67 |
rejects_mandatory_notification | 61 |
declared_package_version_absent | 53 |
Built from errata-2026-09-10@c2ce1acdc653 on 2026-09-10. The whole registry is machine-readable, and llms.txt says the same thing in one screen. To ask about one tool: /check?tool=<identity>.