What happened
On 28 July 2026 the Model Context Protocol published its 2026-07-28 specification, replacing the stateful, session-based core with a stateless request/response model. It retires the initialize/initialized handshake and the Mcp-Session-Id header, adds Mcp-Method / Mcp-Name header-based routing, cacheable tool/prompt/resource lists (ttlMs, cacheScope) and Multi Round-Trip Requests. Roots, Sampling and Logging are deprecated with a 12-month minimum window.
Why it matters
Statefulness was MCP's scaling ceiling: remote servers needed sticky sessions, a shared session store, and gateways that parsed JSON bodies to route. Statelessness lets a remote MCP server sit behind round-robin load balancing and lets gateways authorize on headers — a real operational simplification, but a breaking one.
This is a protocol maturing from 'local tool bridge' to 'distributed service.' The deprecations keep working for at least a year, so the Staff decision is migration sequencing — plan the move to header-routed gateways and Client ID Metadata Documents deliberately rather than chasing the spec on day one.
Why does making a protocol stateless make it easier to scale horizontally, and what do you give up? Frame it around MCP's move away from sticky sessions.
Probes distributed-systems reasoning about state, routing and caching.