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

# 规范

<div id="enable-section-numbers" />

[Model Context Protocol](https://modelcontextprotocol.io) (MCP) 是一种开放协议，支持 LLM 应用与外部数据源和工具无缝集成。无论你是在构建 AI 驱动的 IDE、增强聊天界面，还是创建自定义 AI 工作流，MCP 都提供了一种标准化方式，将 LLM 连接到它们所需的上下文。

本规范基于 [schema.ts](https://github.com/modelcontextprotocol/specification/blob/main/schema/2025-11-25/schema.ts) 中的 TypeScript schema，定义权威的协议要求。

如需实现指南和示例，请访问 [modelcontextprotocol.io](https://modelcontextprotocol.io)。

本文档中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD
NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", 和 "OPTIONAL" 在且仅在以全大写形式出现时，应按 [BCP 14](https://datatracker.ietf.org/doc/html/bcp14)
\[[RFC2119](https://datatracker.ietf.org/doc/html/rfc2119)]
\[[RFC8174](https://datatracker.ietf.org/doc/html/rfc8174)] 中的说明解释，如此处所示。

## 概览

MCP 为应用提供一种标准化方式，用于：

* 与语言模型共享上下文信息
* 向 AI 系统公开工具和能力
* 构建可组合的集成与工作流

该协议使用 [JSON-RPC](https://www.jsonrpc.org/) 2.0 消息在以下实体之间建立通信：

* **Host**：发起连接的 LLM 应用
* **客户端**：Host 应用内的连接器
* **服务器**：提供上下文和能力的服务

MCP 从 [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 中汲取了一些灵感。LSP 标准化了如何在整个开发工具生态中添加对编程语言的支持。类似地，MCP 标准化了如何将额外上下文和工具集成到 AI 应用生态中。

## 关键细节

### 基础协议

* [JSON-RPC](https://www.jsonrpc.org/) 消息格式
* 有状态连接
* 服务器和客户端能力协商

### 功能

服务器向客户端提供以下任意功能：

* **资源**：供用户或 AI 模型使用的上下文和数据
* **提示**：面向用户的模板化消息和工作流
* **工具**：供 AI 模型执行的函数

客户端可以向服务器提供以下功能：

* **采样**：由服务器发起的代理式行为和递归 LLM 交互
* **根目录**：由服务器发起、用于查询可操作 URI 或文件系统边界的请求
* **引出**：由服务器发起、向用户请求更多信息的请求

### 其他实用机制

* 配置
* 进度跟踪
* 取消
* 错误报告
* 日志记录

## 安全与信任保障

Model Context Protocol 通过任意数据访问和代码执行路径启用强大的能力。这种能力也带来了重要的安全与信任考量，所有实现者都必须谨慎处理。

### 关键原则

1. **用户同意与控制**
   * 用户必须明确同意并理解所有数据访问和操作
   * 用户必须保留对共享哪些数据以及执行哪些操作的控制权
   * 实现者应提供清晰的 UI，用于审查和授权活动

2. **数据隐私**
   * Host 在向服务器公开用户数据前必须获得用户明确同意
   * 未经用户同意，Host 不得将资源数据传输到其他位置
   * 应使用适当的访问控制保护用户数据

3. **工具安全**
   * 工具代表任意代码执行，必须以适当的谨慎态度对待。
     * 特别是，除非来自受信任服务器，否则工具行为描述（例如 annotations）应视为不可信。
   * Host 在调用任何工具前必须获得用户明确同意
   * 用户在授权使用工具前应理解每个工具的作用

4. **LLM 采样控制**
   * 用户必须明确批准任何 LLM 采样请求
   * 用户应控制：
     * 是否进行采样
     * 实际将发送的提示
     * 服务器可见的结果
   * 协议有意限制服务器对提示的可见性

### 实现指南

虽然 MCP 本身无法在协议层强制执行这些安全原则，但实现者 **SHOULD**：

1. 在应用中构建稳健的同意与授权流程
2. 提供清晰的安全影响说明文档
3. 实现适当的访问控制和数据保护
4. 在集成中遵循安全最佳实践
5. 在功能设计中考虑隐私影响

## 了解更多

探索各协议组件的详细规范：

<CardGroup cols={5}>
  <Card title="架构" icon="sitemap" href="/specification/2025-11-25/architecture" />

  <Card title="基础协议" icon="code" href="/specification/2025-11-25/basic" />

  <Card title="服务器功能" icon="server" href="/specification/2025-11-25/server" />

  <Card title="客户端功能" icon="user" href="/specification/2025-11-25/client" />

  <Card title="参与贡献" icon="pencil" href="/community/contributing" />
</CardGroup>
