Anthropic Rebuilds MCP as Stateless, Unlocking Serverless AI Agent Deployments
MCP 2026-07-28 drops sessions entirely, making servers deployable on serverless and edge infrastructure for the first time, while adding a formal extensions framework and hardened enterprise auth.
- MCP 2026-07-28 is live: the protocol drops sessions entirely, making servers deployable on serverless, edge, and standard load-balanced HTTP infrastructure.
- The
initializehandshake andMcp-Session-Idare gone; every request is now self-describing via_metaand HTTP headers. - Multi Round-Trip Requests (MRTR) enable mid-tool user confirmations (like "delete this row?") without a persistent connection.
- Three official extensions ship: MCP Apps (server-rendered UI), Tasks (async/long-running ops), and Enterprise Managed Auth (IdP-based org-wide provisioning).
- Breaking changes: Roots, Sampling, Logging, HTTP+SSE transport, and Dynamic Client Registration are all deprecated with a 12-month removal window.
- All four Tier 1 SDKs (TypeScript, Python, Go, C#) are updated today; MCP has surpassed 400M monthly SDK downloads, a 4x increase this year.
The MCP 2026-07-28 specification is now final, and it rewrites more of the protocol than any update since launch. The core change: MCP is no longer stateful. That single decision reshapes how you deploy servers, handle auth, and build tools that interact with users mid-execution.
Why sessions were a problem
Every previous MCP connection required an initialize handshake that created a session ID. Servers had to track that ID for the lifetime of the connection, which meant horizontal deployments needed sticky sessions or a shared store like Redis. Serverless and edge deployments were effectively blocked.
The new spec drops all of that. Each request now carries its protocol version, client identity, and capabilities in _meta. No session header, no handshake:
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search","arguments":{"q":"otters"},
"_meta":{"io.modelcontextprotocol/clientInfo":{"name":"my-app","version":"1.0"}}}}
A new server/discover RPC lets clients fetch server capabilities upfront, but it is optional. Round-robin load balancing now works out of the box.
Everything else that changed
The stateless core is the centerpiece, but several other changes ship alongside it:
- Header-based routing: Streamable HTTP requests must now include
Mcp-MethodandMcp-Nameheaders, so gateways, rate limiters, and WAFs can route and meter on those headers without parsing JSON bodies. - Multi Round-Trip Requests (MRTR): When a tool needs user input mid-call, such as a confirmation before a destructive operation, the server returns
resultType: "input_required"with the questions it needs answered. The client retries the original call with the answers attached. Supabase specifically called this out as enabling "are you sure?" flows before destructive database operations, without requiring a persistent connection. - Cacheable list results: Responses from
tools/list,prompts/list,resources/list, andresources/readnow carryttlMsandcacheScope, giving clients enough information to cache aggressively and cut unnecessary re-fetching. - Auth hardening: Authorization servers should now return the
issparameter per RFC 9207, and clients must validate it before redeeming a code, closing an authorization-server mix-up vulnerability. Dynamic Client Registration (DCR) is formally deprecated in favor of Client ID Metadata Documents (CIMD). - Formal deprecation policy: Deprecated features now get a minimum 12-month runway before removal, giving teams a predictable window to migrate.
Extensions get a permanent home
Rather than expanding the core protocol indefinitely, Anthropic is formalizing an extensions framework with versioned, official slots. Three extensions ship with this release:
- MCP Apps: Servers can now render interactive UI directly in the conversation, so users can see what a connector is doing and interact with it inline.
- Tasks: Long-running and async operations move out of the experimental core into the
io.modelcontextprotocol/tasksextension, with a poll-basedtasks/getand a newtasks/update. - Enterprise Managed Auth (EMA): Admins provision MCP connectors once through their identity provider. Users inherit access through existing IdP groups and are connected on first login, with no per-user setup required.
The extensions framework keeps the core lean while letting capabilities expand on their own cadence, a deliberate architectural choice for a protocol that is increasingly running production infrastructure.
The scale driving these decisions
MCP recently crossed 400 million monthly SDK downloads, a 4x increase this year, with both the TypeScript and Python SDKs each surpassing 1 billion total downloads. At that volume, session management stopped being a theoretical concern and became a real operational wall. Honeycomb reported that nearly 20% of all their monthly interactive queries now come from agents. The protocol's origins were in local developer tooling; the deployment reality it faces today is enterprise-scale, distributed, and serverless.
What you can build now
Deployment patterns that previously required significant infrastructure work are now straightforward:
- Deploy MCP servers to AWS Lambda, Cloudflare Workers, or any serverless platform with no session infrastructure
- Scale horizontally behind any standard load balancer without sticky sessions
- Route and rate-limit at the gateway layer using HTTP headers instead of JSON body inspection
- Provision tool access centrally via Okta or Entra, with zero per-user setup for end users
- Build tools that ask for user confirmation mid-execution without a persistent connection
What breaks and what to watch
This is a transport-level rewrite, not a point release. If you have existing MCP servers, four things are going away:
- Roots, Sampling, and Logging are deprecated. They still work for at least 12 months, but new implementations should not adopt them.
- The legacy HTTP+SSE transport is officially deprecated with a one-year offramp.
- In-memory session state will silently break if you relied on it across requests. The recommended pattern is to mint an explicit handle from a tool and have the model pass it back as an argument.
- Dynamic Client Registration (DCR) is deprecated in favor of CIMD.
All four Tier 1 SDKs (TypeScript, Python, Go, and C#) are updated to match the new spec today with migration notes included. The Rust SDK supports the new spec in beta.
How to get started
Explore the full spec and updated SDKs to begin. Support is rolling out across Claude products soon, which currently lists over 950 MCP servers in its connectors directory.
For new servers, start directly with the 2026-07-28 spec. For existing servers, the core migration work is removing session handling and ensuring any state your tools need is passed explicitly through tool arguments rather than stored server-side.