AI协议 - MCP
基于http说明MCP协议
1.MCP 服务端点:
基础地址:
http://127.0.0.1:8080/mcp支持标准 MCP JSON-RPC 2.0 协议
请求头固定:
httpContent-Type: application/json Accept: text/event-stream,application/json
2.MCP 标准功能清单:
- 初始化握手
initialize - 客户端就绪通知
initialized - 获取服务端能力
listTools/listResources/listPrompts - 调用工具
callTool - 读取资源
readResource - 获取提示词
getPrompt - 日志订阅(SSE)
- 会话关闭
shutdown
3.curl 测试模板
3.1.初始化会话(第一步必须先执行)
bash
curl -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "0.1.0",
"capabilities": {
"tools": {},
"resources": {
"subscribe": true
},
"prompts": {}
},
"clientInfo": {
"name": "test-client",
"version": "1.0.0"
}
}
}'
event: message
data: {"result":{"protocolVersion":"2025-06-18","capabilities":{"logging":{},"prompts":{"listChanged":true},"tools":{"listChanged":true}},"serverInfo":{"name":"Walle.Open","version":"1.0.0.0"}},"id":1,"jsonrpc":"2.0"}3.2. 发送客户端就绪通知(无返回)
bash
curl -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "initialized",
"params": {}
}'3.3.查询所有可用工具 listTools
bash
curl -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}'
event: message
data: {"result":{"tools":[]},"id":2,"jsonrpc":"2.0"}3.4.查询资源列表 listResources
bash
curl -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "resources/list",
"params": {}
}'3.5.查询提示词列表 listPrompts
bash
curl -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 4,
"method": "prompts/list",
"params": {}
}'3.6.调用工具 callTool(示例:假设有工具 echo)
替换 name 和 arguments 为你服务端真实工具
bash
curl -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "echo",
"arguments": {
"msg": "hello mcp test"
}
}
}'3.7.读取资源 readResource
把 uri 替换成 listResources 返回的资源地址
bash
curl -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 6,
"method": "resources/read",
"params": {
"uri": "file:///test.txt"
}
}'3.8.获取提示词 getPrompt
bash
curl -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 7,
"method": "prompts/get",
"params": {
"name": "code-review",
"arguments": {
"lang": "javascript"
}
}
}'3.9.SSE 长连接订阅日志 / 实时通知(Streamable HTTP)
bash
curl -N -H "Accept: text/event-stream" http://127.0.0.1:8080/mcp-N禁用缓冲,实时接收 SSE 消息- 服务端会推送日志、资源变更、工具进度事件
3.10.关闭会话 shutdown
bash
curl -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 99,
"method": "shutdown",
"params": {}
}'