K6 MCP服务器
MCP服务器,使AI代理能够执行和分析K6性能测试。
更新:2025年9月3日-与K6应用服务器集成,实现无阻塞操作
建筑
当前实施情况(截至2025年9月3日)
此MCP服务器现在与K6 App server集成,用于非阻塞测试执行:
- K6 MCP服务器 (this):Claude Desktop的轻量级协议处理程序
- K6应用服务器 (已实现):实际执行测试的REST API
- 益处:无阻塞操作,更好的资源管理,演示友好
Claude Desktop → K6 MCP Server → K6 App Server → K6 Process
↓ ↓ ↓ ↓
(MCP) (HTTP) (REST API) (Execution)安装
npm installClaude桌面配置
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"k6-mcp": {
"command": "/path/to/node",
"args": ["/absolute/path/to/mcp-servers/k6-mcp-server/src/index.js"],
"env": {
"NODE_ENV": "development"
}
}
}
}对nvm用户很重要:使用Node.js的完整路径(使用查找 which node):
"command": "/Users/username/.local/share/nvm/vX.X.X/bin/node"可用工具
k6_轮
执行K6性能测试脚本。
参数:
script(必填):K6测试脚本的路径vus:虚拟用户数(默认值:10)duration:测试持续时间(默认值:“30s”)env:测试的环境变量
例子:
{
"script": "demo-app/tests/k6/basic-load.js",
"vus": 20,
"duration": "1m",
"env": {
"BASE_URL": "http://localhost:3000"
}
}k6_列表
列出项目中所有可用的K6测试脚本。
例子:
// No parameters required
{}k6_分析
分析K6测试结果并提供见解。
参数:
testId:已完成测试的IDresultFile:K6结果文件的路径
例子:
{
"testId": "test_1234567890_abc123"
}k6_发电机
根据模板或规范生成K6测试脚本。
参数:
source(必填):生成类型(“基本”、“api”、“har”、“openapi”)input:输入文件或URLoptions:生成选项
例子:
{
"source": "api",
"input": "http://localhost:3000",
"options": {
"vus": 50,
"duration": "5m"
}
}k6_状态
获取运行状态和最近的K6测试。
参数:
testId(可选):用于检查状态的特定测试ID
例子:
// Check all tests
{}
// Check specific test
{
"testId": "k6_1234567890_abc123"
}k6_输出(新)
从正在运行或已完成的K6测试中获取实时输出。
参数:
testId(必填):用于获取输出的测试ID
例子:
{
"testId": "k6_1234567890_abc123"
}与Claude一起使用
配置后,您可以要求Claude:
- “用K6运行基本负载测试”
- “列出所有可用的性能测试”
- “分析上次测试的结果”
- “为产品终结点生成新的API测试”
- “检查当前是否有任何测试正在运行”
发展
# Run in development mode with auto-reload
npm run dev
# Run in production mode
npm start技术更新
2025年9月4日更新
- 工具行为改进:
- 工具不再自动链接操作 - 每个工具完成其任务并等待明确的用户指令 - 从工具描述中删除了指令语言
- 响应格式更改:
- 从指示性回复改为信息性回复 - 删除了“next_actions”和“recommended”字段 - 专注于报告已经完成的工作,而不是下一步要做什么
- 路径解析修复:
- 修复了测试脚本目录创建问题 - 现在使用从项目根目录开始的绝对路径 - 所有工具的一致路径分辨率
2025年9月3日更新
- MCP SDK版本:更新自
0.8.0(不存在)1.17.0 - API迁移:从旧改
Server/setRequestHandler到新McpServer/registerTool模式 - 依赖项:已添加
zod用于模式验证 - 控制台输出:修复了用于干净MCP响应的stdout/stderr分离问题
需求
- Node.js 20+
- K6已安装并可在PATH中使用(
brew install k6在macOS上) - K6应用服务器在端口3001上运行(请参阅
/k6-app-server) - 访问测试脚本目录
