> ## Documentation Index
> Fetch the complete documentation index at: https://mcp-zh.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 版本管理

模型上下文协议（Model Context Protocol）使用基于字符串的版本标识符，遵循 `YYYY-MM-DD` 格式，用于标示最近一次做出向后不兼容变更的日期。

<Info>
  只要变更保持向后兼容，协议在更新时就*不会*递增协议版本。这样既能进行增量改进，又能保持互操作性。
</Info>

## 修订状态（Revisions）

修订可以被标记为：

* **草案（Draft）**：进行中的规范，尚未准备好供使用。
* **当前（Current）**：当前的协议版本，已可供使用，并且可能继续收到向后兼容的变更。
* **最终（Final）**：过去的、已完成的规范，不会再被更改。

**当前**的协议版本是 [**2026-07-28**](/specification/2026-07-28/)。

## 特性状态（Feature States）

规范中的各个特性还可以根据[特性生命周期与弃用策略](/community/feature-lifecycle)被额外标记为 **已弃用（Deprecated）**：该特性仍属于规范的一部分，但已计划被移除。已弃用的特性会记录迁移路径（或声明无需迁移），并且在符合移除条件之前会在规范中至少保留十二个月，或在该策略的[加速移除例外](/community/feature-lifecycle#expedited-removal)下至少保留九十天；此后，它们可能在未来的某个修订中被 **移除（Removed）**。

当前处于已弃用状态的特性列在[已弃用特性登记表](/specification/2026-07-28/deprecated)中。

## 协商（Negotiation）

每个请求都会通过其 [`_meta`](/specification/2026-07-28/basic/index#meta) 字段中的 `io.modelcontextprotocol/protocolVersion` 键声明它所使用的协议版本，服务器会独立地接受或拒绝每个请求。在 Streamable HTTP 上，同一个值还会通过 [`MCP-Protocol-Version` header](/specification/2026-07-28/basic/transports/streamable-http#protocol-version-header) 携带。客户端和服务器**可以**同时支持多个协议版本。

如果服务器不支持所请求的版本，它会以一个 [`UnsupportedProtocolVersionError`](/specification/2026-07-28/basic/versioning#protocol-version-negotiation) 响应，其中列出它所支持的版本。客户端随后可以使用双方都支持的版本重试该请求，或者在不存在这样的版本时向用户呈现一个错误。

想要预先选择版本的客户端可以调用 [`server/discover`](/specification/2026-07-28/server/discover)，这是一个强制性的 RPC，它在单个请求中返回服务器所支持的协议版本、能力和身份标识。调用它是可选的：客户端完全可以直接发送任意请求，并在收到版本错误时进行处理。

若需与实现基于握手的协议修订（`2025-11-25` 及更早版本）的服务器和客户端进行互操作，请参阅[向后兼容](/specification/2026-07-28/basic/versioning#backward-compatibility-with-initialization-based-versions)。
