使用说明
代理CI/CD MCP编排器
用于GitHub Actions故障诊断、LLM驱动的统一差异自动修复PR创建和受控发布编排的Python MCP服务器。
这提供了什么
- MCP工具使用提交、日志和测试信号检查失败的工作流运行。
- OpenAI支持的LLM诊断流程
gpt-4o-mini. - 治理层自动修复低风险问题,并要求对有风险的更改进行人工审查。
- 使用统一的差异补丁的通用模型驱动修复循环(最多3次尝试)。
- GitHub Actions用于CI、修复编排和发布策略门控的工作流。
项目布局
mcp_server/main.py-MCP工具和编排入口点mcp_server/host_http.py-用于浏览器客户端的可流式HTTP MCP服务器mcp_server/run_repair.py-工作流安全命令运行器frontend/-Vite+React MCP客户端用户界面mcp_server/config.py-类型化环境配置mcp_server/tools/*-GitHub、诊断、风险和公关自动化模块.github/workflows/*-CI/CD自动化工作流程
设置
- 创建并激活虚拟环境。
- 安装依赖项:
pip install -r requirements.txt
- 复制环境默认值:
cp .env.example .env(或创建.env在Windows上手动)
- 填写必填值(
OPENAI_API_KEY,GITHUB_TOKEN).
在本地运行MCP服务器
- stdio(光标/克劳德桌面):
python -m mcp_server.main
Web UI(浏览器MCP客户端+托管服务器)
这 frontend 该应用程序是一个使用流式HTTP的真正MCP客户端。秘密留在服务器上;浏览器只讲MCP。
-
终端A——基于HTTP的MCP (来自repo根目录,带有
.env已配置):python -m mcp_server.host_http收听
0.0.0.0和PORT从环境中(Render设置此设置)。路径:/mcp. -
终端B——SPA开发服务器:
cd frontend npm install cp .env.example .env npm run dev配置
frontend/.env:VITE_MCP_URL是MCP端点(默认值http://127.0.0.1:8000/mcp).它预填充UI并设置Vite-dev代理目标源。清除字段以使用相同的原点/mcp(由该来源代理)。 -
打开Vite URL(通常
http://localhost:5173).
生产CORS: 浏览器发送 Origin 头球MCP服务器必须允许它或飞行前(OPTIONS)失败(通常表现为 获取失败).
- 集
MCP_CORS_ORIGINS以逗号分隔的列表 精确 SPA起源(例如https://your-frontend.onrender.com). - 或设置
MCP_CORS_ORIGIN_REGEX(例如https://.*\.onrender\.com)允许所有Render应用程序URL不列出每个URL(更严格的正则表达式更适合生产)。
渲染(两项服务): 应运行一个Web服务 python -m mcp_server.host_http (MCP API)。第二个服务或静态站点可以为已建成的SPA提供服务(npm run build 输出)。集 VITE_MCP_URL 在 前端构建时间 到 MCP服务URL (例如 https://your-mcp-api.onrender.com/mcp),而不是静态站点URL,除非您使用同时挂载两者的反向代理。如果你只跑步 vite preview 在渲染时,该过程会 不 公开Python MCP服务器-- /mcp 不会在那里工作。
GET/mcp→ 406 在日志中通常意味着有打开的东西 /mcp 在普通浏览器选项卡中(错误 Accept 头球MCP客户端使用POST/SSE,不受影响。
暴露的MCP工具: resolve_latest_failed_run, inspect_pipeline_failure, orchestrate_autofix (行为与CLI相同 resolve_latest_failed_run 匹配 run_repair 当 RUN_ID 省略)。
客户端超时: MCP TypeScript SDK默认为 60秒 根据请求。 orchestrate_autofix 通常运行时间更长(LLM、GitHub)。SPA使用 15分钟 为了 orchestrate_autofix 和 2分钟 为了 resolve_latest_failed_run 除非你设置 VITE_MCP_ORCHESTRATE_TIMEOUT_MS / VITE_MCP_RESOLVE_TIMEOUT_MS 在 frontend/.env (毫秒)。
在游标中用作MCP
- MCP配置包含在
.cursor/mcp.json. - 重新启动Cursor,使其加载MCP服务器定义。
- 确保您的
.env有OPENAI_API_KEY和GITHUB_TOKEN. - 在Cursor聊天中,从调用工具
agentic-cicd-orchestrator与:repository:owner/reporun_id:工作流运行id(整数)
- 主要工具:
inspect_pipeline_failureresolve_latest_failed_runorchestrate_autofix
手动运行修复编排
- 集
REPOSITORY(例如org/repo). - 可选:
RUN_ID(如果省略,则自动选择最近一次失败的运行)WORKFLOW_NAME(按工作流名称筛选最近失败的运行,例如。ci)BASE_BRANCH(默认值main)
- 执行:
python -m mcp_server.run_repair
LLM汽车维修控制
MAX_REPAIR_ATTEMPTS-补丁生成/应用程序重试次数(默认值3).PATCH_STRATEGY-模型中应有的补丁格式(必须是unified_diff).LLM_PATCH_MAX_CHARS-补丁有效载荷大小的上限。
治理模式
risk_score < RISK_AUTO_FIX_THRESHOLD->自动修复PR路径。RISK_AUTO_FIX_THRESHOLD <= risk_score < RISK_HUMAN_REVIEW_THRESHOLD->需要人类批准。risk_score >= RISK_HUMAN_REVIEW_THRESHOLD或高风险文件类别->阻止/仅查看路径。FORCE_AUTOFIX_ALL=true->绕过阈值并强制自动修复路径(危险;仅在受控测试中使用)。
安全说明
- 使用最低权限GitHub凭据。
- 将生产部署凭据与自动修复标识分开。
- 在生产中启用自动合并之前,审查生成的PR和审计工件。