MCP Rigor

官方

为AI编码代理提供确定性测试循环的MCP服务器,用于测试它们构建的MCP服务器:用自然语言编写验收测试,验证措辞,运行测试,并读取结构化的通过/失败结果——运行时无需AI解释测试。运行方式:npx mcprigor serve <project>。同时也是一个完整的CLI/CI测试框架,具备契约漂移检测和传输一致性。Apache-2.0许可。

你可以用 Rigor MCP 做什么?

  • 验证测试文件 — 在针对服务器运行之前,使用 check 请求检查 .mcpr 文件的语法和结构。

  • 运行验收测试 — 使用 test 针对本地或 Streamable HTTP MCP 服务器执行测试套件,输出中包含通过/失败计数。

  • 生成 HTML 报告 — 从测试运行中创建可共享的 report.html 工件,以便附加到工单或 CI 日志中。

  • 交互式编写测试 — 使用 author 发现 MCP 服务器的工具、资源和提示,然后根据您的验证目标生成测试文件。

  • 使用浏览器工作区 — 启动 workspace 来编辑、验证和运行多个套件,并支持语法高亮、自动补全和运行历史记录。

文档

本指南将带您从安装开始,直到通过一个 MCP 测试。

1. 安装 MCP Rigor

您需要 Node.js 20 或 22。MCP Rigor 以 mcprigor 的形式发布在 npm 上——该包附带可直接运行的编译代码,因此无需从源码构建。

mkdir mcp-acceptance-tests
cd mcp-acceptance-tests
npm init -y
npm install mcprigor

要检查安装情况:

npx mcprigor --help

2. 创建测试文件

创建 calculator.mcpr

MCP Test 1

Suite: "Calculator acceptance tests"
Server: node ../calculator-server/dist/server.js

Test: "Adding 20 and 22 gives 42"
  Call tool "add" with:
    a: 20
    b: 22

  Expect "structuredContent.sum" equals 42

Server 命令更改为启动您的 MCP 服务器的命令。

对于已部署的 Streamable HTTP 服务器,请使用:

MCP URL: https://qa.example.com/mcp

3. 检查措辞

npx mcprigor check calculator.mcpr

一个有效的文件会打印:

✓ calculator.mcpr looks good and is ready to run

check 不会连接到服务器。

4. 运行测试

npx mcprigor test calculator.mcpr

通过的结果看起来像:

MCP Rigor — Calculator acceptance tests
✓ Adding 20 and 22 gives 42

1 passed, 0 failed, 0 skipped, 0 blocked

5. 创建可共享的报告

npx mcprigor test calculator.mcpr --html report.html

打开 report.html 或将其附加到工单中。

6. 尝试浏览器工作区

npx mcprigor workspace .

打开打印的本地 URL。选择 calculator.mcpr——编辑器会为您提供语法高亮和自动补全——然后选择 Validate▶ Run tests。您还可以创建新的测试文件,使用复选框同时运行多个套件,并在结果面板中查看运行历史和趋势。请参阅 QA 工作区指南

如果您不知道工具名称

创建一个小的目标文件,例如 server.mcpr

MCP Test 1
Suite: "Server target"
Server: node ../calculator-server/dist/server.js
Test: "Connection"
  Send "ping"

开始引导式编写:

npx mcprigor author server.mcpr --out calculator.mcpr

MCP Rigor 会发现工具、资源和提示,并询问您想要验证什么。

推荐的项目布局

mcp-acceptance-tests/
  package.json
  tests/
    smoke.mcpr
    regression.mcpr
    data/
      customers.csv
  .mcprigor/
    # generated evidence; normally ignored or stored as CI artifacts

后续步骤