MCP协议使用JSONRPC作为底层数据层的传输协议. 这是一个及其简单明了的协议, 官方定义在这儿: https://www.jsonrpc.org/specification

简单说明:

  • JSONRPC是客户端向服务器发起一个请求Request, 服务器返回一个响应Response.
  • 客户端发起的请求有id时, 服务器必须响应并带上id, 如果客户端发起的请求没有id, 则这个请求是一个"通知", 服务器不需要响应.
  • 服务器的响应中必须有id, 如果这个id是null, 则说明客户端给的id有问题
    request格式:
    {
    "jsonrpc": "2.0",  // 必选, 值必须是"2.0"
    "method": "subtract", // 必选, 值为string
    "params": [42, 23],  // 可选, 按具体method的要求
    "id": 1 // 要返回值时必选, 不要返回值是必须省略
    }

    response 成功时格式:

    {
    "jsonrpc": "2.0", // 必选, 值必须是"2.0"
    "result": 19, // 成功时必须有, 失败时必须没有
    "id": 1 // 必须有, 与客户端request中一致
    }

    response 失败时格式

    {
    "jsonrpc": "2.0", 
    "error": { // 失败时必须有, 成功时必须没有
      "code": -32601, // 必选, 为整数. 其中从-32768 到-32000 范围内的错误代码被保留用于预定义错误
      "message": "Method not found" // 必选, 为string, 一句话描述错误.
    }, 
    "id": "1" // 必选, 解析不了client发来的id时候返回null
    }

    更多示例请看官方文档. https://www.jsonrpc.org/specification

标签: none 阅读量: 5

添加新评论