协议修订版:2024-11-05

MCP 中的所有消息 必须 遵循 JSON-RPC 2.0 规范。该协议定义了三种消息类型:

请求

请求从客户端发送到服务器,或反之。

{
  jsonrpc: "2.0";
  id: string | number;
  method: string;
  params?: {
    [key: string]: unknown;
  };
}
  • 请求 必须 包含字符串或整数 ID。
  • 与基础 JSON-RPC 不同,ID 不得null
  • 请求 ID 在同一会话内 不得 被请求方重复使用。

响应

响应是对请求的回复。

{
  jsonrpc: "2.0";
  id: string | number;
  result?: {
    [key: string]: unknown;
  }
  error?: {
    code: number;
    message: string;
    data?: unknown;
  }
}
  • 响应 必须 包含与对应请求相同的 ID。
  • 必须设置 resulterror 之一。响应 不得 同时设置两者。
  • 错误代码 必须 为整数。

通知

通知从客户端发送到服务器,或反之。它们不期望响应。

{
  jsonrpc: "2.0";
  method: string;
  params?: {
    [key: string]: unknown;
  };
}
  • 通知 不得 包含 ID。