Skip to content

AI协议 - MCP

基于http说明MCP协议

1.MCP 服务端点:

  • 基础地址:http://127.0.0.1:8080/mcp

  • 支持标准 MCP JSON-RPC 2.0 协议

  • 请求头固定:

    http
    Content-Type: application/json
    Accept: text/event-stream,application/json

2.MCP 标准功能清单:

  1. 初始化握手 initialize
  2. 客户端就绪通知 initialized
  3. 获取服务端能力 listTools / listResources / listPrompts
  4. 调用工具 callTool
  5. 读取资源 readResource
  6. 获取提示词 getPrompt
  7. 日志订阅(SSE)
  8. 会话关闭 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

替换 namearguments 为你服务端真实工具

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": {}
}'
最近更新