Model Context Protocol · 2026-07-28 · major
MCP 2026-07-28 — stateless transport lands, HTTP+SSE deprecated
MCP's July 2026 spec turns the protocol stateless: the initialize handshake and Mcp-Session-Id header are gone, every request now carries its own version and capabilities, and legacy HTTP+SSE transport starts a 12-month deprecation.

MCP goes stateless: no more session handshake, every request stands alone, and the old HTTP+SSE transport is on a 12-month clock.
Key specs
| Tier 1 sdks | 4 (TS, Python, Go, C#) |
|---|---|
| Migration window | 12 months |
Quick facts
| Maker | Model Context Protocol working group |
|---|---|
| Spec date | 2026-07-28 |
| License | Open protocol |
| SDKs supporting | TypeScript, Python, Go, C# (Rust in beta) |
| Big change | Bidirectional stateful → stateless request/response |
| Deprecated | HTTP+SSE transport, Roots, Sampling, Logging |
| Deprecation window | ≥12 months |
What is it?
MCP 2026-07-28 is the latest version of the Model Context Protocol, the standard MCP servers and clients use to expose tools, prompts, and resources to AI agents. The new spec removes the `initialize`/`initialized` handshake and the `Mcp-Session-Id` header so each request is fully self-describing.
How does it work?
Every request now carries its own protocol version, client identity, and capabilities in new `Mcp-Method` and `Mcp-Name` headers, letting MCP servers run behind standard load balancers with no shared session store. Server-initiated calls are replaced by Multi Round-Trip Requests, where a server returns `resultType: input_required` and the client retries with the needed data. Tool, prompt, and resource lists gain `ttlMs` and `cacheScope` for HTTP-style caching.
Why does it matter?
The 2026-07-28 spec is what lets MCP scale like a normal REST service: no sticky sessions, no long-lived streams, and cacheable responses. It also starts a 12-month deprecation clock on HTTP+SSE transport plus Roots, Sampling, and Logging — every MCP server and client will need a migration plan within a year.
Who is it for?
MCP server and client authors, agent framework maintainers
Frequently asked questions
- Does MCP 2026-07-28 break my existing server?
- MCP 2026-07-28 does not break existing servers immediately. Legacy HTTP+SSE transport, Roots, Sampling, and Logging keep working for at least 12 months. During that window a server can support both the old and new specs. After the deprecation window closes, clients using only the new spec will not talk to a server that still relies on the deprecated features.
- Which SDKs support the new MCP spec?
- Four Tier 1 MCP SDKs support the 2026-07-28 spec at release: TypeScript, Python, Go, and C#. The Rust SDK ships support in beta. Other community SDKs are expected to follow but are not tracked as Tier 1 by the working group.
- Why did MCP move to a stateless transport?
- MCP moved to stateless requests so servers can run behind normal HTTP load balancers without shared session storage. The old design required a session id and an open stream, which forced sticky routing and made horizontal scaling painful. Each 2026-07-28 request is self-contained, so any server instance can handle any request.
- What replaces the deprecated Roots, Sampling, and Logging features?
- The 2026-07-28 spec moves Roots, Sampling, and Logging out of the core protocol into an extensions framework alongside Tasks. Server-initiated calls that once used those channels are now expressed with Multi Round-Trip Requests, where the server returns `resultType: input_required` and the client attaches the needed data on retry.
Try it
https://modelcontextprotocol.io/specification/2026-07-28