🚨 事件分类工作室-AI驱动的DevOps助手
快速2 MCP黑客马拉松项目 -使用Archestra的MCP编排进行智能CI/CD事件分析
🎯 关于本项目
Incident Triage Studio是一个基于人工智能的DevOps助手,可以自动分析CI/CD故障,对严重程度进行分类,确定根本原因,并建议补救措施。使用模型上下文协议(MCP)构建,并通过Archestra平台编排。
问题陈述
DevOps团队浪费了宝贵的时间手动分析构建失败、部署错误和CI/CD日志。我们的解决方案使用具有专门MCP工具的AI代理自动化了这一分流过程。
解决方案
一个定制的MCP服务器,通过Archestra的编排层为AI代理提供智能日志分析功能,实现:
- 即时严重性分类 (临界/高/中/低)
- 自动根本原因检测 从错误日志中
- 基于上下文的补救建议
- 模拟集成有效载荷 GitHub问题和Slack警报
🏗️ 技术栈和架构
核心技术
- MCP-SDK:
@modelcontextprotocol/sdkv1.0.4 - 运行时:使用Express 4.19.2的Node.js 20+
- 运输:流式HTTP服务器传输(HTTP上的MCP)
- 部署:Docker+Docker组合
- 编排:Archestra平台
架构图
┌─────────────┐
│ User │
│ (DevOps) │
└──────┬──────┘
│
▼
┌─────────────────────┐
│ Archestra Agent │
│ (Gemini 2.0 Flash) │
└──────┬──────────────┘
│ MCP Protocol
▼
┌─────────────────────┐
│ Default Gateway │
│ (Tool Router) │
└──────┬──────────────┘
│
▼
┌─────────────────────────┐
│ Incident Triage Studio │
│ MCP Server │
│ ┌──────────────────┐ │
│ │ triage_incident │ │
│ │ Tool │ │
│ └──────────────────┘ │
│ │
│ • classifySeverity() │
│ • extractRootCause() │
│ • suggestActions() │
│ • buildGitHubIssue() │
│ • buildSlackAlert() │
└─────────────────────────┘🔧 Archestra如何为这个项目提供动力
1. MCP工具编排
- 自定义
triage_incident在Archestra的MCP服务器注册表中注册的工具 - 工具自动发现并分配给默认MCP网关
- 代理可以使用标准化的MCP协议调用该工具
2. 多模型支持
- 配置为与Gemini 2.0 Flash配合使用以进行工具调用
- Archestra处理模型路由和请求管理
- 未来:可以添加Claude、GPT-4或其他型号,而无需更改代码
3. 工具政策和护栏
- 工具策略:自动化DevOps工作流的“始终允许”
- Archestra强制管理哪些代理可以访问工具
- 所有工具调用的集中审计跟踪
4. 代理工具分配
- 工具分配给: 默认MCP网关→ AutoOps DevOps代理
- 为不同的DevOps任务启用专用代理
- 多代理工作流的可扩展架构
🚀 快速开始
先决条件
- Node.js 20+
- Docker(可选,用于生产部署)
安装
cd incident-triage-studio
npm install在本地运行
npm start
# Server runs on http://localhost:4100使用Docker进行部署
docker-compose up -d
# Access via http://localhost:4100部署到生产
选项1:渲染
- 将此仓库推送到GitHub
- 首选 render.com
- 从GitHub仓库创建新的Web服务
- 设置启动命令:
npm start - 部署
方案2:铁路
- 首选 railway应用程序
- 点击“新建项目”→ 从GitHub回购部署
- 选择此存储库
- Railway自动检测Node.js并部署
- 从仪表板获取部署URL
选项3:Vercel(推荐用于Fast 2 MCP)
步骤1:创建Vercel帐户
- 首选 vercel.com
- 使用GitHub帐户注册(推荐)
步骤2:安装Vercel CLI
npm install -g vercel步骤3:为Vercel配置
创建一个 vercel.json 根目录中的文件:
{
"name": "incident-triage-studio",
"version": 2,
"buildCommand": "npm install",
"env": {},
"functions": {
"mcp-server.js": {
"memory": 1024,
"maxDuration": 60
}
},
"public": true
}步骤4:更新Vercel的package.json
Vercel无服务器函数需要一个处理程序。创建 api/handler.js:
import { spawn } from "child_process";
export default async (req, res) => {
if (req.method === "POST" && req.url === "/mcp") {
// Forward MCP requests to local server
try {
const response = await fetch("http://localhost:4100/mcp", {
method: "POST",
headers: req.headers,
body: JSON.stringify(req.body),
});
const data = await response.json();
res.status(200).json(data);
} catch (error) {
res.status(500).json({ error: error.message });
}
} else if (req.url === "/health") {
res.status(200).json({ status: "ok" });
} else {
res.status(404).json({ error: "Not found" });
}
};步骤5:部署到Vercel
选项A-使用CLI(推荐):
# Login to Vercel
vercel login
# Deploy
vercel
# Follow prompts:
# - Link to existing project? No
# - What's your project's name? incident-triage-studio
# - In which directory is your code? ./
# - Want to modify vercel.json? No选项B-使用Git(自动):
# Push to GitHub
git push origin main
# Go to vercel.com → New Project → Import Git Repository
# Select your incident-triage-studio repo
# Vercel auto-deploys on every push步骤6:验证部署
- 部署后,您将获得一个URL,如下所示:
https://incident-triage-studio-abc123.vercel.app - 测试运行状况端点:
curl https://incident-triage-studio-abc123.vercel.app/health
# Expected: { "status": "ok" }- 测试MCP端点:
curl -X POST https://incident-triage-studio-abc123.vercel.app/mcp \
-H "Content-Type: application/json" \
-d '{"logText": "ERROR: Module not found"}'步骤7:获取部署URL
您提交黑客马拉松的公共URL:
https://incident-triage-studio-abc123.vercel.app复制此URL以用于:
- 黑客马拉松参赛表格
- Archestra配置
- README文档
健康检查
curl http://localhost:4100/health
# Expected response: { "status": "ok" }在Archestra中配置
- 添加MCP服务器:
- 姓名: Incident Triage Studio - 网址: http://host.docker.internal:4100/mcp - 运输: HTTP
- 分配给网关:
- 网关: Default MCP Gateway - 工具: triage_incident ✓
- 配置代理:
- 型号: Gemini 2.0 Flash - 系统提示:包括工具使用说明 - 工具政策: Allow always
📊 演示用法
示例输入
ERROR: Cannot find module 'express'
at Function.Module._resolveFilename
FAILED: Build process exited with code 1代理响应(通过Archestra)
{
"severity": "High",
"rootCause": "ERROR: Cannot find module 'express'",
"recommendation": "Install missing dependencies using npm install or yarn install",
"suggestedActions": [
"Run: npm install express --save",
"Verify package.json includes express in dependencies",
"Check for corrupted node_modules (delete and reinstall)"
],
"githubIssue": {
"title": "[High] Cannot find module 'express'",
"body": "Build failed due to missing dependency...",
"labels": ["bug", "high-priority", "dependencies"]
},
"slackAlert": {
"channel": "#devops-alerts",
"severity": "warning",
"message": "🔴 High severity incident detected..."
}
}✨ 特性
✅ 基于MCP:与Archestra编排合作\ ✅ 可观察对象:请参阅Archestra日志中的工具调用\ ✅ 安全:使用Archestra护栏\ ✅ 模拟集成:安全演示模式(没有真正的API调用)\ ✅ 生产就绪:Docker部署、健康检查、监控
🎓 学习与成长
主要学习内容
- MCP协议掌握:实现了自定义传输层和工具模式
- Archestra集成:学习平台的MCP编排模式
- 工具设计:为DevOps自动化创建了可重用、可组合的AI工具
- 生产准备就绪:Docker部署、健康检查、监控
未来的增强功能
- 真正的GitHub/Slack集成(OAuth工作流)
- 多存储库上下文感知
- 历史事件模式学习
- 自动修复工作流程(带审批门)
📁 项目结构
incident-triage-studio/
├── mcp-server.js # Main MCP server implementation
├── package.json # Dependencies & scripts
├── package-lock.json # Locked dependency versions
├── Dockerfile # Container image
├── docker-compose.yml # Docker compose orchestration
├── archestra-config.json # MCP server metadata for Archestra
├── LICENSE # MIT License
├── README.md # This file
├── HACKATHON-SUBMISSION.md # Submission form template
├── VIDEO-SCRIPT.md # Video demo script
└── public/ # Frontend UI files
├── index.html
├── app.js
└── styles.css🏆 为什么这个项目脱颖而出
- 解决实际问题DevOps团队每天都在努力进行日志分析
- 利用Archestra:完整的MCP编排、网关路由、工具策略
- 生产就绪:Docker部署、健康检查、错误处理
- 可扩展:易于添加新工具(部署、回滚、扩展)
- 演示友好:明确的输入/输出,可见的人工智能决策
工具
triage_incident
输入:
logText(string):CI/CD日志或错误输出
输出:
- 严重程度分类
- 根本原因提取
- 推荐操作
- 模拟GitHub问题负载
- 模拟Slack警报有效载荷
🔧 故障排除
服务器无法启动
# Check port 4100 is available
lsof -i :4100
# Kill process if needed: kill -9
未找到模块错误
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm installDocker构建失败
# Clear Docker cache and rebuild
docker-compose down
docker system prune -f
docker-compose up -d --build健康检查返回错误
- 确保服务器启动时没有错误
- 检查
npm start堆栈跟踪输出 - 验证Node.js版本>=20
📝 许可证
麻省理工学院许可证-专为2026年快速2 MCP黑客马拉松而打造
👤 作者
帕拉斯·贾格代尔
- 电子邮件:parasjagdale15@gmail.com
- 项目:事件分类工作室
- 平台:Archestra MCP编排
______________________________________________________________________
黑客马拉松提交:快速2 MCP\ 类别:DevOps自动化\ Archestra使用: ✅ 满足强制性要求
工具
triage_incident
输入:
logText(string):CI/CD日志或错误输出
输出:
- 严重程度分类
- 根本原因提取
- 推荐操作
- 模拟GitHub问题负载
- 模拟Slack警报有效载荷
下一步(可选增强功能)
- 添加真正的GitHub API集成
- 添加真正的Slack webhook
- 添加历史事件跟踪
- 将报告导出为PDF/Markdown
______________________________________________________________________
为黑客而建2026年2月\ 使用Archestra MCP编排
