November 11, 2026

MCP Drops Sessions: What the Stateless 2026-07-28 Specification Changes

A close-up of a network patch panel with neatly arranged blue and yellow ethernet cables

The Model Context Protocol, the standard that lets AI agents call tools and read data, dropped its sessions in a specification dated July 28, 2026. The release, published by lead maintainers David Soria Parra and Den Delimarsky on the MCP blog, moves the protocol to what the post calls a request/response stateless design. The newest evidence of how fast the ecosystem is following came on October 30, when the Ruby SDK reached Tier 1 status with full support for the new version, per the MCP blog post on the Ruby SDK.

Video: “Here’s How the New MCP Spec Works,” from Kent C. Dodds on YouTube. The specification details in this article come from the written sources listed below.

What sessions cost at scale

Before this release, an MCP connection began with an initialize handshake and carried a session identifier in the Mcp-Session-Id header. That suited a single process on a laptop. It caused trouble for remote servers running as several instances. As The Register reports, quoting core maintainer Caitie McCaffrey of Microsoft, running MCP at scale had required “sticky routing or shared state,” which means a load balancer had to keep sending one client to the same server instance.

The cost showed up in ordinary infrastructure. Enterprise AI World describes the revision as removing core scaling bottlenecks so servers can sit behind standard load balancers and use existing Kubernetes and cloud-native tooling. The Agentic AI Foundation, which now hosts the protocol, calls it the largest revision since the initial launch.

Governance explains who made the decision. Anthropic donated MCP to the Agentic AI Foundation, a directed fund under the Linux Foundation, in December 2025; The New Stack lists Amazon, Anthropic, Block, Bloomberg, Cloudflare, Google, Microsoft and OpenAI as platinum members. A later report from Enterprise DNA says Google transferred its Agent2Agent protocol to the same foundation on August 20, 2026, which places the two main agent protocols under one neutral roof.

The two protocols do different jobs. Per Enterprise DNA, MCP covers the connection between an agent and the tools, data sources and applications it uses, while A2A covers communication between agents, such as one handing a task to another. The article presents them as complementary layers of one stack rather than rivals, and this specification change touches the first layer.

An aerial view of a multi-lane highway interchange at dusk with light trails from traffic

The stateless core

The new request shape is simple to describe. The initialize and initialized handshake and the Mcp-Session-Id header are retired. Each request now carries its protocol version, client identity and capabilities in a metadata field, and an optional server/discover call lets a client learn a server’s capabilities up front. Any request can reach any instance behind a round-robin load balancer, according to the MCP blog.

State did not vanish; it moved. The blog says applications that need state should have a tool issue an explicit handle and have the client pass it back as an argument. The Foundation’s migration guide adds that a fresh server object is created per request, that sticky routing is no longer needed, and that statelessness does not make tool calls idempotent, so side effects still need care.

Routing and caching changed alongside it. Streamable HTTP requests must now carry Mcp-Method and Mcp-Name headers, so gateways, rate limiters and web application firewalls can route without parsing JSON bodies. Responses to tools/list, prompts/list, resources/list and resources/read include a ttlMs value and a cacheScope, which lets clients and intermediaries cache them. The post also says list responses have a deterministic order.

A neat stack of identical sealed envelopes on a wooden desk with a pen beside them

Multi round-trip requests and what was deprecated

A stateless server cannot hold a connection open and wait for a human, so the release replaces the old pattern. Under Multi Round-Trip Requests, the server returns a result of type input_required, and the client retries the call with the answers in an inputResponses field. This takes the place of server-initiated elicitation, sampling and roots requests that needed held-open streams.

Three features are deprecated as a result: Roots, Sampling and Logging. They still work and will be supported for at least twelve months, and the blog advises new implementations not to adopt them. The legacy HTTP plus SSE transport is also deprecated, with a year-long offramp. A new formal policy, described by The Register as SEP-2596, guarantees at least twelve months between deprecating a feature and removing it, which gives SDK authors a planning window.

Supabase, quoted in the release post, says the new request pattern lets its tools confirm actions with users. That matters for agents that take consequential actions, a risk x9m8 examined in its report on the Anthropic agent containment findings and in its coverage of Schwab and JPMorgan blocking outside AI agents.

A hand holding a ring of several metal keys against a blurred office background

Authorization and the extensions framework

Security changes target a specific attack. Authorization servers now return an iss parameter per RFC 9207, and clients must validate it. The Register describes the goal as preventing OAuth mix-up attacks, in which a malicious server obtains tokens meant for another. Client credentials are bound to the issuer that minted them, and Dynamic Client Registration is formally deprecated in favor of Client ID Metadata Documents. It still works but is slated for removal in a future version.

A formal extensions framework now hosts optional features that can evolve outside the core release cycle. Named examples in the blog are Tasks, MCP Apps and Enterprise Managed Authorization. Tasks moved out of the experimental core into its own extension, with a poll-based tasks/get and a new tasks/update, and Enterprise AI World explains that it gives servers a durable handle for long-running work so clients can reconnect and retrieve results. Enterprise Managed Authorization lets an organization’s identity provider decide who can reach which MCP servers.

Vendors quoted in the release describe early use. AWS says Tasks was contributed by AWS and is available in Amazon Bedrock AgentCore. Honeycomb reports that nearly 20 percent of its monthly interactive queries now come from agents. Manufact says its new SDK version cut package size by about 83 percent and made it about 25 percent faster. These are vendor statements in a project blog, not independent measurements.

Migration and SDK status

The blog is upfront about the price. It says migration has a cost, especially for developers who relied on session identifiers. Four Tier 1 SDKs, for TypeScript, Python, Go and C#, supported the new version on release day, and the Rust SDK supports it in beta. The project reports that Tier 1 SDKs see close to half a billion downloads a month, and that the TypeScript and Python SDKs have each passed 1 billion total downloads.

Existing servers do not have to break at once. The migration guide says the change is not breaking, that existing deployments keep working, and that a legacy stateless mode accepts both 2025 and 2026 requests. A stricter mode accepts only 2026 clients and answers older ones with HTTP 400 and error code -32022 listing the supported version. A server that must keep stateful legacy clients can run two handlers side by side.

The migration guide’s checklist for a TypeScript server is concrete. It removes the transport registry, session lookup, UUID generation and cleanup callbacks, moves any per-client state into explicit handles or shared storage, has clients send metadata and an MCP-Protocol-Version header on every request, and removes session affinity from load balancers. Its example Kubernetes Service sets session affinity to none, which is the operational payoff in one line.

Ruby shows what Tier 1 now requires. Per the MCP blog, the tier demands full spec feature support, a 100 percent conformance pass rate, support for new spec versions by their release date, issue triage within two business days and critical fixes within seven days. The Ruby SDK passed 67 of 67 scored server scenarios and 50 of 50 client scenarios, intentionally omits the deprecated SSE transport, and its maintainers have committed to supporting the next spec, targeted for late March 2027, on its release date.

The roadmap after July

The August 22 roadmap names five priorities. They are agentic messaging primitives such as webhooks and channels, with the Tasks extension maturing toward the core specification; unifying on HTTP-native transport, including for local servers that now use stdio; agent identity and enterprise-ready security, including delegation through Workload Identity Federation; improved primitives, with a single contract for tool results and progressive discovery of tools; and better SDK developer experience. The roadmap gives no date for the next release.

Proposals inside those areas get expedited review, while proposals outside them are not automatically rejected but wait behind priority work. Adoption beyond the protocol itself is still being measured in the field; x9m8’s earlier piece on an agent reliability benchmark is a reminder that connecting an agent to a tool is a different problem from the agent using it correctly.

Sources

394 Posts

Peter Kalafatis writes and edits X9M8. He holds a bachelor's degree from LIU Post and a master's in Media Studies from The New School, with academic work in the philosophy of science, human behavior, AI, and memetics.

View All Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

You Missed