测试分析MCP服务器

一个基于Python的MCP服务器,用于分析MicroShift测试失败,提供从Google表格中提取数据并分析测试失败与MicroShift版本关联的工具。

  • by kasturinarra
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kasturinarra/mcp-test-scenarios-server

使用说明

MicroShift测试分析仪MCP服务器

基于Python的MCP(模型上下文协议)服务器,用于分析Google表格中的MicroShift测试失败,提供将测试失败与MicroShift版本相关联的专用工具。

特性

  • 按版本列出的失败管道:获取按MicroShift版本分组的失败测试管道
  • 故障总结:获取所有版本测试失败的汇总统计数据
  • 管道故障趋势:分析特定测试管道随时间推移的故障趋势
  • 搜索失败原因:在所有测试中搜索特定的失败原因
  • 版本比较:比较不同MicroShift版本之间的测试结果
  • 实时数据:直接从Google表格中获取数据

设置

1.安装依赖项

pip install -r requirements.txt

2.Google Sheets API设置

选项A:服务帐户(推荐)

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用Google Sheets API
  4. 创建服务帐户:
    • 转到IAM和管理>服务帐户
    • 点击“创建服务帐户”
    • 填写详细信息并单击“创建”
    • 暂时跳过角色分配
    • 点击“完成”
  5. 为服务帐户生成密钥:
    • 点击已创建的服务帐户
    • 转到“密钥”选项卡
    • 点击“添加密钥”>“创建新密钥”
    • 选择JSON格式
    • 下载文件并安全保存
  6. 通过服务帐户电子邮件共享您的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读取。如果你需要改变这一点:

  1. 打开 server.py
  2. 查找 SPREADSHEET_ID 文件顶部附近的常数
  3. 用您的电子表格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是否与您的实际电子表格匹配

常见错误消息

  • “无可用数据”:电子表格为空或解析失败
  • “凭据无效”:服务帐户身份验证失败
  • “权限被拒绝”:服务帐户无法访问电子表格
  • “列索引超出范围”:电子表格结构与预期格式不匹配

API示例

使用curl直接测试服务器