Skip to main content
Glama

codex-agy-bridge

CI License: MIT

Run Antigravity from an agent harness as durable, parallel, human-operable agy sessions over MCP.

codex-agy-bridge wraps the official Antigravity CLI with a resumable MCP control plane. Agent harnesses like Codex, Claude Desktop, or your own GPT/Claude-powered MCP client can start agy runs, wait on sparse events, attach a real terminal, send guarded input, cancel safely, continue exact conversations, and collect final results later by run_id.

Quick Install

Prerequisites:

  • Codex CLI for the command below, or another local stdio MCP-capable harness

  • The official Antigravity CLI (agy), already authenticated locally

  • uv / uvx

  • tmux and a supported terminal launcher:

# macOS
brew install tmux

# Debian/Ubuntu Linux (x-terminal-emulator is also supported)
sudo apt install tmux gnome-terminal

Check the required commands:

codex --version
agy --version
agy models
uvx --version
tmux -V

Day 0 Authentication

agy --version only proves the binary exists. Before adding the MCP server, run agy models; if Antigravity asks you to sign in or reports that you are not logged in, start a visible session and complete the browser/login flow:

agy --prompt-interactive "Authenticate Antigravity and then exit."
agy models

After agy models succeeds, install or restart the MCP server. If a bridge run still hits auth, agy_run_start returns status="auth_required" and opens a visible agy authentication session by default. Complete sign-in there, then start a fresh run. You can also use agy_run_observe(view="terminal") or agy_admin(action="doctor") to inspect the auth-required status.

Install from PyPI with the Codex CLI:

codex mcp add codex-agy-bridge \
  --env AGY_CMD="$(command -v agy)" \
  -- "$(command -v uvx)" codex-agy-bridge@latest

Restart the harness, then verify in Codex if you used the command above:

codex mcp get codex-agy-bridge
codex mcp list

Remove it with:

codex mcp remove codex-agy-bridge

For Claude Desktop or a custom MCP client, use the same stdio command shape: uvx codex-agy-bridge@latest with AGY_CMD set to the authenticated agy executable.

Related MCP server: subway-mcp-server

What Makes It Different

  • Parallel Antigravity sessions: launch multiple independent agy runs, each with its own durable state, logs, transcript projection, and result.

  • Human-operable terminals: foreground runs live in persistent tmux sessions, so Terminal.app can attach without killing the agent.

  • Resumable MCP control: MCP calls can time out, the harness can restart, and the run can still be observed later by run_id.

  • Goal orchestration: create a goal, start named targets with bounded parallelism, and inspect the whole batch as one coordinated effort.

  • Sparse wake events: agy_run_wait short-polls lifecycle, attention, progress, and terminal events without transcript-polling spam.

  • Guarded input: agy_run_input can reject stale writes when event or transcript cursors changed after the caller observed the run.

  • Trajectory-aware observability: bounded transcript summaries and terminal evidence are exposed without private model reasoning.

  • Operational hygiene: duplicate active starts are deduplicated, process groups are cancelled safely, and completed result artifacts are preserved.

Install Details

If You Are An Agent Reading This

Help the user install it; do not silently mutate their machine.

  1. Verify prerequisites first:

command -v codex
command -v agy
command -v uvx
command -v tmux
agy --version
agy models
  1. If anything is missing, ask before installing it.

  2. If agy models reports an auth error, help the user complete the Day 0 authentication flow above before adding the MCP server.

  3. Then run:

codex mcp add codex-agy-bridge \
  --env AGY_CMD="$(command -v agy)" \
  -- "$(command -v uvx)" codex-agy-bridge@latest
  1. Verify:

codex mcp get codex-agy-bridge
codex mcp list
  1. Tell the user to restart their agent harness so the new MCP tools load.

PyPI

The Quick Install command stores an stdio MCP server definition. When the agent harness starts the server, uvx resolves codex-agy-bridge@latest from PyPI, installs it into an isolated cached environment, and runs the codex-agy-bridge console script. AGY_CMD pins the bridge to the user's already-installed and authenticated agy executable.

Do not replace $ or $(...) manually in the command. In POSIX shells, $(command -v agy) and $(command -v uvx) expand to absolute executable paths.

GitHub

Use this when you want the repository version directly:

codex mcp add codex-agy-bridge \
  --env AGY_CMD="$(command -v agy)" \
  -- uvx --from git+https://github.com/varadfromeast/codex-agy-bridge \
  codex-agy-bridge

Local Development

git clone https://github.com/varadfromeast/codex-agy-bridge.git
cd codex-agy-bridge
uv sync --extra dev

codex mcp add codex-agy-bridge \
  --env AGY_CMD="$(command -v agy)" \
  -- uv --directory "$PWD" run codex-agy-bridge

How It Works

flowchart LR
  H["Agent harness<br/>(Codex, Claude, custom MCP client)"]
  M["codex-agy-bridge<br/>MCP stdio server"]
  S["Durable control plane<br/>runs, goals, events, results"]
  W["Detached run supervisor"]
  A["Antigravity CLI<br/>agy"]
  T["Persistent tmux session<br/>human attach/input"]
  L["Local Antigravity<br/>trajectory files"]

  H <-->|"MCP tools"| M
  M <--> S
  S --> W
  W --> A
  W <--> T
  A --> L
  W -->|"bounded transcript projection"| S
  T -->|"terminal logs and attention prompts"| S

The bridge keeps the MCP server responsive while detached supervisors own the long-running agy processes. State and events are persisted locally, so a run can continue after the original MCP call returns. For the deeper process model, see docs/ARCHITECTURE.md. For the MCP control-loop vision, see docs/MCP_VISION.md.

MCP Tools

Tool

Purpose

agy_run_start

Start, continue, or open an interactive foreground run

agy_run_wait

Short-poll until selected runs emit sparse wake events

agy_run_observe

Read full, status, transcript, or raw terminal views

agy_run_input

Send input with optional event/transcript preconditions

agy_run_cancel

Cancel one active run

agy_run_result

Read final result metadata or bounded result chunks

agy_goal

Create goals, start targets, and read aggregate status

agy_admin

Read diagnostics, models, plugins, validation, and changelog

Omit model (or pass null) to let Agy choose its default: the bridge stores model: null and does not send --model. This applies to runs, review tools, and goals, whose targets inherit their goal's selection. Explicit selections are validated against agy models, including the bridge's former Gemini 3.5 Flash (Medium) default; unknown and empty selections are rejected. The bridge never substitutes the first catalog entry. agy_admin(action="models") reports default_model: null and default_model_source: "agy_cli"; this describes delegation, not an observed effective provider model.

Existing persisted runs and goals retain their model strings and remain readable. They are not silently migrated to a different model. New launches from an old goal revalidate its selection and reject it if it is no longer available; create a new goal with an available model or omit the selection to delegate to Agy. Previously reserved runs retain their original command policy. New delegated requests have distinct deduplication keys from explicitly selected models. Older bridge versions that require a string goal model cannot read new null-model goals; avoid downgrading with those goals in use.

Typical flow:

agy_run_start -> agy_run_wait -> agy_run_observe -> agy_run_result

In Codex MCP, tools may be exposed with the server prefix, for example codex_agy_bridge_agy_run_wait. Run responses include exact wait_call arguments; note that agy_run_wait always takes run_ids: ["..."], even for a single run. Supported wait conditions are any_attention, any_terminal, all_terminal, any_event, and aliases attention, terminal, finished, finish, complete, completed, result, all_finished, all_complete, and all_completed.

Use agy_goal when the harness should split work into named targets with a shared objective and bounded parallelism.

Configuration

Variable

Default

Purpose

AGY_CMD

agy on PATH

Exact Antigravity executable

AGY_BRIDGE_STATE_DIR

~/.local/state/codex-agy-bridge

Durable run and goal state

AGY_BRIDGE_AGY_ROOT

~/.gemini/antigravity-cli

Antigravity conversations and trajectories

AGY_BRIDGE_MAX_PARALLEL

50

Global concurrent-run limit

AGY_BRIDGE_COMPLETION_STABILITY_SECONDS

150

Time a final marker must remain stable

AGY_BRIDGE_MCP_WAIT_SLICE_SECONDS

120

Max seconds a single agy_run_wait MCP call blocks before returning a snapshot so gateways do not time out

Run state survives MCP server restarts under ~/.local/state/codex-agy-bridge/.

Status And Risk

This project is experimental. It currently targets Python 3.11+, macOS or Linux with a supported terminal launcher, tmux, and Antigravity CLI 1.0.8-compatible commands and trajectory files.

Antigravity is an agentic CLI. It can read and write files, execute commands, and access the network with the current user's privileges. This bridge is not a sandbox or security boundary.

The bridge always enables Antigravity's dangerous permission-skip policy so unattended runs do not stall on CLI approval prompts. Any dangerously_skip_permissions=false input is rejected; the only allowed value is true. sandbox=true and additional_directories are CLI policy hints, not filesystem containment.

The bridge does not read or copy Antigravity OAuth credentials. It invokes the installed agy binary and reads ordinary local conversation metadata and trajectory files.

Development

git clone https://github.com/varadfromeast/codex-agy-bridge.git
cd codex-agy-bridge
uv sync --extra dev
uv run pytest
uv run ruff check .
uv build

Run the server directly:

uv run codex-agy-bridge

The server uses stdio transport. Do not print diagnostic text to stdout; it would corrupt MCP framing.

Publishing

A pushed version tag runs .github/workflows/publish.yml, which verifies versions, runs checks, builds distributions, publishes to PyPI through GitHub OIDC, creates a GitHub release, and publishes server.json to the MCP Registry.

Compatibility

The current reader expects Antigravity trajectory JSONL under:

~/.gemini/antigravity-cli/brain/<conversation-id>/
  .system_generated/logs/transcript.jsonl

If Antigravity moves to SQLite or a local daemon API, a new adapter can replace this reader without changing the MCP tool contract.

License

MIT

Available Tools

14 tools
agy_adminC

Run bounded diagnostics and metadata actions for the bridge and agy CLI.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
actionYes
run_idNo
refreshNo
workspaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose behavioral traits such as whether actions are destructive, require authentication, or have side effects on the system. For an admin tool, this lack of transparency is a significant gap.

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?

The description is a single sentence, making it concise but lacking structure. It front-loades the core purpose but omits any breakdown of actions, parameters, or usage examples, which would improve usability.

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?

Given the tool's complexity (5 parameters, no schema descriptions, no annotations, output schema exists but not described), the description is far too minimal. It does not cover essential aspects like available actions, parameter roles, or return value, leaving the agent underinformed.

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

Parameters1/5

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

The input schema has 0% description coverage, and the description does not explain any of the five parameters (action, run_id, refresh, path, workspace). The agent gets no additional meaning beyond the parameter names and types.

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?

The description clearly states the tool is for running diagnostics and metadata actions on the bridge and agy CLI, which distinguishes it from sibling tools focused on other operations like goals, login, and review. However, 'bounded diagnostics' is somewhat vague, preventing 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 Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like agy_run_start or agy_review_commit. The description only notes the scope (bridge and agy CLI), leaving the agent to infer usage context without clear exclusion criteria.

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

agy_goalC

Manage bridge scheduler goals with actions create, start_target, status.

dangerously_skip_permissions must be true when supplied.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
actionYes
promptNo
goal_idNo
sandboxNo
objectiveNo
workspaceNo
target_nameNo
max_parallelNo
timeout_secondsNo
additional_directoriesNo
dangerously_skip_permissionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It lists actions that imply mutations (create, start_target) but does not explain side effects, permission requirements, or what happens on success/failure. The warning about 'dangerously_skip_permissions' is a useful clue but is far from comprehensive behavioral transparency.

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

Conciseness2/5

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

The description is short and front-loaded, but it is under-specified for a tool with 12 parameters and 3 actions. The second sentence about dangerously_skip_permissions is a terse constraint that lacks context. It is concise but not appropriately sized for the tool's complexity.

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

Completeness1/5

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

Given 12 parameters, 0% schema coverage, and no annotations, this description is grossly incomplete. It fails to explain how to select an action, what parameters mean, or what behavior to expect. The existence of an output schema covers return values, but that does not compensate for the missing input semantics and behavioral context.

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

Parameters1/5

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

Schema coverage is 0%, so the description must compensate for the 12 undocumented parameters. It only mentions one parameter (dangerously_skip_permissions) and only gives a compliance requirement, not meaning. All other parameters (model, prompt, goal_id, sandbox, objective, workspace, target_name, max_parallel, timeout_seconds, additional_directories) are left entirely unexplained.

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?

The description states a clear resource ('bridge scheduler goals') and enumerates the supported actions ('create, start_target, status'), which distinguishes it from siblings like agy_run_start or agy_review_files. 'Manage' is broad, but the action list narrows the purpose enough for selection.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the many sibling tools. The only usage hint is the constraint that 'dangerously_skip_permissions must be true when supplied,' but that is a parameter constraint, not guidance on when to invoke this tool.

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

agy_loginC

Refresh Antigravity auth state and optionally open one login session.

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshNo
force_newNo
workspaceNo
open_terminalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It only mentions refresh and opening a login session without explaining side effects, prerequisites, or whether it's interactive.

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?

The description is a single concise sentence, but it lacks sufficient detail. While front-loaded, it sacrifices completeness for brevity.

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

Completeness1/5

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

Given the tool has 4 optional parameters, no schema descriptions, and no annotations, the one-line description is grossly inadequate for an agent to use it correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the four parameters. The parameter names give hints, but the tool definition adds no explicit meaning.

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?

The description clearly states the tool refreshes auth state and optionally opens a login session, using specific verbs and resources. It distinguishes from sibling tools which focus on reviews, runs, and admin tasks.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as when a login session is needed or how it relates to other auth-related tools.

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

agy_review_branchA

Start a typed review Run for branch and working-tree changes.

Keep issue focused and use narrow scope_paths when possible. Wait for completion with agy_run_wait, then prefer agy_review_result. Avoid frequent agy_run_observe(include_terminal_tail=True) calls unless debugging the bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueYes
modelNo
sandboxNo
base_refNo
workspaceYes
output_fileNo
scope_pathsNo
conversation_idNo
timeout_secondsNo
include_untrackedNo
additional_directoriesNo
dangerously_skip_permissionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It usefully discloses that this is an asynchronous run requiring agy_run_wait and that agy_run_observe should be avoided except for bridge debugging. However, it does not mention side effects, permissions, sandbox behavior, or whether the operation is read-only, leaving important behavioral gaps.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core purpose, followed by efficient workflow guidance. Every sentence earns its place and there is no filler or repetition of schema content.

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?

Despite having an output schema, the tool has 12 parameters, no annotations, and zero schema descriptions. The description covers the run lifecycle but leaves many critical parameters unexplained, making it incomplete for an agent trying to invoke the tool correctly with all options.

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

Parameters2/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 for undocumented parameters. It only adds meaning for scope_paths ('use narrow scope_paths') and indirectly for issue ('Keep issue focused'). The other ten parameters, including base_ref, sandbox, include_untracked, and dangerously_skip_permissions, receive no explanation in the description.

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?

The description opens with a specific verb-resource pair: 'Start a typed review Run' for 'branch and working-tree changes.' This clearly distinguishes it from siblings like agy_review_commit and agy_review_files, which target different review scopes.

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?

The description provides concrete workflow guidance: wait with agy_run_wait, prefer agy_review_result, and avoid frequent agy_run_observe calls. It does not explicitly state when to choose this tool over agy_review_commit or agy_review_files, but the scope distinction is implied.

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

agy_review_commitA

Start a typed review Run for one commit and return immediately.

Keep issue focused and use narrow scope_paths when possible. After the run completes, prefer agy_review_result over manually polling raw artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueYes
modelNo
commitYes
sandboxNo
workspaceYes
output_fileNo
scope_pathsNo
conversation_idNo
timeout_secondsNo
additional_directoriesNo
dangerously_skip_permissionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It usefully discloses that the tool returns immediately and that the run completes later, implying async behavior and artifacts. However, it does not mention side effects, permission requirements, sandbox behavior, or what persistent state is created.

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

Conciseness5/5

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

Three short sentences with no filler. The first states the core action, the second gives scoping guidance, and the third directs follow-up behavior. Every sentence earns its place.

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?

For an 11-parameter async tool with no annotations and zero schema coverage, the description is too thin. It covers the essential starting action and follow-up routing, but an agent cannot confidently infer required commit/workspace semantics, prerequisites, or side effects.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only references scope_paths and a focused issue. Required parameters like commit and workspace are left semantically unexplained, and model, sandbox, timeout_seconds, output_file, and dangerously_skip_permissions receive no guidance.

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?

The description names a specific verb and resource: 'Start a typed review Run for one commit and return immediately.' This also distinguishes it from sibling tools like agy_review_branch and agy_review_files by scoping it to a single commit.

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?

It gives practical usage guidance: 'Keep issue focused and use narrow scope_paths when possible.' It also explicitly routes post-completion behavior to agy_review_result instead of polling raw artifacts. It does not provide a full comparison against all review siblings, but the single-commit scope implies the boundary.

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

agy_review_filesC

Start an artifact-gated typed review Run for local files.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueYes
modelNo
pathsYes
sandboxNo
workspaceYes
output_fileNo
conversation_idNo
timeout_secondsNo
additional_directoriesNo
dangerously_skip_permissionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds 'artifact-gated' and 'typed' as behavior hints, but does not explain what artifact gating means, whether the Run is asynchronous, what permissions are required, or what side effects occur. This leaves too much behavior opaque.

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

Conciseness2/5

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

The description is a single front-loaded sentence with no filler, which is structurally clean. However, it is too thin for a 10-parameter tool: 'artifact-gated' and 'typed' are jargon that would benefit from explanation, and no parameter-related structure is included. This is under-specification rather than effective conciseness.

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?

Given 10 parameters, an output schema, and no annotations, a one-sentence description is insufficient for correct invocation. It omits context about required inputs, the Run lifecycle, and the meaning of artifact gating. While the output schema may cover return values, the description still fails to provide enough surrounding context.

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

Parameters1/5

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

Schema description coverage is 0% across 10 parameters, including required fields such as paths, issue, and workspace. The description never explains these parameters, their defaults, or their relationships; 'local files' only weakly maps to paths. This is a severe gap for a tool with many undocumented parameters.

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?

The description states a specific action—'Start'—and a resource: 'artifact-gated typed review Run for local files.' It also distinguishes itself from sibling review tools like agy_review_commit and agy_review_branch by targeting local files. However, key terms like 'artifact-gated' and 'typed' are left undefined, preventing a perfect score.

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 'for local files' gives a clear context for when to use this tool. Yet it does not explicitly contrast it with alternative siblings such as agy_run_start, agy_review_commit, or agy_review_branch, nor does it state when not to use it.

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

agy_review_resultA

Validate and summarize the artifact from a typed review Run.

Preferred way to consume completed commit, branch, or file review Runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the core behavior (validate/summarize) and the precondition (completed runs), but leaves 'consume' ambiguous and doesn't state whether calling has side effects or whether results are one-time. This is minimal but not misleading.

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

Conciseness5/5

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

Two sentences, action-first, no filler; the second sentence adds practical guidance. This is appropriately concise and well-structured.

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

Completeness3/5

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

For a one-parameter tool with an output schema, the description covers the basic call context and intended use. However, with no annotations, it omits side-effect behavior, alternative tools, and run_id provenance, leaving an agent to infer too much. Adequate but not complete.

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

Parameters2/5

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

The schema only defines run_id as a required string and description coverage is 0%. The description never explains what run_id refers to or how to obtain it; it only implies a Run is identified. For a single self-descriptive parameter this is a moderate gap, but the lack of compensation for 0% coverage reduces the score.

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?

The description uses concrete verbs ('Validate and summarize') and names the resource ('artifact from a typed review Run'). It also states the intended scope ('commit, branch, or file review Runs'), which helps distinguish it from generic run tools. It doesn't explicitly name sibling agy_run_result, so some ambiguity remains.

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?

It explicitly positions itself as the 'Preferred way to consume completed ... review Runs', giving a direct usage condition. It does not mention when to avoid it or name alternative tools, but the context is clear enough.

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

agy_run_cancelC

Cancel one active Run and terminate its Antigravity process group.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description indicates a destructive action (cancel, terminate) but lacks details on permissions, reversibility, side effects, or what happens to the process group.

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?

A single concise sentence, but it omits necessary details about usage and behavior. More information could be added without losing conciseness.

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?

For a simple tool with one parameter and no nested objects, the description is incomplete: it lacks explanation of the parameter, expected state of the run (must be active), and the nature of the response despite an output schema existing.

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

Parameters2/5

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

Only one parameter (run_id) with 0% schema description coverage. The description does not explain what run_id is, its format, or how to obtain it, relying solely on the parameter name.

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?

The description clearly states the tool cancels an active Run and terminates its Antigravity process group, using specific verb and resource. It distinguishes from siblings like agy_run_start or agy_run_wait.

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

Usage Guidelines2/5

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

No guidance on when to use cancel versus other run operations (e.g., agy_run_wait, agy_run_observe). No prerequisites or conditions mentioned.

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

agy_run_inputB

Send input to a live foreground Run with optional stale-write guards.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
enterNo
run_idYes
expected_event_keyNo
expected_transcript_stepNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of disclosing behavior. It mentions 'stale-write guards' but does not explain what they do when triggered (e.g., error handling, idempotency). No mention of side effects or prerequisites like authentication.

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?

The description is a single, well-structured sentence that front-loads the main action and key feature. No wasted words.

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?

Despite an output schema existing, the tool has 5 parameters with 0% schema coverage in the description. The description omits details about parameter types, constraints, and the stale-write guard mechanism, making it incomplete for an agent to use correctly without additional knowledge.

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

Parameters2/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. It only mentions the core action and 'stale-write guards' vaguely. Parameters like expected_event_key and expected_transcript_step are not explained, leaving ambiguity about their purpose and format.

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?

The description clearly states the action ('Send input'), the target resource ('a live foreground Run'), and a specific feature ('optional stale-write guards'). It distinguishes from sibling tools like agy_run_cancel or agy_run_observe by focusing on input delivery.

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 'live foreground Run' implies it should be used only when a run is active, but there is no explicit guidance on when to use this tool versus alternatives like agy_run_start or agy_run_result. The description lacks explicit when-to-use and when-not-to-use instructions.

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

agy_run_observeA

Inspect Run state through one lean observation surface.

view="full" returns merged observable state for all run_ids. view="status", "transcript", or "terminal" requires exactly one run_id and returns the corresponding focused view.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNofull
afterNo
limitNo
compactNo
run_idsYes
max_charsNo
after_stepNo
include_contentNo
timeout_secondsNo
max_content_charsNo
include_terminal_tailNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description bears full burden. It implies read-only through 'inspect' and 'observation', but does not explicitly state non-destructiveness or any side effects. Adequate but not thorough.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, then parameter details. No redundancy or fluff. Highly efficient.

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?

Despite having an output schema, the description lacks coverage for most parameters (9 out of 11). The tool is complex with many configuration options, but only the view parameter is well explained. Incomplete guidance for effective use.

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

Parameters2/5

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

Schema description coverage is 0%, so description must compensate. It explains 'run_ids' cardinality and all 'view' values, but leaves 9 other parameters (like 'after', 'limit', 'compact') completely unexplained. Only 2 of 11 parameters are addressed.

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?

The description clearly states it is for inspecting run state, with specific view options. It distinguishes from sibling tools that perform actions like cancel, start, or wait, by focusing on observation.

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?

The description provides clear guidance on when to use different views: 'full' for multiple run_ids, others for exactly one. However, it does not explicitly compare to sibling tools or state when to choose this over them.

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

agy_run_resultB

Read final result metadata, or a bounded chunk when offset_bytes is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYes
max_bytesNo
offset_bytesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry the burden. It discloses the main behavioral trait: offset_bytes enables bounded chunk reading. However, it does not state whether the operation is idempotent, what happens if the run is incomplete, or any rate limits or size constraints.

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

Conciseness5/5

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

The description is a single, well-structured sentence that is front-loaded with the core purpose. Every word is necessary; there is no redundancy or verbosity.

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

Completeness3/5

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

Given the presence of an output schema (no need to explain return values), the description adequately covers the two operation modes. However, it lacks lifecycle context (e.g., that it should only be called after a run completes) and does not mention the relationship to other run-related tools.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should explain parameters. It only mentions offset_bytes's role (bounded chunk) but does not clarify run_id (required identifier) or max_bytes (default chunk size). The description adds limited value beyond the schema structure.

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?

The description clearly states the tool reads final result metadata and distinguishes two modes: full read or chunked read when offset_bytes is set. The verb 'Read' and resource 'final result metadata' are specific, and it differentiates from sibling tools like agy_run_input or agy_run_observe.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., that the run must be completed), nor does it contrast with similar siblings like agy_run_observe or agy_review_result.

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

agy_run_startA

Start or continue one foreground Antigravity Run.

mode="task" starts a normal bridge-owned task. mode="interactive" starts a persistent conversation session that should be used sparingly. Supplying conversation_id continues that exact Antigravity conversation. Use agy_start_with_expected_file for reviews and other artifact-producing tasks. dangerously_skip_permissions must be true; the bridge always forwards --dangerously-skip-permissions to Antigravity.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNotask
modelNo
promptYes
sandboxNo
workspaceYes
conversation_idNo
timeout_secondsNo
additional_directoriesNo
dangerously_skip_permissionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does disclose key non-obvious behavior: foreground vs. persistent sessions, bridge-owned tasks, and that --dangerously-skip-permissions is always forwarded. It does not discuss failure modes or resource side effects, but the important behavioral constraints are present.

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

Conciseness5/5

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

Four compact sentences, each carrying distinct information with no filler. The purpose is front-loaded and the mode details, sibling pointer, and permission constraint are separated logically.

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?

Given the 9-parameter surface and no annotations, the description covers the main behavioral choices and the key exclusion. It does not connect to the run lifecycle siblings (e.g., agy_run_wait/result) or clarify workspace prerequisites, so a small completeness gap remains.

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 0%, yet the description explains the three least obvious parameters: mode values, conversation continuation semantics, and the required dangerously_skip_permissions flag. Several other parameters (model, sandbox, timeout_seconds, additional_directories) are left to inference from their names, so the compensation is partial.

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?

The first sentence names a specific action (start or continue) and resource (one foreground Antigravity Run), and the mode breakdown adds precision. It also names the sibling for artifact-producing tasks, so the agent can distinguish it from agy_start_with_expected_file.

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

Usage Guidelines5/5

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

It explicitly tells the agent when to use the alternative ('reviews and other artifact-producing tasks') and when to be cautious (interactive mode sparingly). It also explains how conversation_id continues an existing conversation, which guides invocation.

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

agy_run_waitA

Wait for sparse Run events instead of repeatedly polling status.

run_ids is always a list, even for one Run. Supported condition values: any_attention, any_terminal, all_terminal, any_event, plus aliases attention, terminal, finished, finish, complete, completed, result, all_finished, all_complete, and all_completed.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNo
run_idsYes
conditionNoany_attention
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It explains condition values and aliases)Skip and positions the operation as a wait, but it does not explicitly disclose blocking semantics, behavior on timeout, or the meaning of 'after'. This leaves important behavioral details implicit.

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

Conciseness5/5

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

The description is compact and front-loaded. The first sentence gives the purpose, and the remaining text packs parameter and condition semantics with no wasted words.

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

Completeness3/5

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

The description is strong on purpose and condition values, but the 'after' parameter is completely unexplained and the blocking/timeout behavior is only implied. Since an output schema exists, return values do not need description, but the gaps around 'after' and timeout reduce completeness.

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. It usefully explains that run_ids is always a list and expands condition aliases, but it says nothing about 'after' or 'timeout_seconds', leaving two parameters underspecified.

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?

The first sentence states a specific verb ('Wait'), a resource ('sparse Run events'), and contrasts with the common polling pattern. This clearly differentiates the tool from sibling tools like agy_run_observe or agy_run_result.

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?

The description gives clear context: use this instead of repeatedly polling status. It does not explicitly name alternatives or list when-not-to-use scenarios, but the core usage pattern is communicated effectively.

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

agy_start_with_expected_fileC

Start one task Run that cannot complete until expected_file is non-empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
promptYes
sandboxNo
workspaceYes
expected_fileYes
conversation_idNo
timeout_secondsNo
additional_directoriesNo
dangerously_skip_permissionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses only that the run blocks until expected_file is non-empty. It omits blocking/return semantics, what happens on timeout or missing file, side effects of starting a run, and the safety-relevant default of dangerously_skip_permissions=true. For a launch-type tool with zero annotation coverage, this is a significant gap.

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?

A single, front-loaded sentence with no wasted words. It is genuinely concise, though borderline over-terse given how much behavioral and parameter information it withholds.

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?

For a tool with 9 parameters, no annotations, and 0% schema coverage, one sentence is inadequate. It fails to explain blocking semantics, the timeout default, the permission-skipping default, or parameter purposes. The output schema covers return values, but the rest of the calling context is missing.

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

Parameters2/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, but it only clarifies expected_file's role (the run waits for it). The other eight parameters — including the safety-critical dangerously_skip_permissions, timeout_seconds, sandbox, and model — are left unexplained by both schema and description.

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?

Uses a specific verb (Start) and resource (task Run), and states the defining gating condition — the run 'cannot complete until expected_file is non-empty.' This conveys the tool's distinctive behavior relative to generic siblings like agy_run_start, though it never names a sibling explicitly.

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

Usage Guidelines2/5

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

Gives no guidance on when to use this tool versus alternatives. Siblings include agy_run_start (the generic start), agy_run_wait, and agy_run_cancel, but no when/when-not conditions or alternative routing is provided. Usage is only implied by the name and the file-gating condition.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.12
    • Changedagy_goal1 field changed
      • changedInput schema / properties / model / default
        Previous value: -"Gemini 3.5 Flash (Medium)"New value: +null
    • Changedagy_review_branch1 field changed
      • changedInput schema / properties / model / default
        Previous value: -"Gemini 3.5 Flash (Medium)"New value: +null
    • Changedagy_review_commit1 field changed
      • changedInput schema / properties / model / default
        Previous value: -"Gemini 3.5 Flash (Medium)"New value: +null
    • Addedagy_review_files
    • Changedagy_run_start1 field changed
      • changedInput schema / properties / model / default
        Previous value: -"Gemini 3.5 Flash (Medium)"New value: +null
    • Changedagy_run_wait1 field changed
      • changedInput schema / properties / after / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedagy_start_with_expected_file1 field changed
      • changedInput schema / properties / model / default
        Previous value: -"Gemini 3.5 Flash (Medium)"New value: +null
  2. 1 tool updatev0.1.7
    • Changedagy_run_wait1 field changed
      • addedInput schema / properties / condition / enum
        Added value: +[
        +  "any_event",
        +  "any_attention",
        +  "any_terminal",
        +  "all_terminal",
        +  "event",
        +  "attention",
        +  "terminal",
        +  "finished",
        +  "finish",
        +  "complete",
        +  "completed",
        +  "result",
        +  "all_finished",
        +  "all_complete",
        +  "all_completed"
        +]
  3. 30 tool updatesv0.1.6
    • Addedagy_admin
    • Removedagy_cancel
    • Removedagy_changelog
    • Removedagy_continue
    • Removedagy_doctor
    • Addedagy_goal
    • Removedagy_goal_create
    • Removedagy_goal_status
    • Removedagy_goal_target_start
    • Removedagy_interactive_start
    • Addedagy_login
    • Removedagy_models
    • Removedagy_plugin_validate
    • Removedagy_plugins
    • Removedagy_result
    • Addedagy_review_branch
    • Addedagy_review_commit
    • Addedagy_review_result
    • Addedagy_run_cancel
    • Addedagy_run_input
    • Addedagy_run_observe
    • Addedagy_run_result
    • Addedagy_run_start
    • Addedagy_run_wait
    • Removedagy_start
    • Addedagy_start_with_expected_file
    • Removedagy_status
    • Removedagy_target_open_terminal
    • Removedagy_target_send_text
    • Removedagy_transcript
  4. 11 tool updatesv0.1.2
    • Addedagy_changelog
    • Changedagy_continue3 fields changed
      • addedInput schema / properties / additional_directories
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Additional Directories"
        +}
      • addedInput schema / properties / sandbox
        Added value: +{
        +  "default": false,
        +  "title": "Sandbox",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / visible_terminal
        Removed value: -{
        -  "default": true,
        -  "title": "Visible Terminal",
        -  "type": "boolean"
        -}
    • Addedagy_doctor
    • Changedagy_goal_create3 fields changed
      • addedInput schema / properties / additional_directories
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Additional Directories"
        +}
      • addedInput schema / properties / dangerously_skip_permissions
        Added value: +{
        +  "default": true,
        +  "title": "Dangerously Skip Permissions",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / sandbox
        Added value: +{
        +  "default": false,
        +  "title": "Sandbox",
        +  "type": "boolean"
        +}
    • Changedagy_goal_target_start6 fields changed
      • addedInput schema / properties / additional_directories
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Additional Directories"
        +}
      • addedInput schema / properties / dangerously_skip_permissions / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / dangerously_skip_permissions / default
        Previous value: -trueNew value: +null
      • removedInput schema / properties / dangerously_skip_permissions / type
        Removed value: -"boolean"
      • addedInput schema / properties / sandbox
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Sandbox"
        +}
      • removedInput schema / properties / visible_terminal
        Removed value: -{
        -  "default": true,
        -  "title": "Visible Terminal",
        -  "type": "boolean"
        -}
    • Addedagy_interactive_start
    • Addedagy_models
    • Addedagy_plugin_validate
    • Addedagy_plugins
    • Changedagy_start3 fields changed
      • addedInput schema / properties / additional_directories
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Additional Directories"
        +}
      • addedInput schema / properties / sandbox
        Added value: +{
        +  "default": false,
        +  "title": "Sandbox",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / visible_terminal
        Removed value: -{
        -  "default": true,
        -  "title": "Visible Terminal",
        -  "type": "boolean"
        -}
    • Addedagy_target_send_text
  5. 10 tool updatesv0.1.0
    • First observedagy_cancel
    • First observedagy_continue
    • First observedagy_goal_create
    • First observedagy_goal_status
    • First observedagy_goal_target_start
    • First observedagy_result
    • First observedagy_start
    • First observedagy_status
    • First observedagy_target_open_terminal
    • First observedagy_transcript

TDQS

B3.2/5.0

Scored across 14 tools

Disambiguation4/5

Most tools cleanly separate run lifecycle, review workflows, and bridge administration. The main ambiguity is that agy_run_start, agy_start_with_expected_file, agy_review_commit, agy_review_files, and agy_review_branch are all ways to start a run, and agy_run_result versus agy_review_result require careful reading.

Naming Consistency4/5

The shared agy_ prefix and snake_case convention make the set readable, and most tools follow a verb_noun style. Deviations like agy_start_with_expected_file, agy_admin, and agy_goal break the pattern slightly, but not enough to cause real confusion.

Tool Count5/5

Fourteen tools is a well-scoped surface for a bridge that manages run execution, review workflows, goals, login, and diagnostics. Each tool covers a distinct operation without feeling bloated or redundant.

Completeness4/5

The surface covers the full run lifecycle (start, wait, observe, input, cancel, result) and the main review workflows for commits, branches, and files. There are minor gaps such as no obvious way to enumerate all active runs without prior run IDs and limited goal mutation beyond status actions.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers