list_semaphores
Resource locks with current holders and max capacity. Check when jobs wait unexpectedly.
How to use it
list_semaphores is exposed by the MCP Zuul MCP server. Add the server to your MCP client (Claude Desktop, Cursor, Windsurf and others), and the list_semaphores tool becomes available to the model automatically. See the full listing for setup details and every tool this server provides.
Install MCP Zuul
claude mcp add zuul -e ZUUL_URL=https://your-zuul.example.com -- uvx mcp-zuulOther tools in MCP Zuul (39)
List log directory contents or fetch specific files (inventory, artifacts, must-gather). Max 512KB per file. Accepts url or uuid.
Test API connectivity, auth status, and config. Triggers re-auth automatically if the Kerberos session expired.
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 getbuildfailures + getbuildlog separately. Accepts url or uuid.
Enqueue a change or ref into a pipeline. Supports both change-based (check/gate) and ref-based (periodic) enqueue.
Analyze recent build history for intermittent failures. Computes pass/fail rate and flags jobs as flaky (>20% failure with mixed results).
Full details of a specific autohold request — held nodes, timing, project/job.
CI status badge URL (SVG) for a project — embeddable in READMEs with Markdown snippet.
Full build details — nodeset, log URL, artifacts, error detail. Accepts url or uuid.
Start here for failures. Structured task-level data from job-output.json — failed play, task, host, msg, rc, stderr/stdout. Accepts url or uuid.
Read and search log files. Modes: summary (tail + error lines), full (paginated), grep (regex + context), startline/endline (exact range). Supports logname for any file. Accepts url or uuid.
Build duration trends with avg/min/max stats. Detect performance regressions or timeout-prone jobs.
Full buildset with all builds and events. Accepts url or uuid.
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.
System components — schedulers, executors, mergers, web servers with state and version.
Check this when jobs aren't running. Configuration errors, missing refs, broken configs. Filterable by project.
Configured source connections — Gerrit, GitHub, GitLab instances with driver and hostname.
Resolved job config after inheritance. Final merged nodeset, playbooks, variables, and timeout for a specific job. Answers "what will this job actually do?"
Resolved job dependency graph for a pipeline/project/branch. Shows exactly which jobs will run with inheritance resolved.
Job configuration — parent, nodeset, timeout, variants, source project.
Batch avg/min/max duration for multiple jobs in one call. Designed for monitoring an entire pipeline chain without N separate calls.
Which pipelines and jobs are configured for a project.
Live pipeline status — what's queued, running, with job progress and ETA. Filterable by pipeline and project.
Tenant capabilities — auth realms, job history support, websocket URL.
Active autohold requests — nodes held after failure for debugging.
Search builds by project, pipeline, job, change, result. Includes buildsetuuid for cross-referencing.
Search buildsets. Use includebuilds=true to inline full build details (saves round-trips).
Nodepool disk images with build status and provider upload state.
List jobs with optional name filter.
Available nodepool labels — what node types jobs can request.
Nodepool nodes with state (ready, in-use, building), provider, and label. Includes state summary.
All pipelines with their trigger types.
List all projects in a tenant with optional name filter.
Nodepool cloud providers with flavors (VM sizes), images, and labels.
System events — config updates, reconfigurations, pipeline changes. Useful for "why did my job stop running?"
All tenants with project counts.
Promote changes to the top of a pipeline queue. Use for urgent fixes when gate has a long queue.
Re-enqueue a buildset — reads project/pipeline/ref from a previous buildset and enqueues it again.
Live console from RUNNING builds. Connects to Zuul WebSocket, returns last N lines (tail). For completed builds, use tailbuildlog. Optional — requires pip install mcp-zuul[console].
Fastest failure check. Last N lines of a log (default 50, max 500). More token-efficient than getbuildlog summary mode. Accepts url or uuid.