MCP v2 是一次架构级大改版,配套全新 2026-07-28 MCP 协议规范,计划 2026-07-28 正式稳定发布,当前处于 2.0.0-beta.2 预发布阶段;整体分为包结构重构、协议能力升级、API 重构、构建/运行时、破坏性变更、迁移工具六大模块,同时兼容旧版 2025 协议客户端。

v1 的单一包 @modelcontextprotocol/sdk 已被废弃并拆成独立的模块化包,可按需安装并缩小体积:
@modelcontextprotocol/client:只包含客户端实现@modelcontextprotocol/server:只包含服务端实现@modelcontextprotocol/core:底层编解码、协议类型和通用 Schema@modelcontextprotocol/express / @modelcontextprotocol/fastify:适配 Web 框架@modelcontextprotocol/node:原生 Node http 兼容层@modelcontextprotocol/server-legacy:兼容旧版 OAuth 的服务@modelcontextprotocol/codemod:v1→v2 自动化迁移脚本# v1npm install @modelcontextprotocol/sdk# v2 服务端npm install @modelcontextprotocol/server @modelcontextprotocol/express# v2 客户端npm install @modelcontextprotocol/client
beta.2 新增双构建输出,解决 Node CJS 项目导入报错问题:
.mjs + 类型声明 .d.mts.cjs + 类型声明 .d.ctspackage.json exports 配置 require 条件,require() 能够正常加载core 从 .js 调整为 .mjs,外部仍沿用原导入路径单个服务能够处理两代协议的请求:v2 在原生支持新版协议的同时,也接收 2025 旧协议客户端。
Mcp-Method / Mcp-Name 请求头,路由可以先完成,不必解析 body无需阻塞长连接,工具在执行期间也能向用户询问输入:
InputRequiredResult 暂停执行并等待用户输入requestState 密封存储:HMAC-SHA256 签名工具已经内置 createRequestStateCodec,篡改由 TTL 防范tools/list/resources/read 等接口将自动携带 ttlMs、cacheScope 缓存字段,默认 ttlMs:0, privateresultType 上层业务类型会隐藏该字段,它只出现在 2026 协议 wire 层-32601 方法不存在错误默认使用 Ajv2020 校验,严格支持 $defs/prefixItems/unevaluatedProperties;旧 Draft-07 可手动降级配置。
createMcpHandler() 以 Web 标准形式返回 { fetch, close, notify, bus },Node/Bun/Deno/Workers 均获原生支持.node(req, res) 接口,在 Node 环境中经由 toNodeHandler 执行适配转换serveStdio() stdio 服务只需一行即可启动ctx(替代 v1 模糊 extra 参数)强类型会传给全部工具/资源处理器 ctx,其中内置以下能力:
ctx.mcpReq.requestState<T>()v2 实现彻底解耦,改变了 v1 强制内置 Zod 的做法:
@valibot/to-json-schema).tool() → v2 .registerTool()registerXXX 风格 API-32602 Invalid Params,并兼容新旧协议ResourceNotFoundError,同时携带 uri 元数据CallToolResult.content 不再自动使用空数组,字段缺失会直接抛出 -32602 校验错误;v1 的处理则是静默补上空数组。structuredContent 根类型可以不是对象;为了让旧客户端继续兼容,服务端会自动补上文本序列化内容。@deprecated。_meta 自定义处理器现在能够读取请求元数据,不会再被自动删除;过滤范围只包括协议保留字段。官方推出一键迁移脚本,可处理绝大部分机械性修改:
npx @modelcontextprotocol/codemod@beta v1-to-v2 .
@modelcontextprotocol/sdk → server/client/core).tool() → registerTool()server-legacy 包承担 OAuth 旧兼容逻辑,并支持 RFC9207 iss 颁发者校验onerror,以便进行日志监控