Model Context Protocol 官方 TypeScript 单仓于 2026-09-28 发布 v2.2.0:@modelcontextprotocol/client|server|core|server-legacy|codemod 同步到 2.2.0。机器对机器 OAuth Provider 需传入 expectedIssuer,fetchToken() 在鉴权服务器不匹配时抛 AuthorizationServerMismatchError;无 cursor 的 listTools/listPrompts/listResources/listResourceTemplates 会跟随 nextCursor 直至结束(仍受 listMaxPages 上限)。并修复 2.1.0 引入的 CommonJS jose 类型回归与 Client.listen() 未处理拒绝/发送挂起问题。
核心要点速览 (Key Takeaways)
- ✓发版:v2.2.0(2026-09-28);npm
@modelcontextprotocol/[email protected]等五包同版 - ✓OAuth:
ClientCredentialsProvider/PrivateKeyJwtProvider/StaticPrivateKeyJwtProvider/CrossAppAccessProvider需传expectedIssuer(#2887) - ✓列表:
listTools()等无 cursor 调用会自动跟随nextCursor,由listMaxPages封顶(#2886) - ✓稳定性:内联 jose 类型恢复 CJS 工程类型检查(#2883);
Client.listen()不再泄漏未处理拒绝或在 send 未 settle 时挂起(#2642) - ✓安装:
npm i @modelcontextprotocol/[email protected] @modelcontextprotocol/[email protected];规范见 modelcontextprotocol.io
阅读完核心要点?进一步了解模型实力与实际开销
7 大权威镜像天梯跑分与 29+ 款主流编程套餐横向比价测算
相关资源与官方项目出处
免代理直达深度技术解析与实战评估
核心背景与行业痛点
IDE/Agent(Cursor、Claude Code、自建 MCP Host)普遍依赖官方 TypeScript SDK 做工具发现与 OAuth。痛点:多租户本机 OAuth 缺少 issuer 绑定,容易拿错鉴权服务器的 token;listTools 等接口在服务端分页时调用方要手写 cursor 循环;2.1.0 后 CommonJS + jose/DPoP 类型检查回归,以及 Client.listen() 在发送未 settle 时挂起,都会直接打断 agent 会话。
架构亮点与底层机制
v2.2.0 将 client/server/core/server-legacy/codemod 对齐到 2.2.0(node/express/hono/fastify 包版本不变)。构造 ClientCredentialsProvider、PrivateKeyJwtProvider、StaticPrivateKeyJwtProvider、CrossAppAccessProvider 时应传入 expectedIssuer;缺省会告警。fetchToken() 在客户端信息绑定的 authorization server 不匹配时抛 AuthorizationServerMismatchError(#2887)。无 cursor 的 listTools/listPrompts/listResources/listResourceTemplates 会跟随 nextCursor 直到结束,仍受 listMaxPages 限制(#2886)。jose 类型内联进声明文件,恢复 CJS TS 工程;Client.listen() 消化拒绝并避免 send 挂起;.localhost 主机名计入 loopback;createMcpHandler 同实例多请求不再爆栈。
权威 Benchmark 与实测跑分对比
本版未公布吞吐或连接延迟基准。工程验收信号来自 #2883/#2642 等修复 PR。请在自有 MCP Host 验证:OAuth issuer 校验是否阻断错配 token;大工具列表是否一次拿全;CJS 项目 tsc 是否恢复绿灯;长连接 listen 是否还会挂起。勿把「自动翻页」外推为服务端 QPS 提升。
开发者实战落地与开箱指南
升级:npm i @modelcontextprotocol/[email protected] @modelcontextprotocol/[email protected](按需加 core/codemod)。M2M Provider 构造时把 expectedIssuer 设为注册时的 authorization server issuer。调用 listTools() 等可不传 cursor,注意设置合理的 listMaxPages。从 v1 迁 v2 可用仓库内 v1-to-v2 codemod(本版保留文件头注释)。规范与概念见 modelcontextprotocol.io,变更细节见 Release 2.2.0。
讨论与评论
0登录后即可参与深度讨论
与广大 AI 开发者、工程师交流评测心得与前沿洞察