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