🚀 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 |