MCP server compatibility & SDK-drift facts

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.

1086npm-packaged MCP servers catalogued
300SDK-scanned in this pass
1.29.0latest SDK minor (as of 2026-06-30)
38%of declared-SDK servers on latest
44%are 4+ minor versions behind
2median minor-versions behind

Declared SDK versions across the scanned head

SDK drift bucket (of 300 scanned)ServersShare of declared
On latest (1.29.0)9238%
1–3 minors behind4418%
4+ minors behind10844%
SDK bundled / not in package.json56

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.