Skip to content

759 declared endpoints fail the initialize handshake, and 70 more are broken before it #1643

Description

@mun29

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions