{"slug": "mcp-sdk-betas-are-here-what-to-do-before-july-28", "title": "MCP SDK Betas Are Here: What to Do Before July 28", "summary": "The MCP specification went final on 2026-07-28, and SDK betas for Python, TypeScript, Go, and C# are now available, with Tier 1 stable releases expected in 4–6 weeks. TypeScript faces the most disruptive migration, requiring replacement of the old @modelcontextprotocol/sdk package with new @modelcontextprotocol/server and @modelcontextprotocol/client packages, while Python's migration is simpler with a rename of FastMCP to MCPServer. Deprecated features include Roots, Sampling, and Logging, with a 12-month runway before removal.", "body_md": "The MCP 2026-07-28 specification went final today. The SDK betas for Python, TypeScript, Go, and C# dropped at the same time. If you build or maintain MCP servers, the clock is running: Tier 1 stable releases are expected in 4–6 weeks, and the deprecated features have a 12-month runway before they disappear. Here is what changed in the betas and how to figure out how much work you actually have.\n\nIf you want the spec breakdown — what went stateless, what got cut — we covered that in our [MCP stateless migration post](https://byteiota.com/mcp-goes-stateless-july-2026-breaking-changes/). This post is about what you do next.\n\n## TypeScript: The Most Disruptive Migration\n\nTypeScript has the most disruptive change here, which matters because it is the most widely used MCP SDK. The old `@modelcontextprotocol/sdk`\n\npackage does not update to v2. It gets replaced by two new packages: `@modelcontextprotocol/server`\n\nand `@modelcontextprotocol/client`\n\n. This is not an upgrade — you install new packages and remove the old one.\n\nThe upside: there is no accidental upgrade. You stay on v1 until you explicitly add the beta packages. The downside: every server depending on `@modelcontextprotocol/sdk`\n\nneeds a package change, not just a version bump.\n\n```\nnpm install @modelcontextprotocol/server@beta\n# or for client-side code\nnpm install @modelcontextprotocol/client@beta\n```\n\nA codemod handles the mechanical parts of the migration — import renames, API surface changes. Run it after installing the beta:\n\n```\nnpx @modelcontextprotocol/codemod@beta v1-to-v2 .\n```\n\nThe codemod does not catch behavioral hazards — places where the semantics changed but the code still compiles. Read the [TypeScript SDK migration guide](https://github.com/modelcontextprotocol/typescript-sdk) after running it.\n\n## Python: Mostly a Rename\n\nPython’s story is cleaner. The `mcp 2.0.0b1`\n\nbeta renames `FastMCP`\n\nto `MCPServer`\n\nand replaces the session-centric internals with a dispatcher/runner pipeline built for the stateless protocol. For most servers, that is the scope of the migration.\n\n```\npip install \"mcp[cli]==2.0.0b1\"\n# or with uv\nuv add \"mcp[cli]==2.0.0b1\"\n```\n\nBefore you start rewriting, run a hazard scan:\n\n```\npip install mcp-migration\n```\n\nThe `mcp-migration`\n\ntool inspects your server for migration hazards — including the behavioral ones that automated tools cannot fix. Run it before you touch a line of code. And pin your version explicitly: the v2 API can still shift before stable.\n\n## Go and C#: Pre-Releases Available Now\n\nBoth are available now as pre-releases:\n\n```\n# Go (maintained with Google)\ngo get github.com/modelcontextprotocol/go-sdk@v1.7.0-pre.1\n\n# C# (maintained with Microsoft)\ndotnet add package ModelContextProtocol --prerelease\n```\n\nThe C# SDK is at `2.0.0-preview.1`\n\n. Both are maintained in collaboration with their respective platform owners — Go with Google, C# with Microsoft — which means these are production-track releases, not side experiments.\n\n## What Actually Breaks (Less Than You Think)\n\nThe spec changes sound sweeping: stateless protocol, session IDs gone, initialize handshake removed. For most servers, the actual migration surface is narrower. Three features are deprecated — **Roots**, **Sampling**, and **Logging**. If your server does not use any of them, your migration is mostly infrastructure configuration plus import path updates.\n\nIf you do use them, the replacements are straightforward but require rethinking:\n\n**Roots**→ tool parameters or resource URIs** Sampling**→ call your LLM provider’s API directly** Logging**→`stderr`\n\nfor stdio servers, OpenTelemetry for HTTP servers\n\nThe Sampling deprecation is the one worth pausing on. The feature let servers borrow the client’s model for inference. Replacing it means adding provider credentials and managing a second API dependency. Not hard, but not invisible either.\n\n## Backward Compatibility and the Real Timeline\n\nThe MCP team built backward compatibility carefully. v2 servers respond to legacy 2025-11-25 initialize handshakes alongside the new stateless requests. New clients fall back to the handshake when connecting to old servers. The ecosystem does not break overnight.\n\nBut the timeline still matters:\n\n**Today (July 28):** Spec final, all four SDK betas live — per the[official SDK betas announcement](https://blog.modelcontextprotocol.io/posts/sdk-betas-2026-07-28/)**4–6 weeks:** Tier 1 stable SDK releases expected**12 months:** Deprecated features still work, flagged as obsolete in SDKs**After 12 months:** Roots, Sampling, and Logging in scope for removal\n\nThe 12-month window is generous. The 4–6 week stable release window is not. If you want to stay on the stable channel without a version freeze, migration planning starts now.\n\n## Start with the Scan, Not the Rewrite\n\nThe pattern that wastes the most time here: reading the full migration guide, estimating a large effort, and deprioritizing the work. Run the scan tools first. Most servers built on modern patterns and not using Roots, Sampling, or Logging will find the migration is an afternoon — a package rename, a class rename, a codemod run.\n\nThe full [MCP 2026-07-28 release candidate](https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/) and the [SDK betas announcement](https://blog.modelcontextprotocol.io/posts/sdk-betas-2026-07-28/) are live on the Model Context Protocol blog. Start there, run the scan tools, then decide how much work you actually have.", "url": "https://wpnews.pro/news/mcp-sdk-betas-are-here-what-to-do-before-july-28", "canonical_source": "https://byteiota.com/mcp-sdk-betas-migration-guide-2026-07-28/", "published_at": "2026-07-28 16:11:31+00:00", "updated_at": "2026-07-28 16:23:17.023353+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence"], "entities": ["MCP", "Google", "Microsoft", "TypeScript", "Python", "Go", "C#", "OpenTelemetry"], "alternates": {"html": "https://wpnews.pro/news/mcp-sdk-betas-are-here-what-to-do-before-july-28", "markdown": "https://wpnews.pro/news/mcp-sdk-betas-are-here-what-to-do-before-july-28.md", "text": "https://wpnews.pro/news/mcp-sdk-betas-are-here-what-to-do-before-july-28.txt", "jsonld": "https://wpnews.pro/news/mcp-sdk-betas-are-here-what-to-do-before-july-28.jsonld"}}