MicroShift测试分析仪MCP服务器
基于Python的MCP(模型上下文协议)服务器,用于分析Google表格中的MicroShift测试失败,提供将测试失败与MicroShift版本相关联的专用工具。
特性
- 按版本列出的失败管道:获取按MicroShift版本分组的失败测试管道
- 故障总结:获取所有版本测试失败的汇总统计数据
- 管道故障趋势:分析特定测试管道随时间推移的故障趋势
- 搜索失败原因:在所有测试中搜索特定的失败原因
- 版本比较:比较不同MicroShift版本之间的测试结果
- 实时数据:直接从Google表格中获取数据
设置
1.安装依赖项
pip install -r requirements.txt2.Google Sheets API设置
选项A:服务帐户(推荐)
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 启用Google Sheets API
- 创建服务帐户:
- 转到IAM和管理>服务帐户 - 点击“创建服务帐户” - 填写详细信息并单击“创建” - 暂时跳过角色分配 - 点击“完成”
- 为服务帐户生成密钥:
- 点击已创建的服务帐户 - 转到“密钥”选项卡 - 点击“添加密钥”>“创建新密钥” - 选择JSON格式 - 下载文件并安全保存
- 通过服务帐户电子邮件共享您的Google表格:
- 打开你的谷歌表格 - 点击“分享” - 添加服务帐户电子邮件(在JSON文件中为 client_email) - 授予它“查看器”权限
3.配置环境变量
复制示例环境文件:
cp env.example .env编辑 .env 并使用服务帐户JSON文件中的值设置您的Google凭据:
GOOGLE_CLIENT_EMAIL=your-service-account@your-project.iam.gserviceaccount.com
GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nYour private key content\n-----END PRIVATE KEY-----\n"备注:复制 client_email 和 private_key 直接从下载的JSON文件中获取值。确保在私钥周围包含引号,并保留 \n 字符。
4.更新电子表格配置
服务器当前配置为从您提供的URL中的电子表格ID读取。如果你需要改变这一点:
- 打开
server.py - 查找
SPREADSHEET_ID文件顶部附近的常数 - 用您的电子表格ID替换它
您可能还需要在 get_sheets_data() 函数(当前设置为 '2025_06!A:ZZ').
用法
运行服务器
python server.py服务器将启动并通过stdio监听MCP连接。
发展模式
python server.py可用工具
MCP服务器为MicroShift测试分析提供以下专用工具:
1. get_failed_pipelines_by_version
获取按MicroShift版本分组的失败测试管道。
参数:
version(可选):要过滤的特定MicroShift版本limit(可选):返回的最大结果数(默认值:50)
2. get_failure_summary
获取所有MicroShift版本的测试失败摘要。
参数:
group_by(可选):按“版本”、“管道”或“原因”对故障进行分组(默认值:“版本”)
3. get_pipeline_failure_trends
分析特定测试管道随时间推移的故障趋势。
参数:
pipeline_name(可选):要分析的测试管道的名称days(可选):回顾的天数(默认值:30)
4. search_failure_reasons
在所有测试中搜索特定的失败原因。
参数:
search_term(必填):查找失败原因的搜索词version(可选):按特定MicroShift版本过滤
5. get_version_comparison
比较不同MicroShift版本之间的测试结果。
参数:
version1(必填):要比较的第一个MicroShift版本version2(必填):要比较的第二个MicroShift版本
电子表格格式
服务器希望您的Google Sheet具有以下列结构:
- A列:日期(例如,“2025年6月21日_04:52:27”)
- B列:ID(例如“1233”)
- C栏:MICROSHIFT_TARGET(例如,“4.18.0~0.night”)
- D栏:BREW_VERSION(例如,“微动-4.18.0~0.夜间_2025_06_20_030312…”)
- E栏:MicroShift版本(例如“4.18.0~0.夜间”)
- F列+:使用多行格式构建图像和测试管道,其中包含:
- 架构(x86_64、aarch64、x86) - 测试类型(安装、升级等) - 框架(RobotFramework、Ginkgo) - 状态(成功、失败) - 故障原因(如果状态为Failure)
与MCP客户端集成
此服务器遵循官方 MCP Python SDK 图案使用 FastMCP。它可以与任何兼容MCP的客户端一起使用,如Claude for Desktop。
Claude用于桌面配置
将此添加到您的Claude Desktop配置文件中(~/Library/Application Support/Claude/claude_desktop_config.json 在 macOS 上:
{
"mcpServers": {
"microshift-test-analyzer": {
"command": "python",
"args": ["/absolute/path/to/mcp-test-scenarios-server/server.py"],
"cwd": "/absolute/path/to/mcp-test-scenarios-server"
}
}
}示例用法
连接到Claude for Desktop后,您可以提出以下问题:
- “MicroShift 4.18.0版本的哪些测试管道失败了?”
- “显示与‘ssh连接失败’相关的所有故障”
- “比较4.18.0和4.17.0版本之间的测试结果”
- “rpm升级管道的故障趋势是什么?”
- “给我一份按原因分组的所有测试失败的摘要”
故障排除
身份验证问题
- 确保您的
GOOGLE_CLIENT_EMAIL和GOOGLE_PRIVATE_KEY环境变量设置正确 - 验证服务帐户是否可以访问Google表格
- 检查Google Sheets API是否已在您的Google Cloud项目中启用
- 确保私钥格式正确(包括\\n个字符)
数据解析问题
- 验证电子表格是否遵循预期的列结构
- 确保管道数据的格式带有分隔不同组件的适当换行符
- 检查状态值是否为以下值之一:成功、失败、失败、通过、通过
服务器连接问题
- 确保MCP配置中的服务器脚本路径正确
- 验证是否安装了所有必需的Python依赖项
- 检查服务器代码中的Google表格ID是否与您的实际电子表格匹配
常见错误消息
- “无可用数据”:电子表格为空或解析失败
- “凭据无效”:服务帐户身份验证失败
- “权限被拒绝”:服务帐户无法访问电子表格
- “列索引超出范围”:电子表格结构与预期格式不匹配
