news 2026/5/16 1:41:59

如何使用 curl 命令行测试 FastMCP (SSE 模式)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用 curl 命令行测试 FastMCP (SSE 模式)

在开发 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.1
  • Port:13333

3. 实战步骤

第一步:建立监听 (Terminal A)

打开第一个终端窗口,输入以下命令连接到 SSE 端点:

curl-Nhttp://127.0.0.1:13333/sse

注意:-N参数至关重要,它告诉 curl 禁用缓冲,立即显示服务器推过来的数据。

Sample Output (成功连接):

event: endpoint data: /messages/?session_id=6e0d5044d8fd45b595fbba50a15d65c4 : ping - 2026-01-03 10:00:10.371033+00:00

👉关键动作:请复制data:后面的完整路径/messages/?session_id=...。这是您的专属通信频道。


第二步:发送指令 (Terminal B)

保持 Terminal A 开启,打开第二个终端窗口。我们将构造一个 JSON-RPC 请求来调用工具。

假设我们要调用的工具是multiply,参数是a=3, b=4

构造 POST 请求:

  1. URL: 拼接 host 和刚才复制的路径。
    • ⚠️注意:URL 末尾的斜杠/不能少!FastMCP 默认路由是/messages/。如果少了斜杠,会收到307 Redirect错误。
  2. Body: 标准的 JSON-RPC 2.0 格式。

命令示例

curl-XPOST"http://127.0.0.1:13333/messages/?session_id=YOUR_SESSION_ID_HERE"\-H"Content-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。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 4:35:47

部署HunyuanOCR遇到CUDA out of memory?显存优化建议汇总

部署HunyuanOCR遇到CUDA out of memory?显存优化建议汇总 在本地部署像 HunyuanOCR 这类端到端多模态大模型时,不少开发者都曾被一条红色错误信息拦住去路:CUDA out of memory。尤其是在使用消费级显卡如 RTX 4090D(24GB 显存&…

作者头像 李华
网站建设 2026/5/1 4:32:41

JAVA分块上传的断点续传实现与优化

大文件传输系统解决方案 作为公司技术负责人,针对大文件传输需求,我将从技术选型、架构设计和实现方案等方面进行全面分析。 需求分析 我们的核心需求可以总结为: 支持超大文件(50G)及文件夹传输断点续传需高可靠(支持浏览器刷新/关闭)文…

作者头像 李华
网站建设 2026/5/8 16:06:58

HunyuanOCR能否识别手写体?实验结果显示中小规模手写文本可用

HunyuanOCR能否识别手写体?实验结果显示中小规模手写文本可用 在教育机构批量扫描学生作业时,一张张写满数字与公式的草稿纸上,AI能否准确读出那些歪斜、连笔甚至被橡皮擦蹭过的答案?在医院档案室,泛黄的病历本里医生匆…

作者头像 李华
网站建设 2026/5/12 3:31:32

langchain1.0调用deepseek-api

系列文章目录 langchain1.0学习环境搭建helloworld langchain1.0语义搜索(一)——建立索引 文章目录系列文章目录准备工作在deepseek上创建API keys充值编写python代码准备工作 在deepseek上创建API keys 打开网址 https://platform.deepseek.com/api…

作者头像 李华
网站建设 2026/5/10 19:11:46

使用Prometheus监控HunyuanOCR服务状态:GPU利用率与QPS指标采集

使用Prometheus监控HunyuanOCR服务状态:GPU利用率与QPS指标采集 在当前AI模型大规模落地的背景下,一个OCR服务是否“稳定可用”,早已不再只是看它能不能识别出文字。真正的挑战在于:当并发请求突然翻倍、GPU显存开始告急、响应延…

作者头像 李华