






















一句话概括:
MCP 定义了一套统一的接口规范,让 AI 模型能以标准化的方式发现并调用外部能力。
MCP 被比作 "AI 的 USB-C 接口" —— USB-C 让所有设备用同一种接口连接外设,MCP 让所有 AI 应用用同一种协议连接工具。



提示:Tools 是最常用的,大多数 MCP Server 只实现 Tools 就够了。




{ "jsonrpc": "2.0", // 固定版本 "id": 1, // 请求 ID(通知无 id) "method": "xxx", // 方法名 "params": {} // 参数 / result: 结果 }
initialize
// 请求 { "jsonrpc": "2.0", "id": 1, "method": "initialize", "params": { "protocolVersion": "2025-03-26", "capabilities": {}, "clientInfo": {"name": "my-client", "version": "1.0"} } } // 响应 { "jsonrpc": "2.0", "id": 1, "result": { "protocolVersion": "2025-03-26", "capabilities": {"tools": {}}, "serverInfo": {"name": "my-server", "version": "1.0"} } }
tools/list
// 请求 { "jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {} } // 响应 { "jsonrpc": "2.0", "id": 2, "result": { "tools": [{ "name": "get_weather", "description": "获取指定城市的天气", "inputSchema": { "type": "object", "properties": { "city": {"type": "string", "description": "城市名称"} }, "required": ["city"] } }] } }
tools/call
// 请求 { "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "get_weather", "arguments": {"city": "北京"} } } // 响应 { "jsonrpc": "2.0", "id": 3, "result": { "content": [{"type": "text", "text": "晴天 25°C"}] } }
JSON-RPC 2.0 是一个已有的开放标准,和 MCP 无关。
MCP 聪明地借用了这个成熟标准,只需要定义具体的 method 有哪些,以及它们的 params 和 result 格式。


通过调试工具抓包可以方便了解协议
1、安装:pnpm
npm install -g pnpm
2、安装并启动官方调试工具
pnpm dlx @modelcontextprotocol/inspector
3、复制启动


MCP工具请求超时
超时的问题有可能是因为 配的ingress地址,ingress也是一个反向代理,代理可能针对SSE长连接有超时时间,代理层直接推送超时响应。目前dify统一改为走k8s 直连的方式。我dify测试了几轮没发现超时

MCP客户端通信 mcp/message?sessionId=770f849c-4ef9-4a8b-8032-d3ffc7cfb4a6 404
MCP客户端配置的是Ingrees地址,上线后未能评估出一期只支持1台MCP服务
由于MCP通信是采用SSE 加JSON RPC,当在服务A建立SSE后链接后, JSON RPC请求到服务B
导致找不到Session
、
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。