759 declared endpoints fail the `initialize` handshake, and 70 more are broken before it
Hello — a data-quality report, checkable one line at a time.
I sent one initialize handshake to every remote endpoint the registry
declares. Reading, not calling: no tools/call was ever issued, and no
credential was ever sent. First run 2026-09-10, repeated weekly since —
generated from the live registry on 2026-09-15:
| 304 | 404 or 410 to initialize |
| 254 | the host no longer resolves in DNS |
| 41 | unreachable (connection or TLS failure) |
| 96 | server error or timeout, confirmed by a second observation |
| 56 | answers, but is not a conformant MCP endpoint |
| 8 | accept initialize, then reject the mandatory notifications/initialized with HTTP 400 — a client following the specification breaks here |
And separately, needing no network at all:
| 70 | the entry's URL still contains an unexpanded template placeholder, e.g. https://host:{HAPI_PORT}/mcp |
Those 70 were never probed — they are broken on their face, and they look like the cheapest thing to fix: they could be rejected at submission.
What I deliberately did not count
A server answering 401 or 403 is alive, and is not in these figures at all.
56 HTTP 429s were discarded rather than recorded. A sequential re-probe, 2 s apart, found 9 of 9 rate-limited endpoints answering on the second try — so those were my own crawl pressure, not your data.
32 HTTP 402s were discarded too: a server demanding payment is working.
707 local-package entries were never probed. A package is not a defect, and nothing is ever installed in order to inspect it.
Check any of it
curl -s -X POST https://<endpoint> -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"check","version":"1"}}}'Full list: https://errata.apidefects.workers.dev/errata.json — filter on
subject.registry == "registry.modelcontextprotocol.io": 829
confirmed records. If one is wrong it should be withdrawn, and 46
already have been.
One more measurement, free with the same pass and possibly of use to you:
405 of the 2 606 live servers — 16 % — issue an Mcp-Session-Id on
initialize that a client must capture and replay, or be rejected on
tools/list.
Source: modelcontextprotocol/registry