基础协议
概览
协议修订版:2024-11-05
MCP 客户端与服务器之间的所有消息 必须 遵循 JSON-RPC 2.0 规范。该协议定义了三种基本消息类型:
类型 | 描述 | 要求 |
---|---|---|
请求 | 用于发起操作的消息 | 必须包含唯一 ID 和方法名称 |
响应 | 回复请求的消息 | 必须包含与请求相同的 ID |
通知 | 无需回复的单向消息 | 不得包含 ID |
响应 进一步分为 成功结果 或 错误 两类。结果可以遵循任意 JSON 对象结构,而错误必须至少包含错误代码和消息。
协议层
模型上下文协议由多个关键组件组成,协同工作:
- 基础协议:核心 JSON-RPC 消息类型
- 生命周期管理:连接初始化、能力协商和会话控制
- 服务器功能:服务器暴露的资源、提示和工具
- 客户端功能:客户端提供的采样和根目录列表
- 工具:日志记录和参数补全等跨领域关注点
所有实现 必须 支持基础协议和生命周期管理组件。其他组件 可以 根据应用程序的特定需求选择实现。
这些协议层建立了清晰的关注点分离,同时支持客户端与服务器之间的丰富交互。模块化设计允许实现仅支持所需的功能。
有关不同组件的更多详情,请参阅以下页面:
认证
认证和授权目前不是 MCP 核心规范的一部分,但我们正在考虑未来引入相关机制。欢迎加入 GitHub 讨论,帮助塑造协议的未来!
客户端和服务器 可以 协商其自定义的认证和授权策略。
模式
协议的完整规范以 TypeScript 模式 定义。这是所有协议消息和结构的权威来源。
此外,还有一个 JSON 模式,它从 TypeScript 权威来源自动生成,供各种自动化工具使用。