MCP server providing structured Zuul CI build failure analysis, log search, pipeline status, and job management tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Zuul.
list_buildsSearch builds by project, pipeline, job, change, result. Includes `buildset_uuid` for cross-referencing.
get_buildFull build details โ nodeset, log URL, artifacts, error detail. Accepts `url` or `uuid`.
get_build_failuresStart here for failures.** Structured task-level data from `job-output.json` โ failed play, task, host, msg, rc, stderr/stdout. Accepts `url` or `uuid`.
diagnose_buildOne-call failure diagnosis.** Combines structured failures from `job-output.json` with targeted log context (fatal/FAILED lines with surrounding context from `job-output.txt`). Use instead of calling `get_build_failures` + `get_build_log` separately. Accepts `url` or `uuid`.
get_build_logRead and search log files. Modes: `summary` (tail + error lines), `full` (paginated), `grep` (regex + context), `start_line`/`end_line` (exact range). Supports `log_name` for any file. Accepts `url` or `uuid`.
tail_build_logFastest failure check.** Last N lines of a log (default 50, max 500). More token-efficient than `get_build_log` summary mode. Accepts `url` or `uuid`.
Debug build failures by asking questions, not clicking through web UIs. An MCP server for Zuul CI.
If mcp-zuul saves you a debugging session, a โญ star helps others find it.
One command, no install:
48 tools, 5 prompts, 3 resources โ covering builds, logs, pipelines, jobs, infrastructure, and live status. Works with Claude Code, Claude Desktop, Cursor, Codex, Windsurf, and any MCP-compatible client.
| mcp-zuul | Raw Zuul API | Zuul web UI | |
|---|---|---|---|
| Failure analysis | Structured โ task, host, error, rc | Raw JSON, parse yourself | Click through log pages |
| Log search | Regex + context lines + line ranges | Not available | Browser Ctrl+F |
| Flaky detection | Automatic pass/fail statistics | Manual query + calculate | Not available |
| Test results | Parsed JUnit XML with failure details | Not available | External link |
| Anomaly detection | ML-based via LogJuicer | Not available | Not available |
| Live status | Job progress, ETA, pre-failure alerts | Polling API | Manual refresh |
| Multi-instance | One config entry per Zuul | Different base URLs | Different browser tabs |
uvx (no install, recommended):
pip:
Docker:
LobeHub โ send this to your AI agent:
See Setup for full configuration options including Kerberos and multi-instance.
Structured failure analysis โ get_build_failures parses Zuul's job-output.json and returns exactly which Ansible task failed, on which host, with error message, return code, and stderr. No log scrolling needed.
Read any log file โ get_build_log isn't limited to job-output.txt. Pass log_name to read any file in the build's log directory (ci_script logs, ansible.log, deployment logs) with full grep, tail, and line-range support.
Precise log navigation โ Jump to exact line ranges with start_line/end_line. After finding an error at line 6148, read lines 6130-6160 instead of scrolling through 200-line chunks.
Smart grep โ Regex search with context lines. Auto-converts common shell-grep \| syntax to Python regex | so patterns like error\|failed\|timeout just work.
Live pipeline awareness โ get_change_status returns live job progress with elapsed times, estimated completion, and pre-failure detection (pre_fail field). When the change isn't in pipeline, automatically fetches the latest completed buildset.
Tool filtering โ Reduce LLM tool-selection noise with ZUUL_ENABLED_TOOLS or ZUUL_DISABLED_TOOLS. Only expose the tools your workflow needs โ the rest are removed from the server entirely.
URL-based input โ Paste a Zuul build URL directly. Tools auto-parse the tenant and UUID from URLs like https://zuul.example.com/t/tenant/build/abc123 โ no manual extraction needed.
Flaky job detection โ find_flaky_jobs analyzes recent build history and computes pass/fail statistics to identify intermittent failures automatically.
Job dependency graph โ get_freeze_jobs returns the fully-resolved job graph for a pipeline/project/branch, showing all jobs with their dependencies after inheritance resolution.
Kerberos/SPNEGO auth โ First-class support for Zuul instances behind OIDC + Kerberos. Drives the full SPNEGO redirect chain automatically. Session cookies persist and re-authenticate transparently on expiry.
Streamable HTTP transport โ Run as a persistent HTTP server with MCP_TRANSPORT=streamable-http for remote/shared deployment. Supports stdio (default), SSE, and streamable-http.
Write operations โ Enqueue/dequeue/promote changes and re-enqueue buildsets. Pipeline-affecting tools are disabled by default (ZUUL_READ_ONLY=true) and removed from the server entirely so LLMs don't even see them. Autohold management (create/delete) is always available since it doesn't affect running pipelines.
LogJuicer integration โ get_build_anomalies uses ML-based log analysis to find unusual lines by comparing failed logs against successful baselines. Optional โ requires LOGJUICER_URL.
Token-efficient output โ All responses strip None values and use compact formatters. tail_build_log returns just the last N lines โ the fastest way to check why a build failed.
Error handling โ All tools return JSON, errors included. Network failures, auth issues, and invalid parameters produce {"error": "descriptive message"}. Tools never raise unhandled exceptions.
| Tool | What it does |
|---|---|
list_builds | Search builds by project, pipeline, job, change, result. Includes buildset_uuid for cross-referencing. |
get_build | Full build details โ nodeset, log URL, artifacts, error detail. Accepts url or uuid. |
get_build_failures | Start here for failures. Structured task-level data from job-output.json โ failed play, task, host, msg, rc, stderr/stdout. Accepts url or uuid. |
diagnose_build | One-call failure diagnosis. Combines structured failures from job-output.json with targeted log context (fatal/FAILED lines with surrounding context from job-output.txt). Use instead of calling get_build_failures + get_build_log separately. Accepts url or uuid. |
get_build_log | Read and search log files. Modes: summary (tail + error lines), full (paginated), grep (regex + context), start_line/end_line (exact range). Supports log_name for any file. Accepts url or uuid. |
tail_build_log | Fastest failure check. Last N lines of a log (default 50, max 500). More token-efficient than get_build_log summary mode. Accepts url or uuid. |
browse_build_logs | List log directory contents or fetch specific files (inventory, artifacts, must-gather). Max 512KB per file. Accepts url or uuid. |
stream_build_console | Live console from RUNNING builds. Connects to Zuul WebSocket, returns last N lines (tail). For completed builds, use tail_build_log. Optional โ requires pip install mcp-zuul[console]. |
| Tool | What it does |
|---|---|
list_buildsets | Search buildsets. Use include_builds=true to inline full build details (saves round-trips). |
get_buildset | Full buildset with all builds and events. Accepts url or uuid. |
| Tool | What it does |
|---|---|
get_status | Live pipeline status โ what's queued, running, with job progress and ETA. Filterable by pipeline and project. |
get_change_status | Status for a change/PR/MR. In pipeline: live jobs with elapsed times. Not in pipeline: auto-fetches latest completed buildset. Accepts url or change. |
list_pipelines | All pipelines with their trigger types. |
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/imatza-rh-mcp-zuul)<a href="https://allmcps.com/mcp/imatza-rh-mcp-zuul"><img src="https://allmcps.com/api/badge/imatza-rh-mcp-zuul?style=directory" alt="MCP Zuul on AllMCPs" /></a>