Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Agentic CI/CD Orchestrator

БесплатноНе проверен

An MCP server that diagnoses GitHub Actions workflow failures and automatically creates repair pull requests using LLM-generated unified diffs. It includes a go

GitHubEmbed

Описание

An MCP server that diagnoses GitHub Actions workflow failures and automatically creates repair pull requests using LLM-generated unified diffs. It includes a governance layer to orchestrate autonomous fixes or human-reviewed repairs based on risk assessment thresholds.

README

Python MCP server for GitHub Actions failure diagnosis, LLM-driven unified-diff auto-repair PR creation, and governed release orchestration.

What this provides

  • MCP tooling to inspect failed workflow runs using commit, logs, and test signals.
  • LLM diagnosis flow powered by OpenAI gpt-4o-mini.
  • Governance layer to auto-fix low-risk issues and require human review for risky changes.
  • Generic model-driven repair loop (up to 3 attempts) using unified diff patches.
  • GitHub Actions workflows for CI, repair orchestration, and release policy gating.

Project layout

  • mcp_server/main.py - MCP tools and orchestration entrypoints
  • mcp_server/host_http.py - streamable HTTP MCP server for browser clients
  • mcp_server/run_repair.py - workflow-safe command runner
  • frontend/ - Vite + React MCP client UI
  • mcp_server/config.py - typed environment config
  • mcp_server/tools/* - GitHub, diagnosis, risk, and PR automation modules
  • .github/workflows/* - CI/CD automation workflows

Setup

  1. Create and activate a virtual environment.
  2. Install dependencies:
    • pip install -r requirements.txt
  3. Copy environment defaults:
    • cp .env.example .env (or create .env manually on Windows)
  4. Fill in required values (OPENAI_API_KEY, GITHUB_TOKEN).

Run MCP server locally

  • stdio (Cursor / Claude Desktop): python -m mcp_server.main

Web UI (browser MCP client + hosted server)

The frontend app is a real MCP client using streamable HTTP. Secrets stay on the server; the browser only talks MCP.

  1. Terminal A — MCP over HTTP (from repo root, with .env configured):

    python -m mcp_server.host_http
    

    Listens on 0.0.0.0 and PORT from the environment (Render sets this). Path: /mcp.

  2. Terminal B — SPA dev server:

    cd frontend
    npm install
    cp .env.example .env
    npm run dev
    

    Configure frontend/.env: VITE_MCP_URL is the MCP endpoint (default http://127.0.0.1:8000/mcp). It pre-fills the UI and sets the Vite dev proxy target origin. Clear the field to use same-origin /mcp (proxied to that origin).

  3. Open the Vite URL (usually http://localhost:5173).

Production CORS: the browser sends an Origin header; the MCP server must allow it or preflight (OPTIONS) fails (often surfaced as Failed to fetch).

  • Set MCP_CORS_ORIGINS to a comma-separated list of exact SPA origins (for example https://your-frontend.onrender.com).
  • Or set MCP_CORS_ORIGIN_REGEX (for example https://.*\.onrender\.com) to allow all Render app URLs without listing each one (tighter regex is better for production).

Render (two services): one Web Service should run python -m mcp_server.host_http (the MCP API). A second service or Static Site can serve the built SPA (npm run build output). Set VITE_MCP_URL at frontend build time to the MCP service URL (for example https://your-mcp-api.onrender.com/mcp), not the static site URL, unless you use a reverse proxy that mounts both. If you only run vite preview on Render, that process does not expose the Python MCP server — /mcp will not work there.

GET /mcp → 406 in logs usually means something opened /mcp in a normal browser tab (wrong Accept header); the MCP client uses POST/SSE and is unaffected.

MCP tools exposed: resolve_latest_failed_run, inspect_pipeline_failure, orchestrate_autofix (same behavior as the CLI, with resolve_latest_failed_run matching run_repair when RUN_ID is omitted).

Client timeouts: The MCP TypeScript SDK defaults to 60 seconds per request. orchestrate_autofix often runs longer (LLMs, GitHub). The SPA uses 15 minutes for orchestrate_autofix and 2 minutes for resolve_latest_failed_run unless you set VITE_MCP_ORCHESTRATE_TIMEOUT_MS / VITE_MCP_RESOLVE_TIMEOUT_MS in frontend/.env (milliseconds).

Use in Cursor as MCP

  • MCP config is included at .cursor/mcp.json.
  • Restart Cursor so it loads the MCP server definition.
  • Ensure your .env has OPENAI_API_KEY and GITHUB_TOKEN.
  • In Cursor chat, call tools from agentic-cicd-orchestrator with:
    • repository: owner/repo
    • run_id: workflow run id (integer)
  • Main tools:
    • inspect_pipeline_failure
    • resolve_latest_failed_run
    • orchestrate_autofix

Run repair orchestration manually

  • Set REPOSITORY (for example org/repo).
  • Optional:
    • RUN_ID (if omitted, latest failed run is auto-selected)
    • WORKFLOW_NAME (filter latest failed run by workflow name, e.g. ci)
    • BASE_BRANCH (default main)
  • Execute: python -m mcp_server.run_repair

LLM auto-repair controls

  • MAX_REPAIR_ATTEMPTS - number of patch generation/application retries (default 3).
  • PATCH_STRATEGY - patch format expected from model (must be unified_diff).
  • LLM_PATCH_MAX_CHARS - upper bound on patch payload size.

Governance model

  • risk_score < RISK_AUTO_FIX_THRESHOLD -> autonomous auto-fix PR path.
  • RISK_AUTO_FIX_THRESHOLD <= risk_score < RISK_HUMAN_REVIEW_THRESHOLD -> human approval required.
  • risk_score >= RISK_HUMAN_REVIEW_THRESHOLD or high-risk file categories -> blocked/review-only path.
  • FORCE_AUTOFIX_ALL=true -> bypass thresholds and force auto-fix path (dangerous; use only in controlled testing).

Security notes

  • Use least-privilege GitHub credentials.
  • Keep production deployment credentials separate from auto-repair identity.
  • Review generated PRs and audit artifacts before enabling automerge in production.

from github.com/Siddharth-Basale/mcpserver

Установка Agentic CI/CD Orchestrator

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/Siddharth-Basale/mcpserver

FAQ

Agentic CI/CD Orchestrator MCP бесплатный?

Да, Agentic CI/CD Orchestrator MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Agentic CI/CD Orchestrator?

Нет, Agentic CI/CD Orchestrator работает без API-ключей и переменных окружения.

Agentic CI/CD Orchestrator — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Agentic CI/CD Orchestrator в Claude Desktop, Claude Code или Cursor?

Открой Agentic CI/CD Orchestrator на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Agentic CI/CD Orchestrator with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development