# MCP 2026-07-28 — stateless transport lands, HTTP+SSE deprecated

> MCP goes stateless: no more session handshake, every request stands alone, and the old HTTP+SSE transport is on a 12-month clock.

- Org: Model Context Protocol
- Date: 2026-07-28
- Category: ecosystem, tool
- Source: https://blog.modelcontextprotocol.io/posts/2026-07-28/
- Canonical page: https://ai-tldr.dev/releases/mcp-spec-2026-07-28/

## In short

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.

## What it is

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 it works

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 it matters

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 it's for

MCP server and client authors, agent framework maintainers

## Try it

https://modelcontextprotocol.io/specification/2026-07-28

## 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

## FAQ

### 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.

## Links

- [Announcement](https://blog.modelcontextprotocol.io/posts/2026-07-28/)
- [Specification](https://modelcontextprotocol.io/specification/2026-07-28)
- [Spec Repo](https://github.com/modelcontextprotocol/specification)
