MCP 客户端与服务器之间的所有消息 必须 遵循
JSON-RPC 2.0 规范。该协议定义了
三种基本类型的消息:
| 类型 | 描述 | 需求 |
|---|
请求 | 发送以启动操作的消息 | 必须包含唯一ID和方法名称 |
响应 | 消息回复请求时发送 | 必须包含与请求相同的ID |
通知 | 不包含回复的单向消息 | 不得包含ID |
响应进一步细分为成功的结果或错误。
结果可以是任意JSON对象结构,而错误必须至少包含错误代码和消息。
协议层
Model Context Protocol 由以下几个关键组件协同工作:
- 基础协议:核心JSON-RPC消息类型
- 生命周期管理: 连接初始化、能力协商和会话控制
- 服务器功能: 服务器公开的资源、提示和工具
- 客户端功能: 由客户端提供的采样和根目录列表
- 工具:横切关注点,比如日志记录与参数补全
All implementations 必须 support the base protocol and lifecycle management
components. Other components 可以 be implemented based on the specific needs of the
application.
这些协议层建立了清晰的关注点分离,同时支持客户端与服务器之间的丰富交互。这种模块化设计让实现能够精确支持它们所需的功能。
有关不同组件的更多详情,请参阅以下页面:
身份验证和授权目前不属于核心 MCP 规范的一部分,
但我们正在考虑在未来的版本中引入它们的功能。欢迎加入我们的
GitHub Discussions
讨论, 共同塑造协议的未来!
Clients and servers 可以 negotiate their own custom authentication and authorization
strategies.
模式结构
该协议的完整规范被定义为一个
TypeScript架构。
这是所有协议消息和架构的真实来源。
还有一个
JSON Schema,
它从 TypeScript 的源数据自动生成,用于各种自动化工具。