skip to content

MCP tools

Every tool the run-scoped MCP server advertises, its arguments, and whether it reads the run or acts on it.

MCP server tools — 12 rows exported from src/mcp/tools.rs

The read tools

read

run_status

The resolved run's registry row, re-read at call time: title, lifecycle state, progress line, `state_units` and `display_tasks` counts, worktree and branch, the recorded stop, and the owning process and its cleanup state.

Takes no arguments.

Any argument not listed above is rejected.

read

list_runs

Every run visible in the repository. `scope: "active"` returns the non-finished runs; the default is `all`.

argument accepts what it is
scope
optional
string · one of all, active `all` (default) returns every run; `active` returns every non-finished run, matching ordinary `gantry list`.

Any argument not listed above is rejected.

read

read_ledger

The run's PROGRESS.md ledger, one row per projected task: its id, task path, title, latest ledger status, and whether the ledger has it DONE.

Takes no arguments.

Any argument not listed above is rejected.

read

read_plan

The raw Markdown stored in the run's `about.md` card.

Takes no arguments.

Any argument not listed above is rejected.

read

list_tasks

The run's tasks as the pattern declares them, under the pattern's name: a tree of nodes each carrying its id, task path, title and status, nested to the depth the pattern runs at.

Takes no arguments.

Any argument not listed above is rejected.

read

read_report

A named diagnosis report under the run's reports/ directory.

argument accepts what it is
name
required
string The report file name under reports/.

Any argument not listed above is rejected.

read

tail_history

Recent records from the run's history.jsonl activity journal, with line/byte bounds.

argument accepts what it is
lines
optional
integer · at least 0 Trailing line count to return.
max_bytes
optional
integer · at least 0 Maximum bytes to return.

Any argument not listed above is rejected.

read

tail_log

A named stage log with line and byte bounds. `task_path` is the owning task's outermost-first position in the run tree; an omitted or empty path selects a run-root log.

argument accepts what it is
lines
optional
integer · at least 0 Trailing line count to return.
max_bytes
optional
integer · at least 0 Maximum bytes to return.
name
required
string The log file name under the selected task's logs/.
task_path
optional
array of string The task's outermost-first position in the run tree. An omitted or empty value selects a run-root log.

Any argument not listed above is rejected.

read

worktree_info

The run's worktree git state: branch, porcelain status, the 20 most recent commits, and the diff from the merge-base with the run's pinned home branch, bounded to 64 KiB. A run merged back and its worktree removed answers `live: false`.

Takes no arguments.

Any argument not listed above is rejected.

read

list_processes

The run's recorded process groups: their owner, state, process-group id, purpose, and recorded and sampled fields. A stray group's remedy is the `gantry stop <name>` command string.

Takes no arguments.

Any argument not listed above is rejected.

The action tools

action

run_bash

Runs a shell command in the run's worktree with the wrapper state coding agents use. Results report whether the process fence, a custom wrapper, or no wrapper was active.

argument accepts what it is
command
required
string The shell command to run in the run's worktree.
timeout_secs
optional
integer · at least 1 Per-call wall-clock timeout in seconds (default 120, capped at 3600).

Any argument not listed above is rejected.

action

answer_prompt

Answers a pending prompt on the live engine by prompt id. The answer form must match the prompt kind; without a live engine the tool returns a failed result.

argument accepts what it is
choice
optional
string The option selected for a choice prompt; it must be one the prompt offers. Exactly one of confirm, text, or choice is required.
confirm
optional
boolean The y/N answer for a confirm prompt. Exactly one of confirm, text, or choice is required.
prompt_id
required
integer · at least 0 The correlation id from the PromptNeeded event identifying the pending prompt to answer.
text
optional
string The free-text answer for a text prompt. It never answers a choice or confirm prompt. Exactly one of confirm, text, or choice is required.

Any argument not listed above is rejected.