MCP性能测试服务器
一种模型上下文协议(MCP)服务器,旨在对Discovery Intech MCP客户端应用程序进行性能测试和基准测试。此服务器提供了全面的测试工具,用于分析各种负载条件下的响应时间、令牌使用、成本和系统性能。
特性
- 单项性能测试:执行单个查询并衡量详细指标
- 负载测试:使用可配置的请求模式模拟多个并发用户
- 成本监控:通过预测跟踪API成本和代币使用情况
- 基准情景:为Discovery Intech解决方案运行预定义的测试场景
- 结果分析:生成详细的性能分析和报告
- 导出功能:以JSON、CSV或HTML格式导出结果
安装
先决条件
- Node.js(版本18或更高)
- TypeScript
- 访问Discovery Intech MCP客户端(默认:http://localhost:8072)
设置
- 克隆或下载项目文件
- 安装依赖项:
npm install- 构建TypeScript代码:
npm run build- 启动服务器:
npm start项目结构
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file可用工具
1. run_performance_test
对Discovery Intech客户端执行单个性能测试。
参数:
query(必填):要测试的查询字符串targetUrl(可选):目标发现客户端URL(默认值:http://localhost:8072)testId(可选):唯一测试标识符
退货:
- 测试ID、响应时间、令牌使用情况、成本估算、数据集大小、MCP调用计数和获取的URL
2. run_load_test
模拟多个并发用户执行测试。
参数:
queries(必需):要测试的查询字符串数组concurrentUsers(可选):并发用户数(默认值:5)requestsPerUser(可选):每个用户的请求数(默认值:2)targetUrl(可选):目标发现客户端URL
退货:
- 包含汇总指标的负载测试摘要
3. analyze_test_results
分析和总结收集到的测试结果。
参数:
testIds(可选):要分析的特定测试IDgenerateReport(可选):生成详细的HTML报告(默认值:false)
退货:
- 全面分析,包括性能指标、成本和成功率
4. monitor_costs
监控API成本和使用模式。
参数:
timeframe(可选):分析周期-“小时”、“天”或“周”(默认值:“天”)modelName(可选):用于成本计算的AI模型(默认:“llama-3.1-8b-instant”)
退货:
- 带有预测和使用模式的成本分析
5. benchmark_scenarios
为Discovery Intech解决方案运行预定义的基准场景。
参数:
scenarios(可选):要运行的场景数组(默认值:\[“all”\])
- 可用场景:“sage”、“qad”、“microsoft”、“sap”、“sectors”、“services”、“company”和“all”
targetUrl(可选):目标发现客户端URL
退货:
- 使用性能指标对每个场景的结果进行基准测试
6. export_results
将测试结果导出为各种格式。
参数:
format(可选):导出格式-“json”、“csv”或“html”(默认:“json”)filepath(必填):输出文件路径includeDetails(可选):包括详细的测试数据(默认值:true)
退货:
- 出口成功确认
使用示例
基本性能测试
# Test a single query
{
"tool": "run_performance_test",
"arguments": {
"query": "Créez un dataset sur les solutions SAP de Discovery Intech",
"testId": "sap_test_001"
}
}负载测试
# Simulate 10 concurrent users with 3 requests each
{
"tool": "run_load_test",
"arguments": {
"queries": [
"Générez un dataset sur les solutions Sage",
"Créez un dataset sur les secteurs d'activité",
"Produisez un dataset sur l'équipe Discovery Intech"
],
"concurrentUsers": 10,
"requestsPerUser": 3
}
}对所有场景进行基准测试
{
"tool": "benchmark_scenarios",
"arguments": {
"scenarios": ["all"]
}
}导出结果
{
"tool": "export_results",
"arguments": {
"format": "html",
"filepath": "./test_results.html",
"includeDetails": true
}
}收集的指标
服务器跟踪每个测试的综合指标:
- 响应时间:从请求到响应完成的总时间
- 令牌使用情况:估计消耗的代币(输入+输出)
- 成本估算:根据羊驼的Groq定价计算成本-3.1-8b-instant
- 数据集大小:响应中的数据集元素数
- MCP呼叫:MCP工具调用计数
- 已获取URL:访问的唯一发现互联网URL
- 成功率:测试完成状态
成本计算
成本使用羊驼的Groq定价计算-3.1-8b-instant:
- 输入代币:每1000个代币0.05美元
- 输出代币:每1000个代币0.08美元
- 令牌估计:每个令牌约4个字符
配置
目标URL配置
默认情况下,服务器的目标 http://localhost:8072。您可以在任何工具调用中覆盖此内容:
{
"targetUrl": "https://your-discovery-client.com"
}超时设置
所有请求都有5分钟的超时时间(300000ms),以适应可能需要大量数据集生成的复杂查询。
错误处理
服务器包括全面的错误处理:
- 网络超时和连接错误
- 目标客户端的响应无效
- 导出操作期间的文件系统错误
- 无效的工具参数
发展
建筑
npm run build项目依赖项
- @模型上下文协议/sdk:MCP框架
- 轴:API请求的HTTP客户端
- 打字稿:TypeScript编译器和类型定义
添加新的测试场景
要添加新的基准场景,请修改 predefinedScenarios 对象在 benchmarkScenarios 方法:
const predefinedScenarios = {
// existing scenarios...
newScenario: 'Your new test query here',
};故障排除
常见问题
- 连接被拒绝:确保Discovery Intech客户端正在指定的URL上运行
- 超时错误:大型数据集查询可能需要几分钟才能完成
- 权限错误:确保导出文件路径的写入权限
调试模式
服务器记录到stderr进行调试。监控控制台输出以获取详细的执行信息。
许可证
ISC许可证
贡献
这是Discovery Intech MCP客户端的专用测试工具。确保任何修改都与MCP协议规范保持兼容性。
支持
关于以下问题:
- MCP协议:检查模型上下文协议文档
- Discovery Intech客户端:联系Discovery Intech开发团队
- 服务器功能:查看中的源代码
src/index.ts
