项目简介
Goku MCP Server是一款基于Rust开发的高性能HTTP负载测试工具Goku的MCP服务端实现。它允许大型语言模型(LLM)或其他兼容MCP协议的客户端直接通过标准接口与其交互,执行负载测试并获取结果,从而将性能测试无缝集成到自动化工作流和AI代理应用中。
主要功能点
- LLM代理集成: 允许AI代理或LLM直接调用Goku进行HTTP负载测试,无需手动命令行操作。
- 自动化性能分析: 触发测试、收集性能指标并分析结果,实现自动化性能分析流程。
- 工具调用: 提供查询95/99分位延迟、最大/最小请求时间等工具,方便LLM获取关键性能数据。
- 标准化协议: 通过JSON-RPC协议与客户端通信,确保互操作性。
安装步骤
- 安装Rust: 确保您的系统已安装Rust编程语言及其包管理器Cargo。您可以访问 Rust官网 获取安装指南。
- 通过Cargo安装Goku MCP:
cargo install goku-mcp - (可选)自动下载安装脚本 (Linux, OSX, WSL):
此命令会将Goku MCP的可执行文件下载到当前目录。curl -sSL https://raw.githubusercontent.com/jcaromiq/goku/v2.0.1/scripts/install_mcp.sh | sh - (可选)手动下载: 访问Goku的 GitHub Releases页面,下载适合您系统的 'goku-mcp' 相关'.tar.gz'文件。
服务器配置
MCP客户端需要配置MCP服务器的启动命令。以下是适用于Goku MCP Server的配置示例:
{ "server_name": "Goku MCP Server", "command": "goku-mcp", "args": [], "description": "Goku MCP Server是一个用于HTTP负载测试的Model Context Protocol (MCP) 服务器。它允许LLM客户端调用工具来执行性能测试,并获取请求延迟的95分位、99分位、最大值和最小值等指标。", "tools": [ { "name": "percentile_95", "description": "显示给定目标、并发客户端数量和总请求数量下请求延迟的95分位。", "parameters": { "type": "object", "properties": { "target": { "type": "string", "description": "执行基准测试的目标URL,例如:http://localhost:3000/" }, "clients": { "type": "integer", "description": "使用的并发客户端数量,例如:100" }, "requests": { "type": "integer", "description": "执行的总请求数量,例如:10000" } }, "required": ["target", "clients", "requests"] } }, { "name": "percentile_99", "description": "显示给定目标、并发客户端数量和总请求数量下请求延迟的99分位。", "parameters": { "type": "object", "properties": { "target": { "type": "string", "description": "执行基准测试的目标URL,例如:http://localhost:3000/" }, "clients": { "type": "integer", "description": "使用的并发客户端数量,例如:100" }, "requests": { "type": "integer", "description": "执行的总请求数量,例如:10000" } }, "required": ["target", "clients", "requests"] } }, { "name": "min", "description": "显示给定目标、并发客户端数量和总请求数量下请求延迟的最小值。", "parameters": { "type": "object", "properties": { "target": { "type": "string", "description": "执行基准测试的目标URL,例如:http://localhost:3000/" }, "clients": { "type": "integer", "description": "使用的并发客户端数量,例如:100" }, "requests": { "type": "integer", "description": "执行的总请求数量,例如:10000" } }, "required": ["target", "clients", "requests"] } }, { "name": "max", "description": "显示给定目标、并发客户端数量和总请求数量下请求延迟的最大值。", "parameters": { "type": "object", "properties": { "target": { "type": "string", "description": "执行基准测试的目标URL,例如:http://localhost:3000/" }, "clients": { "type": "integer", "description": "使用的并发客户端数量,例如:100" }, "requests": { "type": "integer", "description": "执行的总请求数量,例如:10000" } }, "required": ["target", "clients", "requests"] } } ] }
请注意,'command'字段的值应为'goku-mcp'可执行文件在系统路径中的名称。如果不是,您可能需要提供其完整路径。'args'字段在默认情况下为空,因为Goku MCP服务器通过Stdio通信,其自身启动无需额外命令行参数。MCP客户端会通过JSON-RPC协议发送请求来调用内部工具。
基本使用方法
安装并配置好Goku MCP服务器后,您的MCP客户端(例如LLM代理)即可通过JSON-RPC协议与其通信,调用预定义的工具来执行负载测试。
例如,LLM客户端可以生成一个请求来调用 'percentile_95' 工具,以获取某个网站的性能数据。 LLM可以像这样提问:
"在 https://github.com 上运行一个性能测试,使用2个并发用户和总共30个请求,并提供95分位响应时间。"
LLM代理将自动将此请求转换为相应的MCP工具调用,然后通过Goku MCP Server执行测试并解析返回的结果。
信息
分类
开发者工具