QA自动化服务器

一个基于AI的QA自动化服务器,集成Jira、GitHub、Jenkins、AWS和Webex,为QA工程师提供统一接口。

  • by DwonnG
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 DwonnG/qa-mcp-server

使用说明

QA MCP服务器

基于AI的QA自动化服务器 模型上下文协议(MCP)将Jira、GitHub、Jenkins、AWS和Webex集成到QA工程师的统一界面中。

工具目录: dwonng.github.io/qa-mcp服务器 --自动生成自 @mcp.tool() 室内装饰师 qa_mcp/server.py 每一次推动 main.

特征

Jira集成

  • 查找已准备好进行QA或正在进行中的工单
  • 申领验证票(分配+设置验证器+更新状态)
  • 用格式化的注释将票标记为通过/失败
  • 根据工单描述生成AI驱动的测试用例
  • 总结评论线索
  • 分析故事和史诗,为QA做好准备

GitHub集成

  • 查找与Jira门票相关的PR
  • 检查PR合并状态并提交详细信息
  • 测试前验证代码更改

Jenkins集成

  • 检查E2E测试结果
  • 使用自定义参数构建触发器
  • 监控构建历史记录
  • 等待构建并用结果更新PR描述

AWS集成

  • 通过上次修改的时间戳验证Lambda部署
  • 比较跨环境的部署
  • 测试前确认代码已部署

Webex集成

  • 列出并阅读Webex会议室中的消息
  • 搜索关于特定主题的讨论
  • 发布更新和通知
  • 人工智能驱动的对话摘要

快速开始

先决条件

  • Python 3.11+
  • Docker(推荐)或本地Python环境
  • 要使用的服务的API令牌

快速安装(预构建映像)

添加到MCP配置(~/.cursor/mcp.json):

{
  "mcpServers": {
    "qa-automation": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "JIRA_URL=https://your-jira.atlassian.net",
        "-e", "JIRA_PERSONAL_TOKEN=your_token",
        "-e", "GITHUB_TOKEN=ghp_your_token",
        "ghcr.io/dwonng/qa-mcp-server:latest"
      ]
    }
  }
}

完整安装

  1. 克隆存储库

    git clone https://github.com/DwonnG/qa-mcp-server.git
    cd qa-mcp-server
    
  2. 创建您的配置

    cp config_example.py config.py
    # Edit config.py with your Jira field IDs, Jenkins paths, etc.
    
  3. 添加到您的MCP客户端 所有集成:

    {
      "mcpServers": {
        "qa-automation": {
          "command": "docker",
          "args": [
            "run", "-i", "--rm",
            "-e", "JIRA_URL=https://your-jira.atlassian.net",
            "-e", "JIRA_PERSONAL_TOKEN=your_token",
            "-e", "GITHUB_HOST=https://api.github.com",
            "-e", "GITHUB_TOKEN=ghp_your_token",
            "-e", "JENKINS_URL=https://your-jenkins.com",
            "-e", "JENKINS_USER=your_user",
            "-e", "JENKINS_TOKEN=your_token",
            "-e", "AWS_REGION=us-east-1",
            "-e", "WEBEX_TOKEN=your_webex_token",
            "-v", "$HOME/.aws:/root/.aws:ro",
            "-v", "$HOME/.config/qa-mcp-server/config.py:/app/config.py:ro",
            "ghcr.io/dwonng/qa-mcp-server:latest"
          ]
        }
      }
    }
    

注: 安装您的 config.py 用于自定义JQL模板、字段映射和Jenkins作业路径。

本地开发

# Create virtual environment
python -m venv venv
source venv/bin/activate  # or `venv\Scripts\activate` on Windows

# Install dependencies
pip install -r requirements.txt

# Run the server
python run.py

配置

config.py

此文件包含特定于组织的设置:

设置 说明
JIRA_FIELDS Jira实例的自定义字段ID
JIRA_TRANSITIONS 工作流转换ID
REPO_LAMBDA_MAP 将仓库映射到Lambda函数名称
JENKINS_JOBS Jenkins作业路径
JQL_TEMPLATES JQL查询模板
RELEASE_TESTING 用于发布测试克隆的Epic密钥模板

看 config_example.py 对于带有文档的模板。

环境变量

变量 必填 描述
JIRA_URL 是 您的Jira实例URL
JIRA_PERSONAL_TOKEN 是 Jira API令牌或PAT
JIRA_VERIFY_SSL 否 设置为 false 用于自签名证书
GITHUB_HOST 否 GitHub API URL(默认:API.GitHub.com)
GITHUB_TOKEN 是 GitHub个人访问令牌
JENKINS_URL 是* Jenkins服务器URL
JENKINS_USER 是* Jenkins用户名
JENKINS_TOKEN 是* Jenkins API令牌
AWS_REGION 否 AWS区域(默认:us-east-1)
WEBEX_TOKEN 否 Webex机器人或个人令牌

*仅在使用Jenkins功能时才需要

可用工具

Jira工具

  • qa_get_qa_queue -查找QA队列中等待测试的工单
  • qa_find_in_progress -查找开发人员正在开发的门票
  • qa_claim_ticket -申请QA验证票
  • qa_resolve_pass -将票标记为QA通过
  • qa_fail_ticket -将票证标记为QA失败,并显示错误报告
  • qa_add_comment -为任何工单添加评论
  • qa_generate_test_cases -AI生成的测试用例
  • qa_summarize_comments -总结票务评论
  • qa_analyze_story -分析QA准备情况
  • qa_analyze_epic -分析史诗的发布准备情况
  • qa_clone_release_epic -克隆发布测试模板Epic和新版本的任务

GitHub工具

  • qa_get_pr_info -获取PR详细信息
  • qa_find_prs_for_ticket -查找与Jira票证链接的PR
  • qa_find_pr_for_commit -查找引入承诺的PR

Jenkins工具

  • qa_check_e2e_tests -检查E2E测试结果
  • qa_get_recent_builds -获取构建历史记录
  • qa_trigger_e2e_tests -触发测试构建
  • qa_get_my_test_builds -查看您的Jenkins测试构建
  • qa_wait_for_build_and_update_pr -等待构建和更新PR

AWS工具

  • qa_check_deployment -验证Lambda部署
  • qa_check_all_deployments -检查所有Lambdas以获取回购
  • qa_compare_environments -比较跨envs的部署
  • qa_get_deployment_summary -格式化部署状态

Webex工具

  • webex_list_rooms -列出可访问的Webex会议室
  • webex_get_messages -阅读来自房间的消息
  • webex_summarize_room -AI对话总结
  • webex_post_message -发布消息
  • webex_search_messages -搜索邮件

工作流工具

  • qa_get_ticket_context -全上下文(Jira+PR+部署)
  • qa_verify_vulnerability_resolved -验证vuln修复:查找PR、检查合并、验证部署、检查测试、解决票证
  • qa_verify_and_resolve_vulnerability -一键式漏洞验证

1分钟演示

看 演示1_分钟.md 对于一个1分钟的脚本演示:查找现成的票→ 获取详细信息→ AI测试用例(可选:索赔单)。

示例用法

You: "Are there any tickets ready for QA?"
AI: Found 3 tickets in QA status...

You: "Claim PROJ-12345 for QA"
AI: Claimed! Assigned to you, validator set, status updated to In Progress.

You: "Check if the PR for PROJ-12345 is merged and deployed"
AI: PR #456 merged 2 hours ago. Lambda last modified 1 hour ago. Deployed!

You: "Mark PROJ-12345 as passed - verified login flow works correctly"
AI: Resolved as passed with QA comment added.

You: "Clone the release testing template for version 3.3.0"
AI: Created new Epic O365-50500 "Release 3.3.0 Testing" with 8 test tasks cloned.

项目结构

qa-mcp-server/
├── run.py                    # Entry point
├── config.py                 # Your settings (git-ignored)
├── config_example.py         # Settings template
├── requirements.txt          # Dependencies
├── Dockerfile               
├── README.md
├── LICENSE
│
├── qa_mcp/                   # Main package
│   ├── __init__.py
│   ├── server.py             # MCP server with all tools
│   ├── handlers.py           # AI analysis handlers
│   ├── prompts.py            # AI prompt templates
│   │
│   └── clients/              # Service integrations
│       ├── __init__.py
│       ├── jira.py
│       ├── github.py
│       ├── jenkins.py
│       ├── aws.py
│       ├── webex.py
│       └── ai.py
│
└── examples/                 # Configuration examples
    ├── env.example           # Environment variables template
    └── mcp_config.json       # MCP client config example

建筑

┌─────────────────────────────────────────────────────────────┐
│                      MCP Client                              │
│                 (Cursor, Claude Desktop)                     │
└─────────────────────────┬───────────────────────────────────┘
                          │ MCP Protocol
┌─────────────────────────▼───────────────────────────────────┐
│                    QA MCP Server                             │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐    │
│  │  Jira    │  │  GitHub  │  │ Jenkins  │  │   AWS    │    │
│  │  Client  │  │  Client  │  │  Client  │  │  Client  │    │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬─────┘    │
│       │             │             │             │           │
│  ┌────▼─────────────▼─────────────▼─────────────▼────┐     │
│  │                   config.py                        │     │
│  │         (Organization-specific settings)           │     │
│  └────────────────────────────────────────────────────┘     │
└─────────────────────────────────────────────────────────────┘

路线图

v1.1-模块化集成

  • []启用/禁用集成的功能标志(Webex、Jenkins、AWS)
  • []仅注册配置服务的MCP工具
  • []未配置可选服务时处理得当

v1.2-灵活的Jira支持

  • []将自定义字段(验证器、test_result)设置为可选
  • []支持Jira Cloud和Jira服务器/数据中心
  • []可配置的工作流转换(不是硬编码的ID)

v1.3-CI/CD摘要

  • []抽象CI/CD接口(不仅仅是Jenkins)
  • []GitHub操作支持
  • []GitLab CI支持

v1.4-部署验证

  • []抽象部署检查器(不仅仅是AWS Lambda)
  • []Kubernetes部署状态
  • []通用健康检查端点

v1.5-测试和质量

  • []客户单元测试
  • []集成测试示例
  • []项目本身的CI管道

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

致谢

  • 内置于 FastMCP
  • 受到自动化重复QA任务需求的启发
  • 感谢MCP社区提供协议规范