Skip to main content
Glama
BlueMonkey262

subagent-mcp

wait_for_agents

Waits for delegated child agents to finish, get approval, or time out, returning results when any or all complete without stopping them (60s max).

Instructions

Event-driven join; returns on any/all completion, approval, or timeout without stopping agents. Maximum 60 seconds.

Input Schema

NameRequiredDescriptionDefault
modeNo
agentsYes
timeout_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description does the useful work of disclosing that waiting does not terminate agents and that the call is bounded at 60 seconds, which is real behavioral context. However, it says nothing about what the call returns, whether it blocks or polls internally, or what happens when the timeout elapses (empty result? error?) – all essential for a blocking tool with zero annotation coverage.

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

Conciseness4/5

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

Two compact clauses with the key semantic (non-terminating join) front-loaded and no filler. It is arguably too telegraphic for a blocking tool, but nothing is wasted or buried.

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

Completeness2/5

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

No output schema, no annotations, and 0% schema parameter descriptions mean the description carries the full burden, yet it never explains what a successful return contains (completed agent list? statuses? results?) or the timeout outcome. For a join/wait primitive whose entire utility is the value returned, that is a substantial gap.

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 description coverage is 0%, so the description must compensate, and it partially does: "any/all" maps to the `mode` enum and "Maximum 60 seconds" restates the `timeout_seconds` bound. The required `agents` array – the most important parameter – gets no semantic treatment (are these IDs, names, spawned handles?), and default timeout behavior is unstated.

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?

"Event-driven join; returns on any/all completion, approval, or timeout" gives a specific operation (wait/join) and the conditions that end it, and "without stopping agents" distinguishes it from the stop_agents/stop_agent siblings. It lacks a plain statement of the resource being waited on (the agents in the `agents` param), so it falls just short of a 5.

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

Usage Guidelines3/5

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

The phrase "without stopping agents" implies this is the non-destructive way to wait rather than the termination path, which is useful routing. But there is no explicit guidance on when to prefer this over get_agent_result, get_agent_events, or repeatedly calling list_agents, and no mention of whether waiting is required before reading results.

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