MCP Rigor

官方

為AI程式碼代理提供確定性測試迴圈的MCP伺服器,用於測試它們所建置的MCP伺服器:以自然語言編寫驗收測試、驗證措辭、執行測試,並讀取結構化的通過/失敗結果——執行階段無需AI解讀測試。執行方式:npx mcprigor serve <project>。同時也是一個完整的CLI/CI測試框架,具備契約漂移偵測與傳輸對等性。Apache-2.0。

你可以用 Rigor MCP 做什麼?

  • 驗證測試檔案 — 要求對 .mcpr 檔案執行 npx mcprigor check,以驗證語法與就緒狀態,無需連線至伺服器。
  • 執行驗收測試 — 對 .mcpr 檔案執行 npx mcprigor test,以呼叫 MCP 工具並針對結構化結果(如 structuredContent.sum)進行斷言。
  • 產生 HTML 報告 — 要求執行 npx mcprigor test --html report.html,以產出可分享的測試報告,供工單或 CI 產物使用。
  • 透過引導式撰寫探索工具 — 使用 npx mcprigor author 自動偵測工具、資源與提示,然後以互動方式產生測試檔案。
  • 啟動 QA 工作區 — 執行 npx mcprigor 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

後續步驟