Protocol reference
MCP 2026-07-28 breaking changes.
Reviewed July 29, 2026 · Independent summary
The revision changes how context reaches a server. Instead of building session state during initialization, each request carries enough information to be evaluated independently.
Added or standardized
server/discoverfor supported versions and server capabilities.- Required per-request protocol version and client capabilities under
params._meta. MCP-Protocol-Version,MCP-Methodand optionalMCP-NameHTTP headers.- Structured errors for header mismatch, missing capability and unsupported version.
- A unified subscriptions flow and multi-round-trip results for interactions that previously assumed a persistent channel.
Removed from the new request flow
- The
initializeandnotifications/initializedhandshake. Mcp-Session-Id, standalone GET streams, DELETE teardown and resume throughLast-Event-ID.ping,logging/setLevel,resources/subscribeandresources/unsubscribe.
Deprecated is not the same as deleted
Roots, sampling and logging are formally deprecated in this revision, with compatibility rules. Avoid presenting every deprecation as an immediate schema deletion. Plan new designs around replacement flows, but preserve deliberate legacy support where users still depend on it.
Operational impact
Statelessness improves horizontal scaling and removes sticky-session assumptions, but it makes per-request authentication, authorization and capability validation non-negotiable. Logging should record the protocol version and method while avoiding sensitive request contents.
Check your own trace
The MCP 2026 stateless validator finds mechanical migration residue. Use the migration checklist for rollout planning.