Fetching from the wire…
Public story · 2026-07-31 · high
The July 28 update lets remote servers run behind ordinary load balancers, but it silently renames an error code and removes tasks/list.
Why now: The spec finalized July 28, and this catches the error code and tasks/list changes before most server maintainers read past the sessions headline.
MCP's July 28 spec removed the initialize handshake and protocol-level sessions entirely, per the official changelog. The new spec requires every server to implement server/discover. Each request carries its own protocol version and client capabilities inside a _meta field instead of a handshake struck once at connection time.
Any server that kept state tied to a connection needs a rewrite under the new spec. Cross-call state has to travel as an explicit handle passed inside ordinary tool arguments, not as something the protocol tracks for you. In exchange, stateless servers can sit behind plain round-robin load balancing, which is the point of the redesign.
A mismatched protocol version returns a hard UnsupportedProtocolVersionError under the new spec, instead of failing the handshake quietly. Two other changes won't show up until something breaks. The "resource not found" error moved from the custom code -32002 to the standard JSON-RPC code -32602, and the tasks/list method is gone entirely in the July 28 spec.
If your server checks for -32002 anywhere, or calls tasks/list, that code path is dead on the new spec. Same goes for anything that assumes a session survives between calls, since there's no session left to survive on.
The statelessness pitch is the headline here. The real damage is in two silent renames buried in the changelog: an error code swap and a missing method. Those will break more running servers than the removed handshake ever does. The spec finalized July 28, and this catches those two changes before most server maintainers read past the sessions headline.
Each link below shares sources, entities, or timing with this story.
MCP deprecates Roots / Shared entity: MCP / Same source / Shared topic / Earlier coverage
Linked by a graph relationship (MCP deprecates Roots); both cover MCP; cite the same source (The finalized spec).
Microsoft supports MCP / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Microsoft supports MCP); both cover MCP, Servers; overlapping topics (code, server).
MCP deprecates Roots / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (MCP deprecates Roots); both cover MCP, Servers; overlapping topics (client, server, state).
Microsoft supports MCP / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Microsoft supports MCP); both cover MCP, Servers; overlapping topics (behind, client, server).
Google released MCP / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Google released MCP); both cover Each, MCP; overlapping topics (each, server).
Claude uses MCP / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Claude uses MCP); both cover Each, MCP; overlapping topics (code, each).
Claude uses MCP / Shared entity: MCP / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Claude uses MCP); both cover MCP; overlapping topics (code, each, server).
Claude Code uses MCP / Shared entity: MCP / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Claude Code uses MCP); both cover MCP; overlapping topics (capability, code, server).