MCP Perf套件
⚠️ 该项目正在积极开发中。功能、模块和文档可能会经常更改。使用风险自负,请报告任何问题或建议!
欢迎来到 MCP Perf套件 --MCP服务器的模块化集合,旨在支持和简化性能测试工作流程。
______________________________________________________________________
📖 概述
此存储库托管多个MCP服务器,每个服务器都是为性能测试生命周期中的特定角色而设计的:
🧪 测试创建和执行
- JMeter MCP服务器:\
从Playwright捕获的流量生成JMeter脚本。将结构化JSON转换为JMX文件,执行JMeter测试,实时监控并分析性能结果。
- BlazeMeter MCP服务器:\
与BlazeMeter的API交互以管理工作空间、项目、测试和获取运行结果。
📊 监测与分析
- Datadog(应用程序性能监控)MCP服务器:\
从Datadog中提取并关联监控和指标数据,以补充负载测试结果。
- MCP服务器性能测试分析:\
对BlazeMeter测试结果以及Datadog系统指标(如CPU、内存)进行深入分析。包括对JMeter和Datadog日志的日志分析,然后是跨数据集的时间序列相关性,以检测异常并提供可操作的见解。
🧠 AI记忆与学习
- PerfMemory MCP服务器:\
PostgreSQL支持pgvector和Apache AGE的持久内存和经验教训层。存储调试会话、尝试和症状的向量嵌入,以便AI代理可以回忆过去的修复并避免重复错误。Apache AGE知识图通过结构关系遍历实现跨项目问题发现。支持OpenAI、Azure OpenAI和Ollama嵌入提供商。
📑 报告、协作和工件存储
- 性能报告MCP服务器:\
根据测试数据和分析文件生成格式化报告(如PDF、Word、Markdown),用于演示和决策。
- 汇流MCP服务器:\
通过将Markdown文件转换为Confluence XHTML格式发布性能测试报告。
- SharePoint MCP服务器:\
将性能测试工件(文件、文件夹、报告)上传并存档到SharePoint文档库,以实现长期持久性。支持双重身份验证(承载令牌和基于cookie的FedAuth/rtFa)、大文件的自动分块上传、KQL搜索和库发现。使用基于浏览器的身份验证(不需要Azure AD应用程序注册)。
💬 通知与沟通
- MS Teams MCP服务器:\
自动化Microsoft Teams的性能测试工作流通知。在执行前发送测试前警报、测试后完成摘要和高级结果,并共享报告链接——所有这些都是由AI代理驱动的。使用基于浏览器的身份验证(不需要Azure AD应用程序注册),带有模板通知和配置驱动的通道目标。
______________________________________________________________________
🔄 管道和工作流程
此存储库中的MCP服务器(以及Playwright MCP等外部集成)形成了一个完整的性能测试管道。此工作流程说明了如何在团队之间创建、验证、执行、监控、分析、报告和沟通脚本,并在关键里程碑处通知利益相关者。
📐 工作流程图
┌────────────────────────┐
│ Playwright MCP │
│ (external, captures │
│ browser traffic) │
└───────────┬────────────┘
│ JSON traffic
▼
┌────────────────────────┐ ┌─────────────────────────┐
│ JMeter MCP Server │◄─────►│ PerfMemory MCP Server │
│ - Generate JMX scripts│ │ - Recall past fixes │
│ - Run smoke tests to │ │ - Store new lessons │
│ validate correctness│ │ - Vector similarity │
└───────────┬────────────┘ │ search (pgvector) │
│ Validated JMX │ - Knowledge graph │
▼ │ (Apache AGE) │
┌────────────────────────┐ └─────────────────────────┘
│ MS Teams MCP Server │
│ (Pre-test notify) │
└───────────┬────────────┘
│
▼
┌────────────────────────┐
│ BlazeMeter MCP Server│
│ - Execute full-scale │
│ performance tests │
│ - Fetch run results │
└───────────┬────────────┘
│ Results & metrics
▼
┌────────────────────────────────┐
│ Datadog MCP Server │
│ (APM metrics correlation) │
└───────────┬────────────────────┘
│
▼
┌────────────────────────────────┐
│ Performance Test Analysis MCP │
│ - Analyze BlazeMeter results │
│ - Analyze Datadog metrics │
│ - Log analysis (JMeter + │
│ Datadog logs) │
│ - Time-series correlation │
└───────────┬────────────────────┘
│
▼
┌────────────────────────────────┐
│ Performance Reporting MCP │
│ (PDF, Word, Markdown reports) │
└────────────────┬───────────────┘
│
┌────────────┼────────────────┐
▼ ▼ ▼
┌────────────────────┐ ┌──────────────────────────┐ ┌──────────────────────┐
│ Confluence MCP │ │ MS Teams MCP Server │ │ SharePoint MCP │
│ (Publish reports │ │ (Post-test notification: │ │ (Archive artifacts │
│ to Confluence; │ │ high-level summary │ │ to document │
│ HITL review cycle)│ │ results & report links) │ │ libraries for │
└────────────────────┘ └──────────────────────────┘ │ long-term storage) │
└──────────────────────┘______________________________________________________________________
🏗️ 建筑与结构
每个MCP服务器都位于其 自己的子目录 在这个仓库中,可以轻松地独立开发、维护和部署:
mcp-perf-suite/
├── artifacts/ # Folder that contains the performance test results
├── blazemeter-mcp/ # BlazeMeter MCP server (current)
├── confluence-mcp/ # Confluence MCP server (current)
├── datadog-mcp/ # Datadog MCP server (current)
├── docker/ # Dockerfiles and Compose files (pgvector + Apache AGE)
├── jmeter-mcp/ # JMeter MCP server (current)
├── msteams-mcp/ # MS Teams notifications MCP (current)
├── perfanalysis-mcp/ # LLM-powered test analysis MCP (current)
├── perfmemory-mcp/ # AI memory & lessons learned MCP (current)
├── perfreport-mcp/ # Reporting and formatting MCP (current)
├── sharepoint-mcp/ # SharePoint artifact storage MCP (current)
├── README.md # This file: repo overview and guidance
└── LICENSE # Repository license (e.g., MIT)
______________________________________________________________________
▶️ 入门指南
所有MCP服务器都使用 FastMCP 和 Python 3.12+每个服务器都有自己的README,其中包含详细的设置说明、配置和工具参考。导航到服务器的文件夹并按照其README开始。
| MCP服务器 | 文件夹 | README | 先决条件 |
|---|---|---|---|
| JMeter | jmeter-mcp/ | 自述文件 | JMeter 5.6+,剧作家MCP(可选) |
| 火焰计 | blazemeter-mcp/ | 自述文件 | BlazeMeter API密钥 |
| 数据狗 | datadog-mcp/ | 自述文件 | datadog API+应用程序密钥 |
| 性能分析 | perfanalysis-mcp/ | 自述文件 | BlazeMeter或JMeter测试伪影 |
| PerfMemory | perfmemory-mcp/ | 自述文件 | PostgreSQL+pgvector+Apache AGE(安装指南),嵌入API密钥 |
| 业绩报告 | perfreport-mcp/ | 自述文件 | 分析工件 |
| 汇流 | confluence-mcp/ | 自述文件 | 汇流令牌(云端或本地) |
| MS团队 | msteams-mcp/ | 自述文件 | Microsoft Teams帐户、Edge或Chrome |
| SharePoint | sharepoint-mcp/ | 自述文件 | SharePoint Online帐户、Edge浏览器或Chrome浏览器 |
常见设置步骤:
- 克隆此存储库
- 导航到要使用的MCP服务器文件夹
- 复制
.env.example到.env并填写您的凭据 - 复制
config.example.yaml到config.yaml并根据需要调整设置 - 安装依赖项:
pip install -e .(或使用pyproject.toml) - 在IDE中配置MCP服务器
mcp.json
对于基于Docker的依赖关系(例如,PerfMemory的PostgreSQL与pgvector+Apache AGE),请参阅 docker/docker-compose-windows.yaml 或 docker/docker-compose-mac.yaml.
______________________________________________________________________
🛣️ 未来路线图
即将推出:模式驱动架构
MCP Perf套件正在向 模式驱动架构 这实现了真正的模块化和可扩展性。核心原则: MCP之间的标准化数据契约确保添加新数据源不需要对下游消费者进行更改。
未来建筑愿景
┌─────────────────────────────────────────────────────────────────────────────┐
│ DATA SOURCES │
├─────────────────────────────────┬───────────────────────────────────────────┤
│ APM MCP │ Load Test MCP │
│ (replaces Datadog MCP) │ (replaces BlazeMeter MCP) │
│ │ │
│ ┌─────────────────────────┐ │ ┌─────────────────────────┐ │
│ │ Datadog Adapter │ │ │ BlazeMeter Adapter │ │
│ │ New Relic Adapter │ │ │ LoadRunner Adapter │ │
│ │ AppDynamics Adapter │ │ │ Gatling Adapter │ │
│ │ Dynatrace Adapter │ │ │ k6 Adapter │ │
│ │ Splunk APM Adapter │ │ │ Locust Adapter │ │
│ └──────────┬──────────────┘ │ └──────────┬──────────────┘ │
│ │ │ │ │
│ ▼ │ ▼ │
│ ┌─────────────────────────┐ │ ┌─────────────────────────┐ │
│ │ Standardized APM │ │ │ Standardized Load Test │ │
│ │ Output Schema │ │ │ Output Schema │ │
│ │ (metrics, logs, traces)│ │ │ (results, aggregates) │ │
│ └──────────┬──────────────┘ │ └──────────┬──────────────┘ │
├─────────────┴───────────────────┴───────────────┴───────────────────────────┤
│ │
│ STANDARDIZED SCHEMA LAYER │
│ (Source-agnostic data contracts / JSON & CSV schemas) │
│ │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────┐ │
│ │ Performance Analysis │ │
│ │ MCP │ │
│ │ (source-agnostic) │ │
│ └───────────┬─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Performance Report │ │
│ │ MCP │ │
│ │ (source-agnostic) │ │
│ └───────────┬─────────────┘ │
│ │ │
│ ┌──────────────┼──────────────┬──────────────┐ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌────────────┐ ┌──────────────┐ │
│ │Confluence│ │SharePoint│ │ MS Teams │ │ Other Output │ │
│ │ MCP │ │ MCP │ │ MCP │ │ Adapters │ │
│ └──────────┘ └──────────┘ └────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘主要优势
| 好处 | 说明 |
|---|---|
| 可扩展性 | 通过实现输出标准模式的适配器来添加新的APM工具或负载测试平台 |
| 松耦合 | 添加新数据源时,PerfAnalysis和PerfReport MCP保持不变 |
| 社区贡献 | 清晰的模式契约使贡献者能够轻松添加对其首选工具的支持 |
| 可维护性 | 对源API(例如Datadog v3)的更改只会影响其各自的适配器,而不会影响整个管道 |
计划里程碑
- \[ \] APM MCP服务器:通过适配器模块支持多个APM工具的统一入口点
- Datadog(当前实现已迁移为适配器) - New Relic适配器 - Dynatrace适配器 - AppDynamics适配器 - Splunk APM适配器
- \[ \] 负载测试MCP服务器:支持多种负载测试工具的统一入口点
- BlazeMeter(当前实现已迁移为适配器) - LoadRunner适配器 - Gatling适配器 - k6适配器 - 蝗虫适配器
- \[ \] 架构文档:用于数据交换的正式JSON/CSV模式规范
其他计划中的增强功能
- 增强 测试分析MCP服务器 利用OpenAI GPT或其他LLM进行增强的测试结果分析
- 添加测试结果日志分析,以识别潜在问题或瓶颈
- 继续完善 报告MCP服务器 根据测试分析数据生成易于执行的报告和仪表板
- 实现跨MCP服务器的无缝工作流编排,以实现全面的性能测试管道
______________________________________________________________________
🤝 贡献
欢迎投稿、想法和功能请求!请打开问题或创建拉取请求以进行协作。
______________________________________________________________________
📜 许可证
该项目根据MIT许可证获得许可。有关详细信息,请参阅LICENSE文件。
______________________________________________________________________
创建于❤️ 以实现由FastMCP和AI支持的下一代性能测试、分析和报告。
