2026/4/18 7:33:55
网站建设
项目流程
山东网站建设开发,山东建设工会网站,佛山网站建设设计,找做cad彩拼的网站在开发 FastMCP Server 时#xff0c;我们经常需要快速验证某个 Tool 或 Resource 是否工作正常。虽然编写 Python 客户端代码是最正规的方式#xff0c;但有时手边只有命令行。
本文将手把手教你如何使用 curl 征服 MCP over SSE 协议。
1. 原理解析#xff1a;为什么需要两…在开发 FastMCP Server 时我们经常需要快速验证某个 Tool 或 Resource 是否工作正常。虽然编写 Python 客户端代码是最正规的方式但有时手边只有命令行。本文将手把手教你如何使用curl征服 MCP over SSE 协议。1. 原理解析为什么需要两个窗口MCP (Model Context Protocol) 在使用 SSE (Server-Sent Events) 传输时采用了“读写分离”的模式读 (Read): 一个持久的 HTTP 长连接服务器通过它源源不断地推送数据Events。写 (Write): 短暂的 HTTP POST 请求客户端通过它发送指令。因此我们需要打开两个终端窗口一个负责“听”一个负责“说”。2. 准备工作假设您的 FastMCP Server 运行在本地Host:127.0.0.1Port:133333. 实战步骤第一步建立监听 (Terminal A)打开第一个终端窗口输入以下命令连接到 SSE 端点curl-Nhttp://127.0.0.1:13333/sse注意-N参数至关重要它告诉 curl 禁用缓冲立即显示服务器推过来的数据。Sample Output (成功连接):event: endpoint data: /messages/?session_id6e0d5044d8fd45b595fbba50a15d65c4 : ping - 2026-01-03 10:00:10.37103300:00关键动作请复制data:后面的完整路径/messages/?session_id...。这是您的专属通信频道。第二步发送指令 (Terminal B)保持 Terminal A 开启打开第二个终端窗口。我们将构造一个 JSON-RPC 请求来调用工具。假设我们要调用的工具是multiply参数是a3, b4。构造 POST 请求URL: 拼接 host 和刚才复制的路径。⚠️注意URL 末尾的斜杠/不能少FastMCP 默认路由是/messages/。如果少了斜杠会收到307 Redirect错误。Body: 标准的 JSON-RPC 2.0 格式。命令示例curl-XPOSThttp://127.0.0.1:13333/messages/?session_idYOUR_SESSION_ID_HERE\-HContent-Type: application/json\-d{ jsonrpc: 2.0, method: tools/call, params: { name: multiply, arguments: {a: 3, b: 4} }, id: 1 }Terminal B 的 Sample Output:Accepted(是的这里通常只返回 Accepted表示服务器已收到请求。真正的结果会在 Terminal A 显示。)第三步查看结果 (Terminal A)回到第一个窗口您会看到新的事件被推出来了Sample Output (工具执行结果):event: message data: {jsonrpc:2.0,id:1,result:{content:[{type:text,text:12.0}]}}可以看到result字段里包含了计算结果12.0。4. 常见坑点排查 (Troubleshooting)Q: 发送 POST 后没反应检查 Terminal A结果是异步返回的一定要看监听窗口。检查斜杠确认 POST URL 是/messages/?...而不是/messages?...。可以加-v参数查看是否返回了307 Temporary Redirect。Q: Session ID 过期SSE 连接如果断开Session ID 就会失效。每次重新运行curl -N .../sse都会生成一个新的 ID发 POST 时记得更新。Q: 乱码或无输出确保curl加上了-N(no buffer)。确保curl加上了-H Content-Type: application/json否则服务器可能不解析 Body。