July MCP spec drops session IDs, mandates new headers
A practitioner who migrated a production remote MCP server documents every breaking change in the July 28th MCP spec revision — including removal of protocol sessions and `Mcp-Session-Id`, mandatory new `mcp-*` headers, changed error codes, and deprecation of sampling, logging, and roots.
Score breakdown
Any production MCP server that stores session-keyed state will break at the July 28th cutover unless state is migrated to explicit tool-argument handles before then.
- 01The July 28th MCP spec is described as the largest revision since MCP launched.
- 02Protocol sessions and the `Mcp-Session-Id` header are removed in the new spec.
- 03New `mcp-*` headers become mandatory.
The July 28th MCP spec release is characterized as the largest revision to the Model Context Protocol since its launch. Author dougwalseth, who runs a production remote MCP server that generates invoice PDFs for agents, wrote this guide after personally migrating through the breaking changes — framing it as the writeup they wished had existed when they started.
The most impactful issue for stateful servers is session-ID-keyed state: any server that stores state under a session ID will break at the cutover.
The breaking changes covered include: removal of protocol sessions and the `Mcp-Session-Id` header, new mandatory `mcp-*` headers, changed error codes, and the deprecation of sampling, logging, and roots. The most impactful issue for stateful servers is session-ID-keyed state: any server that stores state under a session ID will break at the cutover. The prescribed migration path is to move that state into explicit handles passed as tool arguments instead.
The guide provides exact migration steps for each breaking change, all verified against the author's own live deployment. Dougwalseth also offered to answer migration questions directly.
Key facts
- 01The July 28th MCP spec is described as the largest revision since MCP launched.
- 02Protocol sessions and the `Mcp-Session-Id` header are removed in the new spec.
- 03New `mcp-*` headers become mandatory.
- 04Error codes change in the July spec.
- 05Sampling, logging, and roots are deprecated.
- 06Servers that key state on session IDs will break at cutover; the fix is to move state into explicit handles passed as tool arguments.
- 07All migration steps in the guide are verified against a live production deployment.
Topics
Summary and scoring are generated automatically from the original article. We always link back to the publisher and never republish images or paywalled content. Last processed Jun 11, 2026 · 08:34 UTC. How this works →