Skip to main content
Glama
Averyy

codex-dobby-mcp

by Averyy

wait_run

Block until a background run finishes. Pass a task ID, list of IDs to wait for the first to complete, or omit to wait for any currently live run. Returns the winning run's result or a timeout status with pending tasks.

Instructions

Call after start_run to block until a background run finishes. Pass task_id for one run, task_ids=[...] to wait for whichever of several finishes FIRST, or omit both to wait on every currently-live run for the repo. On completion returns the winning run's final ToolResponse (pending_task_ids lists any still-running siblings); on timeout returns a RUNNING lookup whose summary says to keep calling wait_run with pending_task_ids until one finishes. Background tasks are shielded from waiter cancellation, so re-calling never loses work. Default 540s (9 min); clamped to [1, 100_000s / ~27.8h], matching Claude Code's MCP_TOOL_TIMEOUT default. Pick timeout_seconds below your own MCP client's tools/call ceiling — Claude Code defaults to ~28h (the full clamp is usable); Codex CLI defaults to 60s per [mcp_servers.].tool_timeout_sec (raise that first); Claude Desktop / Cursor / Cline / Continue vary.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
task_idNo
task_idsNo
repo_rootYesAbsolute path to the target git worktree. Always pass the caller's active repository root; Dobby deliberately has no implicit repo fallback.
timeout_secondsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toolNo
stateYes
resultNo
statusNo
summaryYes
task_idYes
warningsNo
repo_rootYes
stop_reasonNo
result_stateNo
artifact_pathsNo
pending_task_idsNo
Behavior5/5

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

No annotations are provided, so the description carries full burden. It explains blocking behavior, return on completion vs. timeout, cancellation shielding ('Background tasks are shielded from waiter cancellation'), timeout clamping, and details of return format (ToolResponse for completion, RUNNING lookup for timeout).

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?

Description is a single paragraph but well-organized: front-loaded main purpose, then parameter usage, then timeout details. Every sentence adds value, though slightly verbose with client-specific timeout examples. Could be split into bullet points for readability.

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

Completeness5/5

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

Given the complexity (blocking vs. timeout, multiple modes, cancellation, clamping) and presence of an output schema, the description covers essential behaviors: return values for both completion and timeout, shielding from cancellation, timeout bounds. It doesn't discuss error cases like invalid task_id, but that's acceptable for a wait tool.

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

Parameters5/5

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

Schema description coverage is only 25% (repo_root has description). The description adds meaning to all parameters: task_id (wait for one run), task_ids (wait for first of several), repo_root (always pass active root), timeout_seconds (default and clamp details). This compensates well for the low schema coverage.

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

Purpose5/5

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

Description clearly states the tool blocks until a background run finishes, with specific usage modes for one run (task_id), multiple runs (task_ids for whichever finishes first), or all live runs. The verb 'wait' matches the name, and it's distinct from siblings like get_run (non-blocking) and start_run (launches work).

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?

Description explicitly says 'Call after start_run' and details parameter variations. It gives timeout guidance with client-specific defaults (Claude Code, Codex CLI, etc.). While it doesn't explicitly say 'don't use this for non-blocking checks', the context makes it clear that this is for blocking; alternatives like get_run are implied but not named.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Averyy/codex-dobby-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server