Skip to main content
协议修订版本: 2024-11-05
MCP 客户端与服务器之间的所有消息 必须 遵循 JSON-RPC 2.0 规范。该协议定义了三种基本类型的消息:
类型描述要求
请求(Requests)用于发起操作的消息必须包含唯一 ID 和方法名
响应(Responses)用于回复请求的消息必须包含与请求相同的 ID
通知(Notifications)无需回复的单向消息不得包含 ID
响应(Responses) 还可以进一步分为 成功结果错误。结果可以采用任意 JSON 对象结构,而错误至少必须包含错误码和错误信息。

协议层级

Model Context 协议由多个协同工作的关键组件组成:
  • 基础协议(Base Protocol):核心的 JSON-RPC 消息类型
  • 生命周期管理(Lifecycle Management):连接初始化、能力协商和会话控制
  • 服务器特性(Server Features):服务器暴露的资源、提示和工具
  • 客户端特性(Client Features):客户端提供的采样和根目录列表
  • 工具类功能(Utilities):跨领域功能,如日志记录和参数补全
所有实现 必须 支持基础协议和生命周期管理组件。其他组件可以根据应用程序的具体需求选择性实现。 这些协议层级在建立清晰的关注点分离的同时,支持客户端与服务器之间的丰富交互。模块化设计使得实现可以根据需要精确支持所需的功能。 有关各个组件的更多细节,请参阅以下页面:

生命周期

资源

提示

工具

日志

采样

认证

身份验证和授权目前不属于 MCP 核心规范的一部分,但我们正在考虑未来引入的方式。欢迎加入 GitHub 讨论 共同塑造协议的未来! 客户端和服务器 可以 协商自定义的身份验证和授权策略。

协议 Schema

协议的完整规范以 TypeScript schema 的形式定义,这是所有协议消息和结构的权威来源。 此外还提供了 JSON Schema,它由 TypeScript 的权威源文件自动生成,可用于各种自动化工具。