MCP goes stateless today: the spec's biggest break since launch

Sessions vanish, so any request hits any server — but Tasks, OAuth 2.1 and your Roots/Sampling/Logging code all change with it. Here's what breaks.

Nowline JUL 28 5:00 AM banner

Top AI stories from the last hour

Top AI stories from the last hour

Copy markdown

  • Sessions are gone — and so is sticky routing

    The initialize/initialized handshake and the Mcp-Session-Id header are eliminated, so any request can land on any server instance. Move per-conversation state — caches, workflow progress, config — into explicit handles passed as tool arguments; the payoff is running behind a plain round-robin load balancer with no shared session store or gateway deep-packet inspection.

  • Tasks rebuilt for long-running work

    tasks/list is removed (no session left to scope it to), and tools/call now returns server-issued task handles you drive via tasks/get, tasks/update and tasks/cancel. Any client UI that enumerates running tasks loses its data source and needs rewiring.

  • MCP Apps: ship UI, not just text

    Extensions are first-class now, negotiated through an extensions map with reverse-DNS IDs. The official MCP Apps extension lets a server return sandboxed-iframe UI templates — declared with cacheable ttlMs on tools/list so clients prefetch and security-review them — so a tool can hand back an interactive panel instead of plain text. A real weekend build.

  • OAuth 2.1 now mandatory for remote servers

    Six SEPs bring remote MCP servers in line with OAuth 2.1: RFC 9728 protected-resource metadata (a .well-known/oauth-protected-resource endpoint), RFC 8707 resource-bound tokens, and RFC 9207 issuer (iss) verification. If you host a remote server, budget time to wire this up.

  • Roots, Sampling and Logging deprecated

    All three still work — annotation-only for now, with a minimum 12-month grace period — but plan the swaps: Roots to tool params plus Resource URIs, Sampling to direct LLM API calls from your server, and Logging to stderr or OpenTelemetry.

  • Breaking changes now; SDKs get ~10 weeks

    Locked as a release candidate on May 21 and finalized today, the spec ships breaking changes immediately, with Tier-1 SDK support expected inside a 10-week validation window. Small but real: the missing-resource error code moves from -32002 to -32602, so update your error handling.