Stateless core
Stateless core - The 2026-07-28 revision's redesign of MCP from a bidirectional stateful protocol into a request/response stateless one: the initialize handshake and protocol-level session are removed, every request carries its protocol version, client identity, and capabilities in _meta, and any request can land on any server instance behind a plain load balancer.
The stateless core is the headline change of the 2026-07-28 revision. Earlier revisions opened each connection with an initialize handshake and carried a protocol-level session (the Mcp-Session-Id header on Streamable HTTP), which forced sticky routing or shared session storage for scaled deployments. Under the stateless core, each request is self-contained: protocol version, client identity, and client capabilities travel in the request's _meta field, and servers advertise their capabilities through the server/discover RPC for clients that want them up front.
Statelessness at the protocol layer does not prohibit stateful applications. The specification's guidance is to mint an explicit handle from a tool and have the model pass it back as an ordinary argument, rather than hiding state in the transport.
Where to see Stateless core in the catalog
| Entity | Type | Note |
|---|---|---|
| Vercel MCP | server | Serves the stateless revision in production alongside 2025-era clients. |
Related concepts
Sources and verification
Last verified · confidence 1.00.
- Official MCP blog, 2026-07-28 release - "MCP is transforming from a bidirectional stateful protocol into a request/response stateless protocol"; initialize/initialized and Mcp-Session-Id retired - accessed
- Official 2026-07-28 changelog - SEP-2575 and SEP-2567 remove the handshake and protocol-level sessions; server/discover added for up-front capability discovery - accessed