The Model Context Protocol (MCP) has quickly become the standard way to connect AI models with external tools, databases, APIs, and services.
Since its launch, developers have built thousands of MCP servers that help AI applications interact with external systems in a standard way.
On May 21, 2026, the MCP community published the 2026-07-28 Release Candidate, introducing the biggest architectural change since the protocol was first released. If adopted as planned, the specification is scheduled for July 28, 2026, will move MCP to a stateless architecture.
This is a major change for developers. It removes protocol-level sessions, simplifies deployments, and makes MCP servers much easier to scale in production. Let's look at what is changing and how you can prepare for it.
How MCP Worked Before
Before the upcoming July 2026 specification, MCP used a stateful protocol. When a client connected to an MCP server, it first established a session through an initialize request. The server responded with its capabilities, and the client acknowledged the connection with an initialized notification. From that point onward, the server maintained information about that client for the lifetime of the session. Because the server stored session information, every request from the same client had to reach the same server instance. This worked well for smaller deployments, but it introduced several operational challenges as MCP adoption grew.
Why Stateful Protocols Become Difficult to Scale?
Imagine you deploy three MCP servers behind a load balancer.

A client connects to Server A and creates a session there. If the next request is routed to Server B, that server has no knowledge of the existing session. The request either fails or must be redirected back to Server A. To avoid this, deployments often relied on sticky sessions, where the load balancer always routes a client to the same server. While effective, sticky sessions introduce several drawbacks:
- Scaling becomes more difficult because requests cannot be evenly distributed.
- If the server holding the session fails, active clients may lose their session.
- Autoscaling becomes less efficient because servers cannot process requests interchangeably.
- Session storage adds operational complexity. These challenges are common in distributed systems, which is why many modern protocols have moved toward stateless designs. So how does the new specification solve these limitations?
Why Is MCP Moving to a Stateless Architecture?

The limitations of protocol-level sessions became more noticeable as MCP deployments grew beyond single-server environments. The upcoming 28th July 2026 specification addresses these challenges by removing protocol-managed sessions entirely. Instead, every request becomes self-contained, allowing any server instance to process it without relying on previous interactions. This design makes MCP easier to deploy behind standard load balancers, improves reliability, and aligns the protocol with modern cloud-native architectures.
What Is Changing?
The Initialize Handshake Is Being Removed
Previous MCP versions required clients to perform an initialize request followed by an initialized notification before making tool calls. The upcoming specification removes this handshake. Instead, now clients discover server capabilities using:
server/discover
This reduces connection overhead and simplifies the protocol.
Every Request Carries Its Own Context
One of the biggest changes is that requests become completely self-contained. Each request includes a _meta object containing information such as:
- Protocol version
- Client capabilities
- Client information
Since every request contains the required context, servers no longer need to remember information from previous requests.
New HTTP Headers
For Streamable HTTP transports, two request headers become mandatory:
Mcp-MethodMcp-Name
These headers allow proxies and servers to route requests without inspecting the request body. This improves routing performance while keeping the protocol simple.
Explicit State Handles Replace Sessions
Some workflows naturally span multiple requests. Instead of storing state inside the protocol session, servers now return identifiers that clients pass back when needed.
For example:
job_idbasket_idconversation_id
The server simply processes the identifier provided in the request. No protocol-level session is required.
| Stateful MCP (Earlier Specs) | Stateless MCP (2026 July 28 RC) |
|---|---|
| Uses protocol-level sessions | No protocol-level sessions |
Requires initialize handshake | Uses server/discover |
| Server stores client state | Every request is self-contained |
| Often needs sticky sessions | Any server can process any request |
| Harder to scale horizontally | Easier to scale and load balance |
| Recovery depends on session state | Requests can be retried on any instance |
Why This Change Matters
- Better Scalability: Deploy MCP servers behind any standard load balancer without sticky sessions.
- Improved Reliability: A failed server no longer interrupts active clients because requests are self-contained.
- Lower Operational Complexity: No session storage, simpler autoscaling, and easier Kubernetes deployments.

SDK Changes You Should Ensure
Migrating to the upcoming specification requires more than updating a version number.
Python SDK
The updated Python SDK is available as: "mcp 2.0.0b1"
This release candidate implements the upcoming protocol changes.
TypeScript SDK
The TypeScript SDK has been split into two packages.
Previous package: "@modelcontextprotocol/sdk"
New packages:
- "
@modelcontextprotocol/server" - "
@modelcontextprotocol/client" Projects migrating to the new architecture will need to update their dependencies and imports.
Deprecation Policy
The upcoming specification also introduces an official 12-month deprecation policy. The following protocol features are marked for deprecation:
- Roots
- Sampling
- Logging
These features will remain supported for approximately 12 months after the final release, giving developers time to migrate. 
Migration Checklist
If you're preparing for the upcoming specification, here are the key changes to plan for:
| Change | Action |
|---|---|
Remove initialize handshake | Required |
Implement server/discover | Required |
Include _meta in every request | Required |
Add Mcp-Method header | Required |
Add Mcp-Name header | Required |
| Replace protocol sessions with explicit IDs | Required |
| Upgrade to the latest SDKs | Recommended |
Final Thoughts
The upcoming Model Context Protocol specification represents one of the biggest architectural changes since MCP was introduced. By removing protocol-level sessions, the protocol becomes easier to scale, simpler to deploy, and better suited for modern cloud-native infrastructure.
Although these changes introduce breaking updates, they also remove many of the operational challenges that developers faced when deploying MCP servers in production. If you're building or maintaining an MCP server, now is a good time to start testing the release candidate and preparing your applications for the upcoming specification. Early testing will make the transition smoother once the final specification is published.