本项目提供了一个模型上下文提供器(MCP)服务器,用于与 BlazeMeter 的 API 集成,实现对性能测试数据的编程式访问和管理功能。该服务器提供了一组工具,供与 MCP 兼容的客户端(如 Claude Desktop 和 Cursor)与 BlazeMeter 资源进行交互。
在开始之前,请确保你具备以下条件:
⚠️ 重要提示
如果你使用较低版本的 Node.js 运行,将无法使用
fetch。工具使用fetch进行 HTTP 调用。若要解决此问题,你可以将工具修改为使用node-fetch。确保将node-fetch作为依赖项安装,然后在每个工具文件中以fetch的形式导入。
1. 安装依赖项 在项目的根目录下运行以下命令:
npm install
which node
Get-Command node | Select-Object -ExpandProperty Source
若要检查 Node.js 的版本,可运行以下命令:
node --version
若要获取 mcpServer.js 的绝对路径,可按以下操作:
realpath mcpServer.js
Resolve-Path mcpServer.js | Select-Object -ExpandProperty Path
你可以将 MCP 服务器连接到任何 MCP 客户端。以下是将其连接到 Claude Desktop 和 Cursor 的说明。
步骤 1:记录上一步中 Node.js 和 mcpServer.js 的完整路径。
步骤 2:打开 Claude Desktop → 设置 → 开发者 → 编辑配置,添加一个新的 MCP 服务器:
{
"mcpServers": {
"<服务器名称>": {
"command": "" ,
"args": ["" ]
}
}
}
重启 Claude Desktop 以使更改生效。确保新的 MCP 已开启,并且旁边有一个绿色圆圈。如果是这样,你就可以开始使用已连接工具的聊天会话了。
步骤 1:记录上一步中 Node.js 和 mcpServer.js 的完整路径。
步骤 2:在 Cursor 中,打开命令面板,搜索 "MCP: Add Server",或者前往设置 → MCP 服务器。
步骤 3:添加一个新的 MCP 服务器,配置如下:
步骤 4:保存并启用服务器。Cursor 会显示 MCP 服务器可用,你可以直接从 Cursor 界面使用 BlazeMeter 工具。⚠️ 重要提示
对于这两个客户端,请确保使用 Node.js v18 及以上版本的绝对路径。
如果你没有提供 Node.js v18 及以上版本的绝对路径,客户端可能会回退到系统上的其他旧版本。在这种情况下,
fetchAPI 将不可用,工具调用将无法正常工作。如果发生这种情况,你可以 a) 安装较新版本的 Node.js,并在命令中指向它;或者 b) 将node-fetch作为fetch导入到每个工具中,并确保在package.json中添加node-fetch依赖项。
对于生产环境部署,你可以使用 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 标志:
node mcpServer.js --sse
使用以下命令列出所有生成工具的描述和参数:
node index.js tools
示例:
可用工具:
工作区:acme-workspace
集合:useful-api
list_all_customers
描述:检索有用事物的列表。
参数:
- magic:所需的魔法力量
- limit:返回结果的数量
[...其他参数...]
本项目包含与 BlazeMeter API 交互的工具。你必须在 .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 文件中读取。| 工具名称 | 端点及描述 | 必需参数 |
|---|---|---|
| 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 |