基础协议
ℹ️
协议版本: 草案
MCP 客户端和服务器之间的所有消息必须遵循 JSON-RPC 2.0 规范。协议定义了 三种基本类型的消息:
类型 | 描述 | 要求 |
---|---|---|
请求 | 发送以启动操作的消息 | 必须包括唯一ID和方法名 |
响应 | 作为请求回复发送的消息 | 必须包括与请求相同的ID |
通知 | 无需回复的单向消息 | 不得包括ID |
响应进一步分为成功结果或错误。 结果可以遵循任何 JSON 对象结构,而错误至少必须包括错误代码和消息。
协议层
模型上下文协议由几个协同工作的关键组件组成:
- 基础协议:核心 JSON-RPC 消息类型
- 生命周期管理:连接初始化、能力协商和会话控制
- 服务器功能:服务器公开的资源、提示和工具
- 客户端功能:客户端提供的采样和根目录列表
- 实用工具:日志记录和参数完成等横切关注点
所有实现必须支持基础协议和生命周期管理组件。其他组件可以根据应用程序的特定需求实现。
这些协议层在确立明确关注点分离的同时,支持客户端和服务器之间的丰富交互。模块化设计允许实现精确支持所需的功能。
有关不同组件的更多详细信息,请参阅以下页面:
认证
MCP 为 HTTP+SSE 传输提供了授权 框架。使用 HTTP+SSE 传输的实现应该遵循此规范,而使用 STDIO 传输的实现不应该 遵循此规范,而应从环境中检索凭据。
此外,客户端和服务器可以协商自己的自定义身份验证和授权策略。
要进一步讨论和贡献 MCP 认证机制的演变,请加入我们的 GitHub 讨论 帮助塑造协议的未来!
架构
协议的完整规范定义为 TypeScript 架构。 这是所有协议消息和结构的真实来源。
还有一个 JSON 架构, 它是从 TypeScript 真实源自动生成的,用于各种自动化工具。