#ci-cd #deployment #adk #mcp #ci-cd-pipeline #pipeline-deployment

app mcp-cicd

CI/CD MCP Server — pipeline status, workflow logs, artifacts, reruns, deployments, and release gates

2 stable releases

Uses new Rust 2024

1.1.0 May 24, 2026
1.0.0 May 23, 2026

#760 in Testing

Apache-2.0

22KB
207 lines

CI/CD MCP Server

Crates.io License ADK-Rust Enterprise Registry Ready

Give your AI agents visibility into CI/CD pipelines. This MCP server connects to GitHub Actions so agents can check build status, read logs, download artifacts, trigger deployments, and re-run failed jobs — all through natural language.

What It Does

When your agent needs to know "why did the build fail?" or "is it safe to deploy?", it calls these tools to get real-time CI/CD data instead of guessing.

Architecture

CI/CD MCP Architecture

Tools (8)

Tool What It Does When To Use
list_pipelines Shows recent CI runs with status "What's the build status?"
get_pipeline_run Gets full details of a run (all jobs, timing) "Show me the details of that failed build"
get_job_logs Shows each step in a job and whether it passed "Why did the build fail?"
rerun_job Re-runs a failed pipeline "Try running the build again"
download_ci_artifact Lists build artifacts (binaries, reports) "What artifacts were produced?"
get_deployment_status Shows what's deployed to each environment "What's currently in production?"
trigger_deployment Deploys a ref to an environment "Deploy main to staging"
cancel_pipeline Stops a running pipeline "Cancel that build"

Verified Output

Tested against a real repository with GitHub Actions:

> list_pipelines(owner: "zavora-ai", repo: "computer-use-mcp")

{
  "count": 15,
  "runs": [
    { "id": 25970003272, "name": "CI — Build & Test", "conclusion": "success", "branch": "main" },
    { "id": 25969979497, "name": "CI — Build & Test", "conclusion": "success", "branch": "chore/bump-6.2.0" },
    { "id": 25969865660, "name": "CI — Build & Test", "conclusion": "failure", "branch": "main" }
  ]
}

> get_pipeline_run(owner: "zavora-ai", repo: "computer-use-mcp", run_id: 25970003272)

{
  "name": "CI — Build & Test",
  "status": "completed",
  "conclusion": "success",
  "jobs": [
    { "name": "Build native — macOS x64", "conclusion": "success" },
    { "name": "Build native — macOS arm64", "conclusion": "success" },
    { "name": "Build native — Windows x64", "conclusion": "success" },
    { "name": "Build native — Linux x64", "conclusion": "success" },
    { "name": "Test — Linux x64", "conclusion": "success" }
  ]
}

> get_job_logs(owner: "zavora-ai", repo: "computer-use-mcp", run_id: 25970003272)

{
  "jobs": [{
    "name": "Build native — macOS x64",
    "conclusion": "success",
    "steps": [
      { "name": "Set up job", "conclusion": "success" },
      { "name": "Run actions/checkout@v4", "conclusion": "success" },
      { "name": "Install Rust toolchain", "conclusion": "success" },
      { "name": "Install Linux dependencies", "conclusion": "skipped" },
      { "name": "Rust cache", "conclusion": "success" },
      { "name": "Build native module", "conclusion": "success" }
    ]
  }]
}

> download_ci_artifact(owner: "zavora-ai", repo: "computer-use-mcp", run_id: 25970003272)

{
  "count": 4,
  "artifacts": [
    { "name": "computer-use-napi.win32-x64.node", "size_in_bytes": 550209 },
    { "name": "computer-use-napi.darwin-arm64.node", "size_in_bytes": 602482 },
    { "name": "computer-use-napi.linux-x64.node", "size_in_bytes": 667435 }
  ]
}

Installation

1. Build

git clone https://github.com/zavora-ai/mcp-cicd
cd mcp-cicd
cargo build --release

2. Set your GitHub token

export GITHUB_TOKEN=ghp_xxxxxxxxxxxx

You need a token with repo and workflow scopes. Create one at https://github.com/settings/tokens.

3. Add to your MCP client

Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "cicd": {
      "command": "/path/to/mcp-cicd",
      "env": { "GITHUB_TOKEN": "ghp_xxxx" }
    }
  }
}

Kiro — add to .kiro/settings/mcp.json:

{
  "mcpServers": {
    "cicd": {
      "command": "/path/to/mcp-cicd",
      "env": { "GITHUB_TOKEN": "ghp_xxxx" }
    }
  }
}

Cursor — add to .cursor/mcp.json:

{
  "mcpServers": {
    "cicd": {
      "command": "/path/to/mcp-cicd",
      "env": { "GITHUB_TOKEN": "ghp_xxxx" }
    }
  }
}

4. Use it

Ask your agent things like:

  • "What's the CI status for main?"
  • "Why did the last build fail?"
  • "Re-run the failed build"
  • "What artifacts were produced by the latest successful build?"
  • "Deploy main to staging"

How It Works

The server connects to the GitHub Actions API using your personal access token. When your agent calls a tool, the server makes the appropriate API call and returns structured data the agent can reason about.

Your Agent → MCP Tool Call → mcp-cicd → GitHub Actions API → Response

No data is stored locally. Every call is a live query against GitHub.

Governance

Action Risk Notes
list_pipelines, get_pipeline_run, get_job_logs, download_ci_artifact, get_deployment_status Read-only Safe to use anytime
rerun_job Medium Re-runs consume CI minutes
trigger_deployment High Should require approval in production
cancel_pipeline Medium Stops in-progress work

MCP Server Manifest

server_id = "mcp_cicd"
display_name = "CI/CD MCP"
version = "1.0.0"
domain = "developer"
risk_level = "medium"
writes_allowed = "gated"
transports = ["stdio"]
governance_gates = ["deployment_requires_promotion_policy"]

Contributors


James Karanja Maina

License

Apache-2.0 — see LICENSE for details.


Part of the ADK-Rust Enterprise MCP server ecosystem.

Registry Compliance

This server implements the ADK MCP SDK contract:

  • HealthCheck — async health probe for registry monitoring
  • mcp-server.toml — manifest declaring tools, risk classes, and credentials
  • Structured tracingRUST_LOG env-filter for observability

Dependencies

~17–28MB
~415K SLoC