MCP入门-JSON-RPC 2.0(1)
JSON-RPC 2.0 是一个轻量级的远程过程调用(RPC)协议,使用JSON作为数据格式。
·
1. 简介
JSON-RPC 2.0 是一个轻量级的远程过程调用(RPC)协议,使用JSON作为数据格式。
2. 请求体格式
{
"jsonrpc": "2.0",
"method": "方法名",
"params": {},
"id": "数字或字符串"
}
3. 响应格式
{
"jsonrpc": "2.0",
"result": "结果数据",
"id": "数字或字符串"
}
4. 错误响应格式
{
"jsonrpc": "2.0",
"error": {
"code": "错误代码",
"message": "错误描述"
},
"id": "数字或字符串"
}
5. MCP的JSON-RPC实现
MCP(Model Context Protocol)服务基于JSON-RPC 2.0实现,并扩展支持Server-Sent Events进行流式通信。
采用JSON-RPC服务调用MCP服务的时候,请求头中的Accept一般包含 application/json, text/event-stream 其中application/json表示一次性传输整个响应,text/event-stream 是为了支持流式传输,实际的JSON-RPC数据在SSE的data字段中。
5.1. 初始化连接示例
背景:已经在本地服务部署MCP服务
请求如下:
curl -L -X POST http://localhost:8000/mcp/ \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{"experimental":{},"sampling":{}},"clientInfo":{"name":"curl-test","version":"1.0"}},"id":1}'
响应如下:
event: message
data: {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05","capabilities":{"experimental":{},"prompts":{"listChanged":false},"resources":{"subscribe":false,"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"calculator","version":"1.13.0"}}}
从响应中可以得到:
- jsonrpc版本为2.0
- id为1
- protocolVersion支持2024-11-05
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)