来源:互联网 更新时间:2026-07-28 07:32
MCP v2 的发布,可以说是这套协议生态里一次真正意义上的架构级大改。不光是版本号从 1 跳到 2,连底层的包结构、协议层能力、API 设计都做了大幅调整。当前处于 2.0.0-beta.2 预发布阶段,配合的是全新 2026-07-28 协议规范,计划在 2026-07-28 正式稳定发布。整体来看,这次升级覆盖了包结构重构、协议能力升级、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 自动化迁移脚本如果你之前是这么装的:
# v1
npm install @modelcontextprotocol/sdk
现在得改成按角色来装:
# v2 服务端
npm install @modelcontextprotocol/server @modelcontextprotocol/express
# v2 客户端
npm install @modelcontextprotocol/client
beta.2 版本新增了双构建输出,这个改动主要解决了 Node.js 项目中 CJS 导入报错的老问题。具体来说:
.mjs + .d.mts)和 CJS(.cjs + .d.cts)两种格式。package.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, private。服务端可以全局配置,也可以针对单个资源设置缓存策略,灵活性不错。
按协议版本分离了 WireCodec,新旧协议的字段可以隔离处理。比如 resultType 这个字段只存在于 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,内置了日志、进度上报、请求取消、用户输入询问(elicitation)等能力。还可以通过 ctx.mcpReq.requestState 读取原始协议信封和多轮交互状态,比 v1 那个模糊的 extra 参数清晰太多了。
v1 强制内置 Zod,v2 完全解耦了。现在支持 Zod v4、ArkType、Valibot(搭配 @valibot/to-json-schema),甚至可以直接传入原生 JSON Schema,完全不需要第三方库。内部虽然仍使用 Zod,但对外 API 不再有 Zod 依赖。
v1 的 .tool() 改成了 .registerTool(),资源、提示词也统一成了 registerXXX 风格,命名更规范了。
资源不存在统一返回 -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,便于日志监控。摩托车活塞环性能如何
ThinkBook系列最新价格全解析:2026年选购避坑与实时询价指南
GPT5.6惨遭切脑,Fable 5回归要变弱鸡版?
Ondo将于今日上线股票永续合约
电视剧《罗曼诺夫后裔》剧情介绍
暗黑4S14野蛮人终局BD攻略
区块链OTC交易所有哪几家比较正规?
什么是山寨币?山寨币指数如何查看?全球前10大山寨币盘点
Binance新增15种bStocks代币化证券为杠杆抵押资产
全球十大加密货币APP v3.11.5正版下载
GLM-4.5发布,全网最全测评和使用教程来了!
洛的网名三字男生霸气(精选100个)
本周比特币行情预判:BTC后市的三种推演与两强对决
剑侠世界3雪峰论剑怎么打-剑侠世界3雪峰论剑打法介绍
Meme币DOGS今晚上线!开局就解锁91%代币是否带来风险?
五千元以下的笔记本几乎消失!经销商:至少一年看不到涨价尽头
姓徐和李取网名男生霸气(精选100个)
25年来最惨单月 微软市值本月重挫近4万亿:押注AI也没赢麻
超长高标准质保+总部直保售后体系:小牛真实售后体验大起底
比特币守住关键支撑,HYPE市值升至第九并反超DOGE
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc