
Mcp Zuul
This server connects Claude to Zuul CI instances for debugging build failures without clicking through web UIs. It exposes 38 tools covering build failure analysis, log search with grep and line ranges, pipeline status monitoring, job configuration inspection, and buildset queries. The standout feature is structured failure parsing from Zuul's job-output.json, which surfaces exactly which Ansible task failed, on which host, with full error context. It handles Kerberos authentication for enterprise Zuul deployments, supports live console streaming from running builds via WebSocket, and can analyze flaky jobs by computing pass/fail statistics. Write operations for enqueueing changes and managing autoholds are disabled by default but available when needed.
- GitHub stars
- 21
- tools
- 45
- transport
- STDIO
- env vars
- 7
- last updated
- Aug 16, 2026
Tools
45 toolsPublic tool metadata for what this MCP can expose to an agent.
list_buildsSearch builds by project, pipeline, job, change, result. Includes buildset_uuid for cross-referencing.
Search builds by project, pipeline, job, change, result. Includes buildset_uuid for cross-referencing.
No parameter schema in public metadata yet.
get_buildFull build details — nodeset, log URL, artifacts, error detail. Accepts url or uuid.
Full build details — nodeset, log URL, artifacts, error detail. Accepts url or uuid.
No parameter schema in public metadata yet.
get_build_failuresStart here for failures. Structured task-level data from job-output.json — failed play, task, host, msg, rc, stderr/stdout.
Start here for failures. Structured task-level data from job-output.json — failed play, task, host, msg, rc, stderr/stdout.
No parameter schema in public metadata yet.
diagnose_buildOne-call failure diagnosis combining structured failures from job-output.json with targeted log context from job-output.txt.
One-call failure diagnosis combining structured failures from job-output.json with targeted log context from job-output.txt.
No parameter schema in public metadata yet.
get_build_logRead and search log files with summary, full, grep, and line-range modes. Supports log_name for any file.
Read and search log files with summary, full, grep, and line-range modes. Supports log_name for any file.
No parameter schema in public metadata yet.
tail_build_logLast N lines of a log (default 50, max 500). More token-efficient than get_build_log summary mode.
Last N lines of a log (default 50, max 500). More token-efficient than get_build_log summary mode.
No parameter schema in public metadata yet.
browse_build_logsList log directory contents or fetch specific files (inventory, artifacts, must-gather). Max 512KB per file.
List log directory contents or fetch specific files (inventory, artifacts, must-gather). Max 512KB per file.
No parameter schema in public metadata yet.
stream_build_consoleLive console from RUNNING builds via Zuul WebSocket, returns last N lines. Optional, requires pip install mcp-zuul[console].
Live console from RUNNING builds via Zuul WebSocket, returns last N lines. Optional, requires pip install mcp-zuul[console].
No parameter schema in public metadata yet.
list_buildsetsSearch buildsets. Use include_builds=true to inline full build details.
Search buildsets. Use include_builds=true to inline full build details.
No parameter schema in public metadata yet.
get_buildsetFull buildset with all builds and events. Accepts url or uuid.
Full buildset with all builds and events. Accepts url or uuid.
No parameter schema in public metadata yet.
get_statusLive pipeline status — what's queued, running, with job progress and ETA. Filterable by pipeline and project.
Live pipeline status — what's queued, running, with job progress and ETA. Filterable by pipeline and project.
No parameter schema in public metadata yet.
get_change_statusStatus for a change/PR/MR. In pipeline: live jobs with elapsed times. Not in pipeline: auto-fetches latest completed buildset.
Status for a change/PR/MR. In pipeline: live jobs with elapsed times. Not in pipeline: auto-fetches latest completed buildset.
No parameter schema in public metadata yet.
list_pipelinesAll pipelines with their trigger types.
All pipelines with their trigger types.
No parameter schema in public metadata yet.
list_tenantsAll tenants with project counts.
All tenants with project counts.
No parameter schema in public metadata yet.
list_jobsList jobs with optional name filter.
List jobs with optional name filter.
No parameter schema in public metadata yet.
get_jobJob configuration — parent, nodeset, timeout, variants, source project.
Job configuration — parent, nodeset, timeout, variants, source project.
No parameter schema in public metadata yet.
get_projectWhich pipelines and jobs are configured for a project.
Which pipelines and jobs are configured for a project.
No parameter schema in public metadata yet.
list_projectsList all projects in a tenant with optional name filter.
List all projects in a tenant with optional name filter.
No parameter schema in public metadata yet.
get_config_errorsConfiguration errors, missing refs, broken configs. Filterable by project.
Configuration errors, missing refs, broken configs. Filterable by project.
No parameter schema in public metadata yet.
get_freeze_jobsResolved job dependency graph for a pipeline/project/branch with inheritance resolved.
Resolved job dependency graph for a pipeline/project/branch with inheritance resolved.
No parameter schema in public metadata yet.
get_freeze_jobResolved job config after inheritance: final merged nodeset, playbooks, variables, and timeout for a specific job.
Resolved job config after inheritance: final merged nodeset, playbooks, variables, and timeout for a specific job.
No parameter schema in public metadata yet.
find_flaky_jobsAnalyze recent build history for intermittent failures and compute pass/fail rate.
Analyze recent build history for intermittent failures and compute pass/fail rate.
No parameter schema in public metadata yet.
get_build_timesBuild duration trends with avg/min/max stats.
Build duration trends with avg/min/max stats.
No parameter schema in public metadata yet.
get_job_durationsBatch avg/min/max duration for multiple jobs in one call.
Batch avg/min/max duration for multiple jobs in one call.
No parameter schema in public metadata yet.
check_healthTest API connectivity, auth status, and config.
Test API connectivity, auth status, and config.
No parameter schema in public metadata yet.
get_tenant_infoTenant capabilities — auth realms, job history support, websocket URL.
Tenant capabilities — auth realms, job history support, websocket URL.
No parameter schema in public metadata yet.
list_nodesNodepool nodes with state, provider, and label, including state summary.
Nodepool nodes with state, provider, and label, including state summary.
No parameter schema in public metadata yet.
list_labelsAvailable nodepool labels — what node types jobs can request.
Available nodepool labels — what node types jobs can request.
No parameter schema in public metadata yet.
list_semaphoresResource locks with current holders and max capacity.
Resource locks with current holders and max capacity.
No parameter schema in public metadata yet.
list_autoholdsActive autohold requests — nodes held after failure for debugging.
Active autohold requests — nodes held after failure for debugging.
No parameter schema in public metadata yet.
get_autoholdFull details of a specific autohold request.
Full details of a specific autohold request.
No parameter schema in public metadata yet.
list_providersNodepool cloud providers with flavors, images, and labels.
Nodepool cloud providers with flavors, images, and labels.
No parameter schema in public metadata yet.
list_imagesNodepool disk images with build status and provider upload state.
Nodepool disk images with build status and provider upload state.
No parameter schema in public metadata yet.
list_system_eventsSystem events — config updates, reconfigurations, pipeline changes.
System events — config updates, reconfigurations, pipeline changes.
No parameter schema in public metadata yet.
get_badgeCI status badge URL (SVG) for a project.
CI status badge URL (SVG) for a project.
No parameter schema in public metadata yet.
get_connectionsConfigured source connections — Gerrit, GitHub, GitLab instances with driver and hostname.
Configured source connections — Gerrit, GitHub, GitLab instances with driver and hostname.
No parameter schema in public metadata yet.
get_componentsSystem components — schedulers, executors, mergers, web servers with state and version.
System components — schedulers, executors, mergers, web servers with state and version.
No parameter schema in public metadata yet.
enqueueEnqueue a change or ref into a pipeline.
Enqueue a change or ref into a pipeline.
No parameter schema in public metadata yet.
promotePromote changes to the top of a pipeline queue.
Promote changes to the top of a pipeline queue.
No parameter schema in public metadata yet.
reenqueue_buildsetRe-enqueue a buildset using project/pipeline/ref from a previous buildset.
Re-enqueue a buildset using project/pipeline/ref from a previous buildset.
No parameter schema in public metadata yet.
dequeueRemove a change or ref from a pipeline. Destructive.
Remove a change or ref from a pipeline. Destructive.
No parameter schema in public metadata yet.
autohold_createCreate an autohold request to hold nodes after failure for debugging.
Create an autohold request to hold nodes after failure for debugging.
No parameter schema in public metadata yet.
autohold_deleteDelete an autohold request.
Delete an autohold request.
No parameter schema in public metadata yet.
get_build_test_resultsParse JUnit XML test results with structured pass/fail/skip counts and failure details.
Parse JUnit XML test results with structured pass/fail/skip counts and failure details.
No parameter schema in public metadata yet.
get_build_anomaliesML-based log anomaly detection via LogJuicer. Requires LOGJUICER_URL.
ML-based log anomaly detection via LogJuicer. Requires LOGJUICER_URL.
No parameter schema in public metadata yet.
Sponsors
Configuration
ZUUL_URLZuul base URL (e.g. https://softwarefactory-project.io/zuul)
ZUUL_DEFAULT_TENANTDefault tenant name
ZUUL_AUTH_TOKENBearer token for authenticated instances
ZUUL_USE_KERBEROSEnable Kerberos/SPNEGO authentication (true/false)
MCP_TRANSPORTTransport mode: stdio, sse, or streamable-http (default: stdio)
ZUUL_ENABLED_TOOLSComma-separated list of tools to enable (disables all others)
ZUUL_DISABLED_TOOLSComma-separated list of tools to disable
Readme
Details
- Repository
- github.com/imatza-rh/mcp-zuul
- Categories
- Sales & Marketing, Search & Web Crawling, Automation & Workflows, Monitoring & Observability
- Package
mcp-zuul- Transport
- STDIO
- Registry
- MCP registry, active