logo

该视频仅会员有权观看

立即开通课程「MCP 协议」权限。

¥
199
/ 年

MCP协议

MCP 协议遵循客户端-主机-服务器架构,MCP 协议其实就是规定的组件之间的通信协议,而 MCP 中的所有消息必须遵循 JSON-RPC 2.0 规范。

消息类型

MCP 协议定义了三种类型的消息:

  • request:请求消息,用于客户端向服务器发送请求,也可以从服务器发送到客户端。
  • response:响应消息,用于对请求的响应。
  • notification:通知消息,用于服务器向客户端发送通知。

请求消息

双向消息,可以从客户端发送到服务器,也可以反向发送。如下所示就是一个请求消息的示例:

{ "jsonrpc": "2.0", "id": "string | number", "method": "string", "param?": { "key": "value" } }

在请求消息中,有一些需要注意的点:

  • 必须包含字符串或整数类型的 ID
  • 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 字段
  • 用于状态更新和事件通知
  • 可以包含可选的参数对象
  • 减少通信开销,支持异步操作