Skip to main content
Glama

Will my CI job wait for a runner

ci_queue
Read-onlyIdempotent

Call this before you push, to judge whether your job will wait for a runner and whether now is a busy time. For a repository it shows: what is waiting for a runner now (jobs, grouped by pull request or push, and the runner labels they wait on), how long the oldest has waited and whether the runners count as congested; the median wait for a runner (self-hosted jobs started today, else GitHub-hosted jobs in the last hour) and per workflow over its recent runs; which runners are busy and with which job (the runners the dashboard can see; where it cannot read the full list, those seen in recent jobs, and it says so); and runner capacity over the last 24 hours: the share of the day the runners were congested, and how much spare capacity there was. If the queue is long and your push is not urgent, keep committing locally and push once. Read-only, and it never fails: if the queue cannot be read it says why.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "ci_queue"
  }
}

Input Schema

NameRequiredDescriptionDefault
repoNoowner/name. Optional when the token covers one repository.
limitNoHow many waiting groups and workflows to list (default 10).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavioral context beyond the annotations: it 'never fails' and instead explains why the queue could not be read, and it discloses partial-visibility degradation ('where it cannot read the full list, those seen in recent jobs, and it says so'). The safety profile is already in readOnlyHint/destructiveHint so restating read-only adds little, but the graceful-degradation semantics are valuable and consistent with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded well with the decision and the pre-push timing upfront, but the return-value enumeration is one very long sentence with deeply nested parentheticals that is hard to parse at a glance. Since no output schema exists the content is justified, yet the structure could be split into bullets or shorter sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so thoroughly: what is waiting, median waits, busy runners, and 24h congestion share. Combined with the no-failure guarantee, an agent has enough to call it and interpret results; only the exact payload shape is unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters (repo, limit) are documented in the schema, so baseline is 3. The description adds no extra meaning about repo resolution or what 'limit' truncates beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete decision-support purpose: 'judge whether your job will wait for a runner and whether now is a busy time', plus an explicit enumeration of what it reports (waiting jobs, median wait, busy runners, 24h capacity). It does not name siblings like ci_status or ci_history, so an agent must infer the boundary between 'current queue/capacity' and 'past run results'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear timing trigger ('Call this before you push') and an action prescription ('If the queue is long and your push is not urgent, keep committing locally and push once'), which is genuinely actionable. It never names an alternative tool or an exclusion condition versus ci_status/ci_history.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources