NewsAI & DevelopmentDeveloper Tools

MCP SDK Betas Are Here: What to Do Before July 28

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.

If you want the spec breakdown — what went stateless, what got cut — we covered that in our MCP stateless migration post. This post is about what you do next.

TypeScript: The Most Disruptive Migration

TypeScript has the most disruptive change here, which matters because it is the most widely used MCP SDK. The old @modelcontextprotocol/sdk package does not update to v2. It gets replaced by two new packages: @modelcontextprotocol/server and @modelcontextprotocol/client. This is not an upgrade — you install new packages and remove the old one.

The 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 needs a package change, not just a version bump.

npm install @modelcontextprotocol/server@beta
# or for client-side code
npm install @modelcontextprotocol/client@beta

A codemod handles the mechanical parts of the migration — import renames, API surface changes. Run it after installing the beta:

npx @modelcontextprotocol/codemod@beta v1-to-v2 .

The codemod does not catch behavioral hazards — places where the semantics changed but the code still compiles. Read the TypeScript SDK migration guide after running it.

Python: Mostly a Rename

Python’s story is cleaner. The mcp 2.0.0b1 beta renames FastMCP to MCPServer and 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.

pip install "mcp[cli]==2.0.0b1"
# or with uv
uv add "mcp[cli]==2.0.0b1"

Before you start rewriting, run a hazard scan:

pip install mcp-migration

The mcp-migration tool 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.

Go and C#: Pre-Releases Available Now

Both are available now as pre-releases:

# Go (maintained with Google)
go get github.com/modelcontextprotocol/go-sdk@v1.7.0-pre.1

# C# (maintained with Microsoft)
dotnet add package ModelContextProtocol --prerelease

The C# SDK is at 2.0.0-preview.1. 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.

What Actually Breaks (Less Than You Think)

The 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.

If you do use them, the replacements are straightforward but require rethinking:

  • Roots → tool parameters or resource URIs
  • Sampling → call your LLM provider’s API directly
  • Loggingstderr for stdio servers, OpenTelemetry for HTTP servers

The 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.

Backward Compatibility and the Real Timeline

The 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.

But the timeline still matters:

  • Today (July 28): Spec final, all four SDK betas live — per the official SDK betas announcement
  • 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

The 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.

Start with the Scan, Not the Rewrite

The 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.

The full MCP 2026-07-28 release candidate and the SDK betas announcement are live on the Model Context Protocol blog. Start there, run the scan tools, then decide how much work you actually have.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:News