MCP 基础协议
模型上下文协议(Model Context Protocol)由几个协同工作的关键组件组成:
- 基础协议:核心 JSON-RPC 消息类型
- 生命周期管理:连接初始化、能力协商和会话控制
- 服务器功能:服务器提供的资源、提示和工具
- 客户端功能:客户端提供的采样和根目录列表
- 实用工具:跨领域关注点,如日志记录和参数补全
所有实现必须支持基础协议和生命周期管理组件。其他组件可以根据应用程序的特定需求来实现。
这些协议层在实现客户端和服务器之间丰富交互的同时,建立了明确的关注点分离。模块化设计允许实现精确支持所需的功能。
消息
MCP 客户端和服务器之间的所有消息必须遵循 JSON-RPC 2.0 规范。协议定义了以下类型的消息:
请求(Requests)
请求从客户端发送到服务器,或者从服务器发送到客户端,用于启动操作。
{
jsonrpc: "2.0";
id: string | number;
method: string;
params?: {
[key: string]: unknown;
};
}
- 请求必须包含字符串或整数 ID。
- 与基本 JSON-RPC 不同,ID 不得为
null。 - 请求 ID 不得在同一会话中被请求者先前使用过。
响应(Responses)
响应是对请求的回复,包含操作的结果或错误。