{"slug": "mcp-just-killed-the-handshake-your-server-is-next", "title": "MCP Just Killed the Handshake (Your Server Is Next)", "summary": "Anthropic's Model Context Protocol (MCP) is finalizing its specification on July 28, dropping the initialize handshake and session IDs to eliminate sticky routing and shared state stores, making MCP behave like ordinary web services. The update deprecates Roots, Sampling, and Logging with a 12-month migration window, mandates OAuth 2.1, and introduces a Tasks extension to replace the Tasks API. The Temrel team released an open-source tool, mcp-spec-audit, to help developers scan repositories and generate migration checklists.", "body_md": "*Originally published in Temrel, a weekly newsletter on agentic engineering.*\n\nYou have built an MCP server the right way: handshakes, and perhaps even sampling. On Monday 28 July, the spec finalises and a great deal of \"the right way\" becomes legacy. It is not going to blow up, but the clock starts.\n\nThe Model Context Protocol (MCP) is an open standard from Anthropic (late 2024) that defines how AI apps connect to external tools and data. It runs on local stdio or, more commonly, streamable HTTP for remote tools. Three roles: the host (the app, e.g. Claude Code or Cursor), the client (runs inside the host, manages the connection), and the server (wraps a tool's capability, e.g. GitHub or Postgres).\n\nServers expose three primitives: Tools (functions, JSON inputs), Resources (data indexed by URI), and Prompts (e.g. slash commands). Client-side primitives let the server ask the client for something: Sampling (LLM completions client-side), Roots (which directories are in scope), and Elicitation (asking for more information mid-operation). Two of these are on death row.\n\nUntil now, client and server did an initialize handshake, with remote servers issuing an Mcp-Session-Id header for all subsequent requests in the session.\n\nWe are dropping initialize and Mcp-Session-Id, so at scale we no longer manage sticky routes and a shared state store. A connection is no longer married to a server instance. Requests route on an Mcp-Method header and can land on any instance behind a load balancer. In essence, MCP just became like any other ordinary web service.\n\nSessions used to force stickiness, shared data stores, and gateway packet inspection. Those are gone. They were an infrastructure tax for state that did not add anything meaningful. State is debt. There is a parallel with context engineering: redundant tokens are liabilities, not assets. Protocol state was too. Ironically, some of the statefulness is being pushed back to the model, which now stores the chain of calls instead of the server. That is the superior approach, because the model is driving the bus.\n\nThe hard break is the Tasks API, replaced by the Tasks extension: task calls migrate to tasks/get, tasks/update, and tasks/cancel. Deprecated, but with a 12-month runway, are Roots (use tool params/config instead), Sampling (the MCP reaches directly to your model's API), and Logging (stderr or OpenTelemetry). Auth is hardening: OAuth 2.1 is now mandatory. Minor SDK updates: Python renames FastMCP to MCPServer, TypeScript goes ESM-only, and Go and C# appear in preview.\n\nOr use the tool we are releasing today: [mcp-spec-audit](https://github.com/Temrel/temrel-agentic-toolkit/tree/main/tools/mcp-spec-audit). It scans your repo for landmines related to the update and gives you a migration checklist. Run it in the CLI, or adopt it as a Claude Code skill; the skill is the fastest route, because Claude will follow up the output and offer to complete the fixes.\n\nProtocols mature the way codebases do: by deleting. MCP shedding state is it becoming boring infrastructure, and boring is what wins. Keep asking: how can I further shed state, or pass it to more useful locations?\n\n*Subscribe to Temrel for weekly agentic engineering field notes.*", "url": "https://wpnews.pro/news/mcp-just-killed-the-handshake-your-server-is-next", "canonical_source": "https://dev.to/temrel/mcp-just-killed-the-handshake-your-server-is-next-47gj", "published_at": "2026-07-23 10:20:52+00:00", "updated_at": "2026-07-23 10:31:41.093404+00:00", "lang": "en", "topics": ["ai-infrastructure", "developer-tools", "ai-agents"], "entities": ["Anthropic", "MCP", "Claude Code", "Cursor", "Temrel", "mcp-spec-audit", "GitHub", "Postgres"], "alternates": {"html": "https://wpnews.pro/news/mcp-just-killed-the-handshake-your-server-is-next", "markdown": "https://wpnews.pro/news/mcp-just-killed-the-handshake-your-server-is-next.md", "text": "https://wpnews.pro/news/mcp-just-killed-the-handshake-your-server-is-next.txt", "jsonld": "https://wpnews.pro/news/mcp-just-killed-the-handshake-your-server-is-next.jsonld"}}