YYYY-MM-DD 格式,用于表示最后一次进行了向后不兼容更改的日期。
只要更新后的协议保持向后兼容,协议版本就 不会 随着
协议更新而递增。这使得可以在保持互操作性的同时进行渐进式改进。
修订
修订可能被标记为:- 草案:进行中的规范,尚未准备好供使用。
- 当前:当前的协议版本,已准备好使用,并且可能继续 接收向后兼容的更改。
- 最终:已过去、完整且不会再更改的规范。
特性状态
规范中的单个特性还可以根据 特性生命周期和弃用政策被标记为 已弃用:该特性仍然是规范的一部分,但计划移除。 已弃用的特性会记录迁移路径(或说明不需要迁移),并且会在规范中至少保留十二个月;或者在该政策的 加速移除例外 下至少保留九十天,然后才有资格被移除,之后它们可能会在未来的修订版中被移除。 当前已弃用的特性列在 已弃用特性注册表中。协商
每个请求都会通过其_meta 字段中的
io.modelcontextprotocol/protocolVersion 键声明其所使用的协议版本,服务器会对每个请求分别接受或
拒绝。在 Streamable HTTP 中,相同的值也会携带在
MCP-Protocol-Version 标头中。
客户端和服务器可以同时支持多个协议版本。
如果服务器不支持所请求的版本,它会返回一个
UnsupportedProtocolVersionError,
其中列出它支持的版本。然后客户端可以用双方都支持的版本重试该请求,或者如果不存在共同支持的版本,则向用户显示错误。
希望预先选择版本的客户端可以调用
server/discover,这是一个必需的 RPC,
它会在单个请求中返回服务器支持的协议版本、能力和身份。调用它是可选的:客户端完全可以直接发送任意请求,
并在出现版本错误时进行处理。
如需与实现了基于握手的协议修订版(2025-11-25 及更早版本)的服务器和客户端实现互操作,请参见
向后兼容性。