The Model Context Protocol specification released on July 28, 2026 removes infrastructure rather than adding capability. The initialize handshake is gone. The Mcp-Session-Id header is gone. What remains is a stateless protocol core where every request carries everything a server needs to answer it — no prior connection required. Google and Hugging Face co-led the MCP Transports Working Group under the Agentic AI Foundation. The TypeScript and Python SDKs crossed 1 billion total downloads each before publication.

The problem is scale. Under the 2025-11-25 spec, clients pinned themselves to a single container holding session state. Three pods behind a load balancer meant the second request could land on the wrong machine, returning 400 Session Not Found. Workarounds were costly: sticky session rules that defeated autoscaling, Redis stores that added a read and write to every tool call, and gateway-level packet inspection to route by session. A pod crash wiped active sessions. Hugging Face measured the overhead as more than 100 MCP protocol messages per single tool call.

Old MCP 2025-11-25 architecture: sticky sessions, Redis overhead, and 400 errors on wrong-pod routing
FIG. 02 Old MCP 2025-11-25 architecture: sticky sessions, Redis overhead, and 400 errors on wrong-pod routing — Agentic AI Foundation / Google Cloud MCP Working Group, 2026
Old MCP 2025-11-25 stateful architecture: sticky routing defeated autoscaling; Redis added a read and write on every tool call; a pod crash wiped active sessions.
FIG. 03 Old MCP 2025-11-25 stateful architecture: sticky routing defeated autoscaling; Redis added a read and write on every tool call; a pod crash wiped active sessions. — Google Developers Blog; Hugging Face MCP Transports Working Group

Google's motivation was scale at cost. Its MCP Toolbox for Databases logged over 20 million tool calls across 40-plus databases in a single month. Redis round-trips and sticky routing are line items on an infrastructure bill. Kurtis Van Gent, Google Cloud MCP core maintainer, wrote that teams needed MCP to scale across millions of concurrent queries on Google Cloud.

The fix removes the initialize/initialized handshake and Mcp-Session-Id header. Protocol version, client capabilities, and identity now travel in a _meta field on every request. Three new HTTP headers — Mcp-Protocol-Version, Mcp-Method, and Mcp-Name — let gateways route, authorize, and rate-limit without parsing the JSON-RPC body. List responses can include cache instructions. Result: any server instance answers any request, standard round-robin balancers work unchanged, and MCP servers run as serverless functions that spin to zero when idle. The GitHub MCP Server, powered by Google's Go SDK v1.7.0, already removed Redis session storage.

New MCP 2026-07-28 stateless architecture: round-robin balancing, no Redis, serverless-compatible
FIG. 04 New MCP 2026-07-28 stateless architecture: round-robin balancing, no Redis, serverless-compatible — blog.modelcontextprotocol.io, 2026-07-28
Aspect2025-11-25 (old)2026-07-28 (new)
Session handshakeinitialize / initialized exchange requiredRemoved
Session tracking headerMcp-Session-Id requiredRemoved
Client capabilities & identityNegotiated once at connect timeCarried in _meta field on every request
Load balancingSticky-session rules requiredStandard round-robin (any instance answers)
Session storageRedis store (read + write per call)Not required
Serverless / scale-to-zeroNot compatibleFully supported
Gateway routing & authRequires JSON-RPC body inspectionMcp-Protocol-Version, Mcp-Method, Mcp-Name headers
CachingNot specifiedCache instructions on List responses
FIG. 05 MCP spec 2025-11-25 vs 2026-07-28 — key protocol changes — blog.modelcontextprotocol.io, 2026-07-28; Google Developers Blog

Stateless protocol does not mean stateless application. If a tool creates a browser session, shopping basket, or database transaction, it returns an identifier. The model passes it back as an ordinary argument on the next call. This is how HTTP APIs work. Explicit handles let the model reason about state, compose across tools, and hand it off between steps in ways opaque transport metadata never allowed.

Explicit state-handle pattern: the model passes session identifiers as ordinary arguments, making state visible and composable across tool calls
FIG. 06 Explicit state-handle pattern: the model passes session identifiers as ordinary arguments, making state visible and composable across tool calls — MCP 2026-07-28 spec; blog.modelcontextprotocol.io
Stateless protocol, stateful application: the model holds and passes explicit session handles as ordinary tool arguments — no opaque transport metadata needed.
FIG. 07 Stateless protocol, stateful application: the model holds and passes explicit session handles as ordinary tool arguments — no opaque transport metadata needed. — MCP 2026-07-28 spec; blog.modelcontextprotocol.io

The spec brings two concerns for teams on 2025-11-25. First, migration: stop relying on Mcp-Session-Id, move per-session state to explicit tool arguments, emit the new headers on Streamable HTTP requests, and target a Tier 1 SDK release that ships 2026-07-28 support. Second, deprecation: Roots, Sampling, and Logging are deprecated with 12-month removal window — earliest out July 2027. Security additions include RFC 9207 issuer verification and RFC 8707 resource indicators.

Feature / ConcernMCP 2025-11-25MCP 2026-07-28
Initialize handshakeRequired (initialize / initialized)Removed
Session identifierMcp-Session-Id header requiredRemoved
State transportServer-side session storage_meta field on every request
New routing headersNoneMcp-Protocol-Version, Mcp-Method, Mcp-Name
Load balancingSticky sessions requiredStandard round-robin
List response cachingNot supportedCache instructions in response
Serverless deploymentNot practical (session pins a container)Native — servers can spin to zero
Deprecated featuresRoots, Sampling, Logging (removal window closes July 2027)
Security additionsRFC 9207 issuer verification; RFC 8707 resource indicators
FIG. 08 MCP spec changes: 2025-11-25 vs 2026-07-28 — blog.modelcontextprotocol.io, 2026-07-28
CategoryItemStatus / Detail
DeprecatedRootsDeprecated 2026-07-28 — earliest removal July 2027
DeprecatedSamplingDeprecated 2026-07-28 — earliest removal July 2027
DeprecatedLoggingDeprecated 2026-07-28 — earliest removal July 2027
Security additionIssuer verificationRFC 9207
Security additionResource indicatorsRFC 8707
FIG. 09 MCP 2026-07-28: deprecated features and new security additions — blog.modelcontextprotocol.io, 2026-07-28

For teams building on MCP, the migration checklist is short. The SDK handles most transport work. The real risk: unmaintained third-party servers that nobody will upgrade before the deprecation window closes.