使用说明
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"
]
}
}
}
完整安装
-
克隆存储库
git clone https://github.com/DwonnG/qa-mcp-server.git cd qa-mcp-server -
创建您的配置
cp config_example.py config.py # Edit config.py with your Jira field IDs, Jenkins paths, etc. -
添加到您的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票证链接的PRqa_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管道
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
致谢
- 内置于 FastMCP
- 受到自动化重复QA任务需求的启发
- 感谢MCP社区提供协议规范
