🚀 BlazeMeter MCP Server
本項目提供了一個模型上下文提供器(MCP)服務器,用於與 BlazeMeter 的 API 集成,實現對性能測試數據的編程式訪問和管理功能。該服務器提供了一組工具,供與 MCP 兼容的客戶端(如 Claude Desktop 和 Cursor)與 BlazeMeter 資源進行交互。
🚀 快速開始
⚙️ 前提條件
在開始之前,請確保你具備以下條件:
⚠️ 重要提示
如果你使用較低版本的 Node.js 運行,將無法使用 fetch。工具使用 fetch 進行 HTTP 調用。若要解決此問題,你可以將工具修改為使用 node-fetch。確保將 node-fetch 作為依賴項安裝,然後在每個工具文件中以 fetch 的形式導入。
📥 安裝與設置
1. 安裝依賴項
在項目的根目錄下運行以下命令:
npm install
若要檢查 Node.js 的版本,可運行以下命令:
node --version
若要獲取 mcpServer.js 的絕對路徑,可按以下操作:
👩💻 將 MCP 服務器連接到 Claude Desktop 或 Cursor
你可以將 MCP 服務器連接到任何 MCP 客戶端。以下是將其連接到 Claude Desktop 和 Cursor 的說明。
Claude Desktop
步驟 1:記錄上一步中 Node.js 和 mcpServer.js 的完整路徑。
步驟 2:打開 Claude Desktop → 設置 → 開發者 → 編輯配置,添加一個新的 MCP 服務器:
{
"mcpServers": {
"<服務器名稱>": {
"command": "<Node.js 的絕對路徑>",
"args": ["<mcpServer.js 的絕對路徑>"]
}
}
}
重啟 Claude Desktop 以使更改生效。確保新的 MCP 已開啟,並且旁邊有一個綠色圓圈。如果是這樣,你就可以開始使用已連接工具的聊天會話了。
Cursor
步驟 1:記錄上一步中 Node.js 和 mcpServer.js 的完整路徑。
步驟 2:在 Cursor 中,打開命令面板,搜索 "MCP: Add Server",或者前往設置 → MCP 服務器。
步驟 3:添加一個新的 MCP 服務器,配置如下:
- 命令:
<Node.js 的絕對路徑>
- 參數:
<mcpServer.js 的絕對路徑>
步驟 4:保存並啟用服務器。Cursor 會顯示 MCP 服務器可用,你可以直接從 Cursor 界面使用 BlazeMeter 工具。
⚠️ 重要提示
對於這兩個客戶端,請確保使用 Node.js v18 及以上版本的絕對路徑。
如果你沒有提供 Node.js v18 及以上版本的絕對路徑,客戶端可能會回退到系統上的其他舊版本。在這種情況下,fetch API 將不可用,工具調用將無法正常工作。如果發生這種情況,你可以 a) 安裝較新版本的 Node.js,並在命令中指向它;或者 b) 將 node-fetch 作為 fetch 導入到每個工具中,並確保在 package.json 中添加 node-fetch 依賴項。
附加選項
🐳 Docker 部署(生產環境)
對於生產環境部署,你可以使用 Docker:
1. 構建 Docker 鏡像
docker build -t <你的服務器名稱> .
2. 客戶端集成
將 Docker 服務器配置添加到你的 MCP 客戶端(Claude Desktop 或 Cursor):
{
"mcpServers": {
"<你的服務器名稱>": {
"command": "docker",
"args": ["run", "-i", "--rm", "--env-file=.env", "<你的服務器名稱>"]
}
}
}
請將環境變量(API 密鑰等)添加到 .env 文件中。
該項目附帶了以下最小化的 Docker 設置:
FROM node:22.12-alpine AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
ENTRYPOINT ["node", "mcpServer.js"]
🌐 服務器發送事件(SSE)
若要運行支持服務器發送事件(SSE)的服務器,請使用 --sse 標誌:
node mcpServer.js --sse
🛠️ 其他 CLI 命令
列出工具
使用以下命令列出所有生成工具的描述和參數:
node index.js tools
示例:
可用工具:
工作區:acme-workspace
集合:useful-api
list_all_customers
描述:檢索有用事物的列表。
參數:
- magic:所需的魔法力量
- limit:返回結果的數量
[...其他參數...]
🔥 BlazeMeter API 工具
本項目包含與 BlazeMeter API 交互的工具。你必須在 .env 文件中設置以下環境變量:
示例 .env 文件
BASE_URL=https://a.blazemeter.com
BZM_USERNAME=你的 BlazeMeter API 密鑰
BZM_PASSWORD=你的 BlazeMeter API 密鑰密碼
BZM_ACCOUNT_ID=你的 BlazeMeter 賬戶 ID # (可選,用於工作區列表)
BZM_WORKSPACE_ID=你的 BlazeMeter 工作區 ID # (可選,用於項目列表)
- 對於參數可選的工具,如果未提供值,將從
.env 文件中讀取。
- 對於參數必需的工具,你必須在請求中提供該參數。
支持的 BlazeMeter 端點
| 工具名稱 |
端點及描述 |
必需參數 |
| get_workspaces |
/api/v4/workspaces?accountId=... 列出賬戶的工作區 |
(可選)accountId |
| get_projects |
/api/v4/projects?workspaceId=... 列出工作區的項目 |
(可選)workspaceId |
| get_test_runs |
/api/v4/masters?testId=... 列出測試的運行(主測試) |
testId |
| get_test_run_summary |
/api/v4/masters/{masterId}/reports/default/summary 獲取測試運行的摘要 |
masterId |
| get_test_run_aggregate_data |
/api/v4/masters/{masterId}/reports/aggregatereport/data 聚合報告數據 |
masterId |
| get_test_run_errors_data |
/api/v4/masters/{masterId}/reports/errorsreport/data 錯誤報告數據 |
masterId |
| get_test_run_thresholds |
/api/v4/masters/{masterId}/reports/thresholds 閾值報告 |
masterId |
| get_test_run_timeline_kpis |
/api/v4/masters/{masterId}/reports/timeline/kpis 時間線關鍵績效指標報告 |
masterId |