{"name":"io.github.imatza-rh/mcp-zuul","slug":"imatza-rh-mcp-zuul","title":null,"description":"Zuul CI — build failure analysis, log search, pipeline status, and job configuration","url":"https://mcp.market/server/imatza-rh-mcp-zuul","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"devtools","tags":["devtools","search"],"presence":{"score":37,"stars":21,"forks":7,"downloads_week":72,"last_push_at":"2026-09-19T08:08:21.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/imatza-rh/mcp-zuul","website":null,"version":"0.11.0","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"mcp-zuul","version":"0.11.0","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Zuul base URL (e.g. https://softwarefactory-project.io/zuul)","name":"ZUUL_URL"},{"description":"Default tenant name","name":"ZUUL_DEFAULT_TENANT"},{"description":"Bearer token for authenticated instances","name":"ZUUL_AUTH_TOKEN"},{"description":"Enable Kerberos/SPNEGO authentication (true/false)","name":"ZUUL_USE_KERBEROS"},{"description":"Transport mode: stdio, sse, or streamable-http (default: stdio)","name":"MCP_TRANSPORT"},{"description":"Comma-separated list of tools to enable (disables all others)","name":"ZUUL_ENABLED_TOOLS"},{"description":"Comma-separated list of tools to disable","name":"ZUUL_DISABLED_TOOLS"}]}],"tools":[{"name":"autohold_create","description":"Create an autohold request — hold nodes after a job failure for debugging.","write_action":true,"price_micros":0,"input_schema":null},{"name":"autohold_delete","description":"Delete an autohold request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"batch_diagnose","description":"Classify multiple failed builds in one call — returns a triage table.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_build_logs","description":"Browse or fetch files from a build's log directory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_health","description":"Test Zuul API connectivity and auth status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dequeue","description":"Remove a change or ref from a pipeline.","write_action":true,"price_micros":0,"input_schema":null},{"name":"diagnose_and_test","description":"One-call diagnosis + test results — combines diagnose_build and get_build_test_results.","write_action":false,"price_micros":0,"input_schema":null},{"name":"diagnose_build","description":"One-call failure diagnosis — structured failures + relevant log context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"enqueue","description":"Enqueue a change or ref into a pipeline for testing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_flaky_jobs","description":"Detect flaky jobs by analyzing recent build history for intermittent failures.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_autohold","description":"Get details of a specific autohold request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_badge","description":"Get a status badge URL (SVG) for a project's latest buildset result.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_build","description":"Get build details — log URL, nodeset, artifacts, timing, error detail.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_build_anomalies","description":"Detect anomalous log lines using LogJuicer ML-based analysis.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_build_failures","description":"Analyze a failed build — which task failed, on which host, with error message.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_build_log","description":"Read, search, and navigate build log files with grep, line ranges, and error summary.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_build_test_results","description":"Parse JUnit XML test results from a build's log directory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_build_times","description":"Build duration trends — compute avg/min/max to detect performance regressions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_buildset","description":"Get buildset details — result, pipeline, project, change.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_change_status","description":"Pipeline status for a specific change or PR/MR.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_components","description":"Show Zuul system components — schedulers, executors, mergers, web servers.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_config_errors","description":"Get Zuul configuration errors — broken configs, missing refs, syntax errors.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_connections","description":"List configured source connections — Gerrit, GitHub, GitLab instances.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_freeze_job","description":"Get fully-resolved job configuration after inheritance.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_freeze_jobs","description":"Get the resolved job graph for a pipeline/project/branch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_job","description":"Get job configuration — parent, nodeset, timeout, branches, and all variants.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_job_durations","description":"Get avg/min/max duration for multiple jobs in a single call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project","description":"Get project configuration — which pipelines and jobs are configured.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_status","description":"Live pipeline status showing what's currently queued/running.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_tenant_info","description":"Get tenant capabilities, auth config, and websocket URL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"investigate_change","description":"One-call investigation — builds + diagnosis + autohold status for a change.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_autoholds","description":"List autohold requests — nodes held after failure for debugging.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_builds","description":"Search builds with filters. Returns compact build summaries.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_buildsets","description":"Search buildsets (groups of builds triggered by a single event).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_images","description":"List nodepool disk images with build status and upload artifacts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_jobs","description":"List all jobs in a tenant. Optionally filter by name substring.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_labels","description":"List available nodepool labels (node types that jobs can request).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_nodes","description":"List nodepool nodes — available, in-use, or provisioning.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_pipelines","description":"List all pipelines with their trigger types.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"List all projects in a tenant. Optionally filter by name substring.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_providers","description":"List nodepool cloud providers with flavors and images.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_semaphores","description":"List semaphores — resource locks that limit concurrent job execution.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_system_events","description":"List system events — config updates, reconfigurations, pipeline changes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tenants","description":"List all Zuul tenants with project and queue counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"main","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"promote","description":"Promote changes to the top of a pipeline queue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"reenqueue_buildset","description":"Re-enqueue a buildset — re-triggers a previous buildset's pipeline run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"stream_build_console","description":"Read live console output from a RUNNING build via WebSocket.","write_action":false,"price_micros":0,"input_schema":null},{"name":"tail_build_log","description":"Get the last N lines of a build log — fastest way to see why a build failed.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-23T11:50:57.097Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T11:50:57.063Z","components":{"code":{"score":25,"max":25,"notes":["29 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 4 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"mcp-zuul","version":"0.11.0","found":true,"weeklyDownloads":72,"license":"Apache-2.0","dependencyCount":14,"publishedAt":"2026-08-16T12:26:59.471675Z","repositoryUrl":"https://github.com/imatza-rh/mcp-zuul"}],"repo":{"found":true,"owner":"imatza-rh","repo":"mcp-zuul","archived":false,"pushedAt":"2026-09-19T08:08:21Z","stars":21,"forks":7,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/85165801?v=4","ownerCreatedAt":"2021-06-01T10:31:00Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/85165801?v=4&s=128","source":"github"},"presence":{"stars":21,"forks":7,"downloadsWeek":72,"license":"Apache-2.0","lastPushAt":"2026-09-19T08:08:21.000Z","score":37}}}},"grade_history":[],"reviews":[]}