MCP代理:基于AI的构建失败分析
一个使用AI自动分析构建失败的Jenkins插件(Claude通过AWS Bedrock)。它并行运行4个MCP代理,从Jenkins、BitBucket、Kubernetes和JFrog收集上下文,然后生成全面的根本原因分析报告。
建筑
混合Java+Go设计:
- Java层 (约500行):用于UI、配置和子流程管理的瘦Jenkins插件包装器
- 去二进制 (约3000行):用于AI处理、并行MCP代理和报告生成的高性能核心
Jenkins Build Fails
│
▼
Java Plugin (post-build action)
│
▼ subprocess call
Go Binary
├── Fetch console logs
├── Parse errors, stages, repos
├── Run 4 MCP agents in parallel:
│ ├── Jenkins (stages, agent metrics)
│ ├── BitBucket (commits, CODEOWNERS)
│ ├── Kubernetes (pods, OOM, events)
│ └── JFrog (artifact availability)
├── Cross-correlate findings
├── Claude AI analysis (AWS Bedrock)
├── Generate HTML report
├── Create Jira ticket (async)
└── Send email notification (async)演出
| 度量 | 值 |
|---|---|
| 内存 | 每次分析20-30MB |
| 启动 | \ 管理插件 -> 高级 |
- 上传
.hpi“部署插件”下的文件 - 重新启动Jenkins
配置
首选 管理 Jenkins -> 配置系统 -> MCP代理 部分。
必需设置
- AWS Bedrock:区域、型号ID、AWS配置文件(用于身份验证)
- 比特桶:服务器URL、凭据
- Jira:服务器URL、凭据、项目密钥
可选设置
- Kubernetes:API服务器URL、身份验证令牌、命名空间
- JFrog:人工URL、凭据
- 电子邮件/SMTP:通知的邮件服务器设置
- 团队映射:JSON将存储库名称映射到团队经理
团队映射示例
{
"payments": {"name": "Payments Team Lead", "email": "payments-lead@example.com", "jiraUsername": "payments-lead"},
"orders": {"name": "Orders Team Lead", "email": "orders-lead@example.com", "jiraUsername": "orders-lead"}
}用法
申报管道
pipeline {
agent any
stages {
stage('Build') {
steps { sh 'mvn clean package' }
}
}
post {
failure {
mcpAnalyze()
}
}
}使用存储库配置
post {
failure {
mcpAnalyze(
repositories: [
[name: 'payments', workspace: 'myproject', branch: env.GIT_BRANCH],
[name: 'orders', workspace: 'myproject', branch: env.GIT_BRANCH]
]
)
}
}自由式项目
- 打开作业配置
- 添加构建后操作: MCP代理:基于AI的故障分析
- 可选配置存储库列表
- 保存
所得
当构建失败时:
- 控制台输出 显示分析ID和结果URL
- 侧边栏链接 “AI分析”出现在构建页面上
- 分析报告 与:
- 故障类别和根本原因总结 - 有证据的详细解释 - 责任团队识别 - 可采取的下一步行动
- Jira门票 创建并分配给责任团队
- 电子邮件通知 随HTML报告一起发送
从源头构建
先决条件
- JDK 11+
- Maven 3.8+
- 转到1.21+
构建
# Build Go binaries for all platforms
cd go-binary
./build.sh
# Build Jenkins plugin
cd ..
mvn clean package这 .hpi 文件将在 target/mcp-agent.hpi.
故障排除
- “找不到Go二进制文件”:确保二进制文件在
src/main/resources/binaries/ - 分析停留在“待定”状态:检查Jenkins系统日志中的Go二进制错误
- AWS身份验证失败:验证AWS配置文件或实例角色配置
- Jira票证未创建:检查全局配置中的Jira凭据和项目密钥
许可证
MIT许可证
