@modelcontextprotocol/express@2.0.2
MCP TypeScript SDK 发布 @modelcontextprotocol/express@2.0.2 补丁版本。该版本中 requireBearerAuth 与 verifyBearerToken 新增可选参数 expectedResource,用于只接受面向本资源签发的令牌(即令牌的 audience)。设置后,仅当验证器在 AuthInfo.resource 中报告相同值时才接受令牌,比较按字符串进行,忽略 fragment 和一个结尾斜杠;不匹配或缺失时返回 401 invalid_token 及常规 WWW-Authenticate 挑战。未设置该参数时行为不变。该选项声明在新的导出类型 VerifyBearerTokenOptions 上,其继承 BearerAuthOptions,后者本身未变。Express 的 requireBearerAuth 会透传该选项,因此需同时升级 @modelcontextprotocol/express 至本版本,2.0.1 不会透传该选项。
Development
- First Report@modelcontextprotocol/express@2.0.2MCP TypeScript SDK Releases
- Current AssessmentMCP 生态在鉴权层面补齐资源绑定,属于协议实现成熟化的信号,可能推动更多 MCP 服务端采用 audience 校验。判断基于该补丁由官方 SDK 仓库发布这一事实。可验证下一信号:其他语言 SDK 或主流 MCP 服务端是否跟进同类参数,以及是否出现关于令牌 audience 配置的公开迁移指南。Agent Pulse · analysis
MCP TypeScript SDK 的 Express 集成包发布 2.0.2 补丁,为 requireBearerAuth 和 verifyBearerToken 增加可选参数 expectedResource,使服务端可以只接受 audience 指向自身的令牌。设置后,验证器需在 AuthInfo.resource 中报告相同值,比较为字符串比较并忽略 fragment 与一个结尾斜杠;不匹配或缺失则返回 401 invalid_token。未设置时行为不变。该选项定义在新导出类型 VerifyBearerTokenOptions 上,继承自未改动的 BearerAuthOptions。使用 Express 时需同步升级 @modelcontextprotocol/express 至 2.0.2,因为 2.0.1 不透传该选项,其选项类型也不含该字段。
这是对 MCP 服务端令牌校验粒度的收紧:把 audience 校验从可选实践变成框架内建能力,减少跨资源令牌复用。判断依据是证据明确描述了 expectedResource 的比较规则与 401 行为。可验证下一信号:SDK 是否在后续版本把 expectedResource 设为默认或推荐配置,以及是否有配套文档说明 aud 声明与 AuthInfo.resource 的映射示例。
MCP 生态在鉴权层面补齐资源绑定,属于协议实现成熟化的信号,可能推动更多 MCP 服务端采用 audience 校验。判断基于该补丁由官方 SDK 仓库发布这一事实。可验证下一信号:其他语言 SDK 或主流 MCP 服务端是否跟进同类参数,以及是否出现关于令牌 audience 配置的公开迁移指南。
对运行 MCP 服务端的团队,升级到 2.0.2 并配置 expectedResource 可降低令牌被用于非目标资源的风险,代价是需要确认授权服务器写入的 aud 值与服务端 URL 一致。可验证下一信号:升级后 401 invalid_token 比例变化,以及授权服务器 aud 配置是否需同步调整。
若该选项被广泛采用,MCP 服务端的令牌误用面会收窄,但升级节奏取决于 Express 集成包的同步更新。可验证下一信号:后续发布说明中是否出现默认启用或弃用旧行为的计划。