Model Context Protocol 官方 TypeScript SDK 于 2026-09-23 发布 `@modelcontextprotocol/[email protected]`(npm)。主变更:为 tools/resources/resource templates/prompts 增加请求时 `scopeChallenge` 回调,可按解析后的请求与已校验 AuthInfo 返回精确 scope 集合并回 `insufficient_scope`;`createMcpHandler` 与 Streamable HTTP 在 handler/SSE 前以 HTTP 403 挑战。补丁还包括默认 **4 MiB** 请求体上限与 JSON-RPC batch≤100、将合法请求 id `0` 视为有效、停止对 `initialize` 发 `notifications/cancelled`,以及 tasks 路径补齐 `Mcp-Name` 头校验。面向把 MCP 挂到 OAuth 资源服务器的 Agent 网关,这是权限面与 DoS 硬化的一次小版本。
核心要点速览 (Key Takeaways)
- ✓发版:@modelcontextprotocol/[email protected] / npm 2.1.0
- ✓鉴权:#1624 增加 `scopeChallenge` + `requireScopes`;403 + `WWW-Authenticate` / `insufficient_scope`,规范见 Authorization
- ✓加固:默认 `maxRequestBodySize=4MiB`(413)、batch≤100;修复请求 id `0` 被当成缺省导致 cancel/debounce 失效
- ✓协议:不再对 `initialize` 发 `notifications/cancelled`;现代 tasks 路径校验 `Mcp-Name` 与 `params.taskId`
- ✓文档:MCP Architecture / TypeScript SDK 仓库;`npm i @modelcontextprotocol/[email protected]`
相关资源与官方项目出处
免代理直达深度技术解析与实战评估
核心背景与行业痛点
把 MCP 服务挂到企业 OAuth 资源服务器时,仅靠连接级 bearer 校验往往过粗:同一连接上不同 tool/resource 需要不同 scope,却缺少「按请求挑战精确 scope」的一等钩子。另一方面,Streamable HTTP / createMcpHandler 若无限制地读 body,易被超大 JSON 或超长 batch 打满内存;历史实现把 JSON-RPC id 0 当 falsy,导致首个 sampling/createMessage 的 cancel 与 debounce 静默失效。Agent 网关与 IDE 侧 MCP 宿主都需要一次「权限细粒度 + DoS 边界」对齐。
架构亮点与底层机制
@modelcontextprotocol/[email protected] 经 #1624 为 tools/resources/resource templates/prompts 增加 scopeChallenge(request, authInfo):可继续放行或返回精确 scope 集以触发 insufficient_scope;requireScopes 提供静态 all-of 辅助。createMcpHandler 与 Streamable HTTP 在 handler/SSE 之前回 HTTP 403,WWW-Authenticate 与 bearer 401/403 共用格式化器,并从 AuthInfo.resourceMetadataUrl(或 RFC 8707 resource 的 well-known)填充 resource_metadata。读 body 默认封顶 4 MiB(maxRequestBodySize / DEFAULT_MAX_REQUEST_BODY_SIZE),超限 413;batch 数组 >100 回 400/-32600。另:id 0 视为有效;禁止对 initialize 发 cancel 通知;现代 tasks 路径交叉校验 Mcp-Name 与 params.taskId。
权威 Benchmark 与实测跑分对比
本发行为协议/SDK 安全与正确性升级,没有公开延迟或吞吐榜单数字。可量化验收:未授权 scope 是否稳定收到 403/insufficient_scope;>4 MiB body 是否 413;id=0 的 cancel 是否中止 in-flight handler;initialize 超时是否不再误发 cancel。规范对照见 Authorization 与 Architecture。
开发者实战落地与开箱指南
npm i @modelcontextprotocol/[email protected](包页:npm 2.1.0)。在注册 tool/resource 时挂 scopeChallenge 或 requireScopes;按部署调大/调小 maxRequestBodySize。手写 tasks 客户端需补 Mcp-Name。仓库与发行说明:typescript-sdk、Release。旧线 @modelcontextprotocol/[email protected] 同日带回部分 body limit backport,新旧包勿混用 API 假设。
讨论与评论
0登录后即可参与深度讨论
与广大 AI 开发者、工程师交流评测心得与前沿洞察