The State of MCP Compatibility
A factual snapshot as of 2026-06-30. Sample: the top 300 of
1086 npm-packaged MCP servers by download volume, SDK-scanned in this T0 pass;
244 declare a parseable @modelcontextprotocol/sdk dependency,
56 bundle it or use a workspace dependency (not readable from
package.json). A further 786 catalogued servers are ranked by
downloads but not yet SDK-scanned — they are excluded here, not counted as behind.
Declared SDK versions across the scanned head
| SDK drift bucket (of 300 scanned) | Servers | Share of declared |
|---|---|---|
| On latest (1.29.0) | 92 | 38% |
| 1–3 minors behind | 44 | 18% |
| 4+ minors behind | 108 | 44% |
| SDK bundled / not in package.json | 56 | — |
These are declared, pre-release-candidate SDK versions read from
published package.json files. Actual runtime behaviour against the
2026-07-28 stateless MCP spec requires install-and-boot testing (Pro tier), not
covered here. The 56 "bundled / not in package.json" servers are excluded
from the drift percentages rather than counted as behind, and the 786
not-yet-scanned servers are excluded from the sample entirely. See the
methodology.
Why this matters now
The 2026-07-28 MCP specification release candidate changes the HTTP transports (stateless transport, a removed session handshake, changed error codes, new required headers). This report re-runs on each scan, so each server accumulates a dated version history — the part current-state snapshots elsewhere don't have. Whether any specific server is affected depends on the transport it uses, not its SDK lag; see the transport read.