MCP Zuul
Resumen
Descripción del creador (original en inglés)
Zuul CI — build failure analysis, log search, pipeline status, and job configuration
Los tres pilares de PopNx MCP
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
- Opinión de usuariosiAún no hay reseñasLas reseñas se abrirán junto con las cuentas en una etapa posterior
- Nuestras revisiones básicasi1 de 1 superadasRevisado con información pública; el código aún no se ha escaneado
- UsoiMuy nuevo↓ 59/sem · ★ –
Qué puedes hacer con él
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
- Conexión: Se ejecuta en tu computadora
- Transporte: stdio
- Categoría: Búsqueda y memoria de IA
Instalación
Elige la app de IA que usas y copia la configuración.
Antes de instalar
- Revisiones básicas: 1 de 1 superadas
- Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
- Debes completar tú:
ZUUL_URL,ZUUL_DEFAULT_TENANT,ZUUL_AUTH_TOKEN,ZUUL_USE_KERBEROS,MCP_TRANSPORT,ZUUL_ENABLED_TOOLS,ZUUL_DISABLED_TOOLS
Necesitas
- PyPIuv de Python instalado (para el comando uvx)
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"zuul": {
"command": "uvx",
"args": [
"mcp-zuul"
],
"env": {
"ZUUL_URL": "your-value",
"ZUUL_DEFAULT_TENANT": "your-value",
"ZUUL_AUTH_TOKEN": "your-value",
"ZUUL_USE_KERBEROS": "your-value",
"MCP_TRANSPORT": "your-value",
"ZUUL_ENABLED_TOOLS": "your-value",
"ZUUL_DISABLED_TOOLS": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add zuul --env ZUUL_URL=your-value --env ZUUL_DEFAULT_TENANT=your-value --env ZUUL_AUTH_TOKEN=your-value --env ZUUL_USE_KERBEROS=your-value --env MCP_TRANSPORT=your-value --env ZUUL_ENABLED_TOOLS=your-value --env ZUUL_DISABLED_TOOLS=your-value -- uvx mcp-zuulCompleta los valores vacíos antes de ejecutarlo.
O copia la configuración tú
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"zuul": {
"command": "uvx",
"args": [
"mcp-zuul"
],
"env": {
"ZUUL_URL": "your-value",
"ZUUL_DEFAULT_TENANT": "your-value",
"ZUUL_AUTH_TOKEN": "your-value",
"ZUUL_USE_KERBEROS": "your-value",
"MCP_TRANSPORT": "your-value",
"ZUUL_ENABLED_TOOLS": "your-value",
"ZUUL_DISABLED_TOOLS": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
O copia la configuración tú
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"zuul": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-zuul"
],
"env": {
"ZUUL_URL": "your-value",
"ZUUL_DEFAULT_TENANT": "your-value",
"ZUUL_AUTH_TOKEN": "your-value",
"ZUUL_USE_KERBEROS": "your-value",
"MCP_TRANSPORT": "your-value",
"ZUUL_ENABLED_TOOLS": "your-value",
"ZUUL_DISABLED_TOOLS": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Valores que debes completar
ZUUL_URLenvZuul base URL (e.g. https://softwarefactory-project.io/zuul)ZUUL_DEFAULT_TENANTenvDefault tenant nameZUUL_AUTH_TOKENenvBearer token for authenticated instancesZUUL_USE_KERBEROSenvEnable Kerberos/SPNEGO authentication (true/false)MCP_TRANSPORTenvTransport mode: stdio, sse, or streamable-http (default: stdio)ZUUL_ENABLED_TOOLSenvComma-separated list of tools to enable (disables all others)ZUUL_DISABLED_TOOLSenvComma-separated list of tools to disable
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Qué puede hacer
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisiones básicasi
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026
- ✓ Superada
El creador coincide con el repo
El nombre en el registro se verificó con la cuenta de GitHub imatza-rh, dueña del repo
- … Aún sin revisar
Sigue en mantenimiento
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
Tiene licencia
Todavía no hemos leído este repo en GitHub
- – No aplica
El endpoint responde
Este se ejecuta en tu computadora; no hay endpoint en internet
- – No aplica
Inicio de sesión con OAuth
Se ejecuta en tu computadora y usa ajustes locales en su lugar
- … Aún sin revisar
Sin instrucciones ocultas en las descripciones de herramientas
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con otros en Búsqueda y memoria de IAi
- Más estrellas que el 0% de los otros 5689 servidores de esta categoría
- Publicado en el registro más recientemente que el 31% de los otros 5689 servidores de esta categoría
- Revisiones básicas iguales o mejores que el 100% de los otros 5689 servidores de esta categoría
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Preguntas frecuentes
¿Es seguro MCP Zuul?
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
¿Qué claves o códigos necesita?
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
¿Se ejecuta en mi computadora o en la nube?
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
¿Sigue en mantenimiento?
El repo de GitHub cambió por última vez –, y la última versión (0.11.0) llegó al registro hace 3 meses.
¿Qué apps pueden usarlo?
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
¿Qué puedo usar en su lugar?
En la misma categoría: Context7, Codebase Memory, Exa
Alternativas
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
README del creador
Abrir el README
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
mcp-zuul
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:
claude mcp add zuul -e ZUUL_URL=https://your-zuul.example.com -- uvx mcp-zuul
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.
Why mcp-zuul?
| 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 |
Quick Start
uvx (no install, recommended):
claude mcp add zuul \
-e ZUUL_URL=https://softwarefactory-project.io/zuul \ -e ZUUL_DEFAULT_TENANT=rdoproject.org \ -- uvx mcp-zuul
pip:
pip install mcp-zuul
Docker:
docker build -t mcp-zuul .
[LobeHub](https://lobehub.com/mcp/imatza-rh-mcp-zuul) — send this to your AI agent:
Read https://lobehub.com/mcp/imatza-rh-mcp-zuul/skill.md and follow the instructions to install the MCP server.
See Setup for full configuration options including Kerberos and multi-instance.
Features
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.
Tools
Builds & Failures
| 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]. |
Buildsets
| 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. |
Pipeline & Status
| 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. |
Jobs & Projects
| Tool | What it does |
|---|---|
list_tenants | All tenants with project counts. |
list_jobs | List jobs with optional name filter. |
get_job | Job configuration — parent, nodeset, timeout, variants, source project. |
get_project | Which pipelines and jobs are configured for a project. |
list_projects | List all projects in a tenant with optional name filter. |
get_config_errors | Check this when jobs aren't running. Configuration errors, missing refs, broken configs. Filterable by project. |
get_freeze_jobs | Resolved job dependency graph for a pipeline/project/branch. Shows exactly which jobs will run with inheritance resolved. |
get_freeze_job | Resolved job config after inheritance. Final merged nodeset, playbooks, variables, and timeout for a specific job. Answers "what will this job actually do?" |
find_flaky_jobs | Analyze recent build history for intermittent failures. Computes pass/fail rate and flags jobs as flaky (>20% failure with mixed results). |
get_build_times | Build duration trends with avg/min/max stats. Detect performance regressions or timeout-prone jobs. |
get_job_durations | Batch avg/min/max duration for multiple jobs in one call. Designed for monitoring an entire pipeline chain without N separate calls. |
check_health | Test API connectivity, auth status, and config. Triggers re-auth automatically if the Kerberos session expired. |
get_tenant_info | Tenant capabilities — auth realms, job history support, websocket URL. |
Infrastructure
| Tool | What it does |
|---|---|
list_nodes | Nodepool nodes with state (ready, in-use, building), provider, and label. Includes state summary. |
list_labels | Available nodepool labels — what node types jobs can request. |
list_semaphores | Resource locks with current holders and max capacity. Check when jobs wait unexpectedly. |
list_autoholds | Active autohold requests — nodes held after failure for debugging. |
get_autohold | Full details of a specific autohold request — held nodes, timing, project/job. |
list_providers | Nodepool cloud providers with flavors (VM sizes), images, and labels. |
list_images | Nodepool disk images with build status and provider upload state. |
list_system_events | System events — config updates, reconfigurations, pipeline changes. Useful for "why did my job stop running?" |
get_badge | CI status badge URL (SVG) for a project — embeddable in READMEs with Markdown snippet. |
get_connections | Configured source connections — Gerrit, GitHub, GitLab instances with driver and hostname. |
get_components | System components — schedulers, executors, mergers, web servers with state and version. |
Write Operations
Pipeline-affecting operations — disabled by default (ZUUL_READ_ONLY=true). Set ZUUL_READ_ONLY=false to enable. Requires auth token or Kerberos. Autohold management (create/delete) is always available since it doesn't affect running pipelines.
| Tool | What it does |
|---|---|
enqueue | Enqueue a change or ref into a pipeline. Supports both change-based (check/gate) and ref-based (periodic) enqueue. |
| promote | Promote changes to the top of a
Solo se muestra el principio; lee el resto en el repo