Software Savants
All posts
MCPArchitectureInfrastructure

The Stateless Evolution of MCP

4 min readAbdulrahman

The Model Context Protocol just made the most important infrastructure change since it shipped. The 2026-07-28 specification moves MCP from a stateful protocol to a stateless one.

If you've ever fought sticky sessions, Redis-backed session stores, or mysterious "session not found" errors after a pod restart — this update is for you.

The problem with stateful MCP

Earlier MCP versions required an initialize handshake. Clients tracked an Mcp-Session-Id. That session ID pinned each client to a specific server instance.

In local demos, nobody noticed. In production, it hurt:

  • Load balancers needed sticky sessions
  • Multi-pod deployments needed shared session state (usually Redis)
  • If an instance died, the session died with it
  • Scale-to-zero platforms couldn't cold-start cleanly mid-session

You weren't building an MCP server. You were building a session-affinity system that happened to expose tools.

What the new spec changes

Stateless by default

The initialize handshake is gone. So is the Mcp-Session-Id header. Every request is self-contained.

That means:

  • Standard round-robin load balancing works
  • Any pod can handle any request
  • Servers can scale to zero on Cloudflare Workers, Cloud Run, and similar platforms
  • Instance failure no longer orphans an entire client session

HTTP-native routing

New request headers — Mcp-Method and Mcp-Name — let gateways route traffic without parsing JSON bodies. Lower latency. Cleaner edge proxies. Less custom middleware.

Caching hints

Tool, prompt, and resource list calls can now return ttlMs and cacheScope hints. Same idea as HTTP caching: tell clients how long a list is safe to reuse, and whether the cache is private or shareable.

State belongs in your API, not the protocol

Need continuity across calls? Pass IDs as tool arguments. Store workflow state in your database. Use the same patterns you'd use for a normal REST API.

Protocol-level sessions were a shortcut. They also became a scaling tax. The new model pushes state where it belongs — into your domain layer.

Workflows without persistent connections

Stateful MCP papered over multi-step interactions with long-lived sessions. The new spec replaces that with explicit request/response patterns.

input_required for follow-ups

When a server needs confirmation ("Are you sure you want to delete this?") it returns an input_required result. The client resubmits the call with the missing input. No open connection required. No session affinity required.

Tasks for long-running work

Long-running operations graduated from experimental to an official extension. Clients track progress with task/get or subscriptions instead of holding a connection open for minutes.

That's the right shape for agent workloads: kick off work, poll or subscribe, continue.

What this means if you're building MCP servers today

Before After
Sticky sessions / Redis Stateless workers
initialize + session ID Self-contained requests
Protocol-owned session state IDs and state in tool args / your DB
Persistent connection for follow-ups input_required round trips
Experimental task APIs Official task extension

If you're designing a new server, start from the 2026-07-28 model. Don't invent a session store you won't need.

If you're upgrading an existing server:

  1. Remove dependence on Mcp-Session-Id
  2. Make every tool call independently authenticatable and routable
  3. Move any cross-call context into arguments or your own persistence layer
  4. Adopt input_required for confirmation flows
  5. Use the tasks extension for work that takes longer than one HTTP request

Upgrade window

This is a breaking change — and the project treated it like one. There's a 12-month deprecation window for legacy session behavior, and major SDK releases (v2.0) already target the new specification.

Don't wait until the window closes. Stateless MCP is simpler to operate, cheaper to scale, and closer to how production HTTP APIs already work.

Bottom line

MCP stopped pretending to be a long-lived session protocol and became what production systems needed: a stateless, HTTP-friendly interface for tools.

Fewer moving parts. Better scaling. Clearer ownership of state.

If you're planning a migration or production rollout, email us for the free MCP Production Playbook — scalable integration, the 2026-07-28 checklist, and a vendor-ready brief.