MCPNews

The Model Context Protocol ecosystem, verified

Current spec 2026-07-28

MCP TypeScript SDK 2.0.0 splits into nine scoped npm packages and fixes a connect failure against modern-only servers

The TypeScript SDK republished itself as a family of separately versioned scoped packages, moving schema sources into a shared core and separating client, server, and framework adapters. The same release corrected a wire-shape mismatch that had caused hard connect failures against servers implementing only the 2026-07-28 revision.

The MCP TypeScript SDK's 2.0.0 release, published July 27, replaces the single @modelcontextprotocol/sdk package with nine separately versioned scoped packages: @modelcontextprotocol/core, @modelcontextprotocol/client, @modelcontextprotocol/server, @modelcontextprotocol/server-legacy, @modelcontextprotocol/node, @modelcontextprotocol/express, @modelcontextprotocol/fastify, @modelcontextprotocol/hono, and @modelcontextprotocol/codemod. Spec schemas, OAuth schemas, and protocol constants moved into core as a runtime dependency shared by the rest of the family (PR #2477), and a codemod package plus two migration guides ship alongside.

The release also corrected a wire-shape mismatch against the final 2026-07-28 revision. Per spec PR #3002, serverInfo moves from the DiscoverResult body into the result _meta, and the per-request envelope's clientInfo demotes from required to SHOULD. Before the fix (PR #2513), the client hard-rejected a conforming server's DiscoverResult, misclassified the server as legacy, and attempted an initialize handshake, which the release notes describe as a hard connect failure against a modern-only server such as go-sdk v1.7.0-pre.3. A new public constant SERVER_INFO_META_KEY carries the value io.modelcontextprotocol/serverInfo.

Compatibility work moved in both directions: PR #2456 restored v1 parse tolerance so a legacy-era tools/call result without content defaults to an empty array while 2026-era wire schemas stay strict, and PR #2405 added CommonJS builds alongside ESM. The two type-level breaks are the removed serverInfo property on DiscoverResult and clientInfo becoming optional on RequestMetaEnvelope.

A separate legacy-line release, 1.30.0, was published hours before the 2.0.0 set with CI, test, Content-Type validation, and SSE keep-alive changes and no revision claim, so 1.x consumers have a maintained line that does not move to the new wire.

Related spec revisions

How was this verified, and what are the sources?

Published · last verified · confidence 0.95.

  1. GitHub release page for @modelcontextprotocol/core@2.0.0 - body lists PRs #2477 (schemas into core), #2513 (2026-07-28 wire alignment per spec PR #3002), #2456 (v1 parse tolerance), and #2405 (CommonJS builds), the SERVER_INFO_META_KEY constant, the description of a hard connect failure against a modern-only server such as go-sdk v1.7.0-pre.3, and the two type-level breaks - accessed
  2. GitHub releases list for modelcontextprotocol/typescript-sdk - shows the nine 2.0.0 scoped-package tags published 2026-07-27 (core, client, server, server-legacy, node, express, fastify, hono, codemod) and the separate legacy-line 1.30.0 tag the same day - accessed

← All news