🚀 MCP 協議測試框架
本測試框架主要用於驗證實現 MCP 協議的服務器是否符合規範,能自動識別協議版本,支持多種傳輸層通信,內置多套標準化測試用例,並在測試完成後提供詳細的 HTML 報告與結果分析。
🚀 快速開始
依賴安裝
確保安裝了以下 Python 包:
pip install mcp-testing http-client jsonrpc
安裝依賴包
pip install -r requirements.txt
配置測試環境
{
"protocol_version": "1.0",
"server_url": "http://localhost:8080",
"timeout": 30,
"retries": 3
}
執行測試腳本
python -m mcp_testing.run_tests
✨ 主要特性
- 協議版本檢測:自動識別當前使用的協議版本(默認為 MCP v1.0)
- 傳輸層適配:同時支持基於文件和 HTTP 的傳輸層通信
- 測試用例管理:內置多套標準化測試用例,涵蓋協議要求的所有功能模塊
- 結果分析:提供詳細的測試報告,包括通過率統計、失敗原因分析等
📦 安裝指南
安裝依賴
pip install mcp-testing http-client jsonrpc
安裝依賴包
pip install -r requirements.txt
💻 使用示例
基礎用法
以下是一個典型的測試流程:
test.initialize()
tools = test.list_tools()
print(f"Available tools: {tools}")
input_data = {"key": "value"}
result = test.execute_tool("tool_id", input_data)
print(f"Execution result: {result}")
test.shutdown()
高級用法
基本測試模式
python -m mcp_testing.scripts.compliance_report --server-command "path/to/server"
python -m mcp_testing.scripts.compliance_report --protocol-version 1.0
高級選項
--spec-coverage
:僅測試規範覆蓋範圍內的功能點
--auto-detect
:自動識別服務器的配置參數和能力
--output-dir
:指定輸出報告的位置
📚 詳細文檔
初始化流程
測試過程如下:
- 發起初始化請求
- 服務端回應初始化完成狀態
- 獲取並驗證工具列表
工具列表獲取
通過調用list_tools()
命令獲取可用工具信息。服務端應返回所有支持的工具及其詳細說明。
詳細功能描述
基本命令接口
initialize()
list_tools()
execute_tool(tool_id, input_data)
shutdown()
工具管理
- 支持動態註冊工具
- 每個工具必須定義明確的操作說明和輸入輸出規範
測試選項
基本測試模式
python -m mcp_testing.scripts.compliance_report --server-command "path/to/server"
python -m mcp_testing.scripts.compliance_report --protocol-version 1.0
高級選項
--spec-coverage
:僅測試規範覆蓋範圍內的功能點
--auto-detect
:自動識別服務器的配置參數和能力
--output-dir
:指定輸出報告的位置
報告生成
測試完成後會自動生成詳細的 HTML 報告,內容包括:
- 測試概覽
- 通過與失敗的具體案例
- 協議覆蓋度分析
- 性能指標統計
輸出報告示例
生成的 HTML 報告將包含以下內容:
- 測試用例執行結果概覽表
- 詳細失敗日誌和錯誤分析
- 可視化的協議覆蓋度圖表
兼容性說明
本框架已通過多版本 MCP 協議測試,兼容如下版本:
- MCP v1.0(最新)
- MCP v0.9
- MCP v0.8
附錄
錯誤代碼
常見錯誤及其處理方式:
raise ConnectionTimeout("Server did not respond in time")
raise InvalidRequestError("Malformed request format")
建議
- 定期更新測試用例庫以應對協議的變更
- 根據實際需求調整超時設置和重試策略
聯繫方式
如需反饋或技術支持,請聯繫:
- 郵箱:support@mcp-testing.com
- 電話:+86-123-4567890
🔧 技術細節
錯誤處理機制
- 重試策略:針對網絡波動和臨時性錯誤自動重試(默認重試 3 次)
- 超時控制:每個操作都有獨立的超時設置,防止長時間掛起
- 異常捕獲:詳細記錄所有出現的異常情況,並提供堆棧跟蹤