2 stable releases
Uses new Rust 2024
| 1.1.0 | May 24, 2026 |
|---|---|
| 1.0.0 | May 23, 2026 |
#760 in Testing
22KB
207 lines
CI/CD MCP Server
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
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 tracing —
RUST_LOGenv-filter for observability
Dependencies
~17–28MB
~415K SLoC