版本管理

社区译文;来源: MCP 80041ab0

模型上下文协议使用 YYYY-MM-DD 格式的字符串版本标识符,表示最后一次引入向后不兼容变更的日期。

只要变更保持向后兼容,协议更新就_不会_递增协议版本。这样既能逐步改进协议,也能保持互操作性。

版本修订

修订可能会标记为:

  • 草案:仍在编写、尚未准备好投入使用的规范。
  • 当前:已可使用的当前协议版本,后续仍可能接收向后兼容的变更。
  • 最终版:已经定稿且不再变更的历史规范。

当前协议版本为 2026-07-28 。

功能状态

根据功能生命周期和弃用政策 ,规范中的单项功能还可以标记为已弃用:该功能仍属于规范的一部分,但已计划移除。已弃用功能必须说明迁移路径(或明确无需迁移),并在规范中保留至少十二个月;若适用政策中的加速移除例外 ,则至少保留九十天。满足期限后,该功能才有资格在后续修订中标记为已移除。

当前已弃用的功能列在已弃用功能注册表 中。

协商

每个请求都通过其 _meta 字段中的 io.modelcontextprotocol/protocolVersion 键声明所使用的协议版本,服务器则独立接受或拒绝每个请求。使用 Streamable HTTP 时,同一值还会通过 MCP-Protocol-Version 标头 传递。客户端和服务器**可以(MAY)**同时支持多个协议版本。

如果服务器不支持请求的版本,它会返回 UnsupportedProtocolVersionError ,其中列出服务器支持的版本。客户端随后可以使用双方共同支持的版本重试;如果不存在共同版本,则向用户显示错误。

希望预先选择版本的客户端可以调用 server/discover 。这是服务器必须实现的 RPC,可在单个请求中返回服务器支持的协议版本、能力和身份信息。客户端不必先调用它,也可以直接发送任意请求,并在服务器返回版本错误时进行处理。

要与实现基于握手的协议修订版(2025-11-25 及更早版本)的服务器和客户端互操作,请参阅向后兼容性 。