DEV Community

MCP Verified
MCP Verified

Posted on

What breaks in MCP servers: results from launching 750 registry entries

Disclosure: I run MCP Verified, a weekly test of servers in the official Model Context Protocol registry. This post is the data. The newsletter link is at the end.

What we test

Each week we take a sample of 750 entries from the official MCP registry (300 npm, 150 PyPI, 200 remote streamable-HTTP, 100 remote SSE). We install or connect to each one in a clean sandbox, run the MCP initialize handshake, and call tools/list. Where possible we also make one harmless tool call. We supply no API keys.

Results (run of Oct 19, 2026)

Type Tested Working Median handshake Median tools
npm 300 218 (73%) 563 ms 14
PyPI 150 73 (49%) 1,581 ms 16
HTTP 200 130 (65%) 436 ms 8.5
SSE 100 10 (10%) 1,152 ms 9
All 750 431 (57%)

Failure reasons (319 servers)

Reason Count
Needs config/env vars (untested) 92
Remote endpoint dead 88
Needs credentials (untested) 54
Crashed on start 47
Install failed 12
Handshake failed 10
tools/list failed after handshake 6
URL isn't an MCP server 6
Timeout (45 s) 4

Practical checklist for server authors

  1. Don't crash when an env var is missing. Finish the handshake and return a clear error from the tool call.
  2. If you publish a remote endpoint, monitor it. 69 of 100 SSE entries were dead.
  3. Pin dependencies. Install failures were few (12), but each one is a total loss for users.
  4. Keep startup fast. Clients often time out. The PyPI median handshake was about 3× npm's.

Trend

Working count in our runs: 422 (Oct 13), then 427, then 431 (both Oct 19).

Caveats

This is a sample, not the whole registry. "Needs config" doesn't mean broken. Results are from one sandbox environment.

Weekly results (free newsletter): https://buttondown.com/mcpverified · Site: https://mcpverified.netlify.app

Top comments (0)