SineFrame M3 SineFrame M3 是开源的 MCP 服务器与智能体测试工具,让开发者用 pytest 跑真实 Claude Code、Codex 等并断言实际工具调用,保障 PR 质量。 热门评论 PH 用户Hey Product Hunt 👋 我是 Rishav,这位是 Utkarsh,我们做了 SineFrame M3。我们一直遇到的盲区是:你的 MCP server 单元测试都过了,可真实智能体凭记忆回答、选错工具,或者用错参数调用它。测试套件里完全看不到这些。M3 就是补这个盲区的 pytest:🔌 直接测试:通过 stdio 或 Streamable HTTP 调用你的 server,并对结构化结果做断言。不需要模型,不需要 API key。🤖 智能体测试:让真实的 Claude Code、Codex、OpenCode、Pi 或任何 ACP 智能体跑你的 server,然后对通信记录里实际发生的工具调用做断言,而不是对智能体自称做了什么做断言。🔍 m3 ui:每次运行都保存在本地,带 traces、工具调用、参数和时间线。✅ m3 ci test --upload:同一批测试为你的 PR 把关,运行结果会到 app.m3.sineframe.com 给团队看。区别在哪:inspector 是拿来手动戳 server 的,eval 平台是给你自己的 LLM 应用打分的。M3 是你 repo 里的测试代码,检查你的 server 和真正调用它的智能体。免费开源(Apache-2.0):uv tool install sf-m3-cli托管运行有免费账户:sineframe.com我整天都在。你今天最难测的 MCP 行为是什么?PH 用户我的 server 用了 elicitation(在一次工具调用中途向用户要输入)。智能体测试怎么处理这种情况?我可以在测试里 stub 掉客户端的 elicitation 响应吗? 热门产品Rishav katoch2026-10-08原文 打开互动版
我们一直遇到的盲区是:你的 MCP server 单元测试都过了,可真实智能体凭记忆回答、选错工具,或者用错参数调用它。测试套件里完全看不到这些。
M3 就是补这个盲区的 pytest:
🔌 直接测试:通过 stdio 或 Streamable HTTP 调用你的 server,并对结构化结果做断言。不需要模型,不需要 API key。
🤖 智能体测试:让真实的 Claude Code、Codex、OpenCode、Pi 或任何 ACP 智能体跑你的 server,然后对通信记录里实际发生的工具调用做断言,而不是对智能体自称做了什么做断言。
🔍 m3 ui:每次运行都保存在本地,带 traces、工具调用、参数和时间线。
✅ m3 ci test --upload:同一批测试为你的 PR 把关,运行结果会到 app.m3.sineframe.com 给团队看。
区别在哪:inspector 是拿来手动戳 server 的,eval 平台是给你自己的 LLM 应用打分的。M3 是你 repo 里的测试代码,检查你的 server 和真正调用它的智能体。
免费开源(Apache-2.0):
uv tool install sf-m3-cli
托管运行有免费账户:sineframe.com
我整天都在。你今天最难测的 MCP 行为是什么?