Antigravity Codex MCP
This server is an MCP bridge that lets Codex explicitly delegate project-scoped work to Google Antigravity CLI while keeping it read-only and isolated.
Check bridge health, AGY binary/version, and one project’s enablement/trust/read-authorization status.
Enable or disable AGY for exactly one project root; enablement only adds that exact root to trusted workspaces/read rules, and disablement preserves history.
Start, fetch, or list project-scoped AGY conversations, and delegate new analysis, continue existing conversations, or request independent reviews.
Synchronize official AGY transcripts into a project-local visible mirror, filtering internal thinking/system/checkpoint records; read bounded user/assistant/tool transcripts.
Execute implementation tasks in a disposable isolated workspace: apply only schema-validated full-file replacements, optionally run a fixed verification command, and never merge into source.
List and inspect audit runs, including responses, token usage, verification output, changed-file manifests, and sanitized tool events.
Keep project-local state so active conversations and delegation history survive across Codex tasks.
Avoid model turns for health/status/history/sync/inspection tools; only start/ask/continue/review/execute consume AGY model quota.
Provides integration with Google Antigravity CLI, allowing Codex agents to delegate project reviews, ask and continue conversations, sync transcripts, and perform isolated implementations within an explicitly enabled project scope.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Antigravity Codex MCPUse AGY to review the current project and summarize issues."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Antigravity Codex MCP
A controlled Model Context Protocol bridge that lets OpenAI Codex delegate work to Google Antigravity CLI on demand.
The bridge stays idle until a user explicitly asks Codex to use AGY. It then authorizes only the exact current project, keeps a project-scoped conversation, synchronizes user-visible dialogue, and confines generated implementation changes to an isolated copy.
This is an independent community project. It is not affiliated with or endorsed by Google or OpenAI.
Highlights
Explicit opt-in: Codex cannot enable or call AGY unless the user asks for it.
Exact project scope: broad roots and system directories are rejected.
Read-only delegation by default: no AGY write, command, URL, or MCP permission is granted.
Project conversations: active conversation IDs and delegation history survive new Codex tasks.
Visible transcript sync: messages entered through AGY CLI become available to Codex on the next sync.
Private-reasoning filter: thinking/reasoning fields, system messages, and checkpoints are excluded before persistence or MCP return.
Isolated implementation: validated full-file replacements are applied only to a disposable project copy.
Auditable runs: responses, changed-file manifests, verification output, and sanitized tool events are retained locally.
Related MCP server: codex-agy-bridge
Requirements
Node.js 20 or newer
Authenticate Antigravity CLI and verify that agy is available:
agy --version
agy -p "Reply exactly: AGY_OK" --output-format jsonIf agy is not on PATH, set AGY_BIN to its executable path in the MCP configuration.
Installation
git clone https://github.com/ustc-fyk/antigravity-codex-mcp.git
cd antigravity-codex-mcp
npm ci
npm testAdd the server to your Codex config.toml. Replace the example paths with the absolute clone path on your machine:
Linux / macOS:
[mcp_servers.antigravity]
command = "node"
args = ["/path/to/antigravity-codex-mcp/src/index.js"]
cwd = "/path/to/antigravity-codex-mcp"
enabled = true
required = false
startup_timeout_sec = 20
tool_timeout_sec = 900
default_tools_approval_mode = "prompt"
enabled_tools = [
"antigravity_health",
"antigravity_project_status",
"antigravity_enable_project",
"antigravity_disable_project",
"antigravity_start_session",
"antigravity_get_active_session",
"antigravity_list_sessions",
"antigravity_sync_conversation",
"antigravity_get_transcript",
"antigravity_ask",
"antigravity_continue",
"antigravity_review",
"antigravity_execute",
"antigravity_list_runs",
"antigravity_get_run",
]
# Optional when agy is not available on PATH:
# [mcp_servers.antigravity.env]
# AGY_BIN = "/path/to/agy"Windows:
[mcp_servers.antigravity]
command = "node"
args = ['C:\path\to\antigravity-codex-mcp\src\index.js']
cwd = 'C:\path\to\antigravity-codex-mcp'
enabled = true
required = false
startup_timeout_sec = 20
tool_timeout_sec = 900
default_tools_approval_mode = "prompt"
enabled_tools = [
"antigravity_health",
"antigravity_project_status",
"antigravity_enable_project",
"antigravity_disable_project",
"antigravity_start_session",
"antigravity_get_active_session",
"antigravity_list_sessions",
"antigravity_sync_conversation",
"antigravity_get_transcript",
"antigravity_ask",
"antigravity_continue",
"antigravity_review",
"antigravity_execute",
"antigravity_list_runs",
"antigravity_get_run",
]
# Optional when agy is not available on PATH:
# [mcp_servers.antigravity.env]
# AGY_BIN = 'C:\path\to\agy.exe'Install the included Codex Skill so Codex follows the opt-in workflow:
Linux / macOS (Bash):
mkdir -p ~/.codex/skills/agy-project-assistant
cp ./skills/agy-project-assistant/SKILL.md ~/.codex/skills/agy-project-assistant/Windows (PowerShell):
$skillRoot = Join-Path $env:USERPROFILE ".codex\skills\agy-project-assistant"
New-Item -ItemType Directory -Force $skillRoot | Out-Null
Copy-Item ".\skills\agy-project-assistant\SKILL.md" $skillRootRestart Codex after changing MCP configuration or installing the Skill.
Usage
Open any project directory in Codex.
Work normally; the AGY bridge remains idle.
Explicitly ask:
Load AGY and review this project.Codex enables read access for that exact project and starts or reuses its AGY conversation.
Codex delegates analysis, review, continuation, or isolated implementation as appropriate.
Ask
Disable AGY for this projectto revoke the exact project permission while preserving local audit history.
To inspect or participate in the same conversation directly:
agy --conversation=<conversation_id>After sending messages through AGY CLI, ask Codex to sync the AGY conversation. antigravity_continue also synchronizes before and after every follow-up. Synchronization is on demand, not a live push channel, so avoid simultaneous sends from Codex and AGY CLI.
MCP tools
Area | Tools |
Health and lifecycle |
|
Conversations |
|
Visible transcripts |
|
Isolated implementation |
|
Model calls occur only through the start, ask, continue, review, and execute tools. Health, status, history, run inspection, and transcript synchronization do not consume an AGY model turn.
Project-local state
Each enabled project receives an ignored local state directory:
.antigravity-mcp/
├── project.json
├── sessions.jsonl
├── transcripts/
│ └── <conversation-id>.jsonl
└── runs/
└── <run-id>/
├── metadata.json
├── events.jsonl
├── response.md
└── workspace/project.jsonrecords opt-in state and the active conversation.sessions.jsonlrecords delegated calls and token usage.transcriptscontains only visible user/assistant records and sanitized tool traces.runscontains isolated implementation workspaces and audit results.
This directory is excluded from the source copy and ignored by Git. Do not commit it manually because it may contain private project or conversation data.
Safety model
Project enablement atomically adds only the exact root to Antigravity trustedWorkspaces and read_file(...) allow rules. Disablement removes only those exact entries.
Isolated implementation rejects:
absolute paths and parent traversal;
file deletion;
secret files, dependencies, build output, metadata, and symbolic links;
more than 50 changed files;
more than 2,000,000 replacement characters.
Any dependency, cache, virtual-environment, build, or metadata directory is excluded at every nesting depth, including monorepo packages. Project-local state uses a managed * rule so project.json, sessions.jsonl, runs, and transcripts are all ignored by Git.
Verification is an explicit high-risk operation: a non-none verification value also requires allow_untrusted_verification: true. Commands such as npm test or pytest execute code from the AGY-influenced isolated workspace. The isolated directory protects the source tree, but it is not an OS security sandbox. The combined AGY and verification timeout budget is capped below the recommended 900-second MCP timeout.
AGY and verification timeouts terminate the full spawned process tree. Health checks have a 15-second default timeout and a 64 KiB output limit. Settings locks contain PID/timestamp metadata and dead-process locks are recovered automatically.
The transcript pipeline recursively removes private reasoning fields and excludes system/checkpoint records before writing the project mirror. See SECURITY.md for reporting guidance and limitations.
Operator environment variables
AGY_BIN: AGY executable path; defaults toagyonPATH.AGY_HEALTH_TIMEOUT_MS: health-check timeout, clamped to 100–60,000 ms.ANTIGRAVITY_SETTINGS_PATH: override the AGY settings file path.ANTIGRAVITY_CLI_DATA_DIR: override the AGY CLI data root used for transcript lookup.ANTIGRAVITY_ALLOWED_ROOTS: static path-delimited root fence in addition to dynamic project authorization.ANTIGRAVITY_USE_SANDBOX: request AGY CLI's optional sandbox mode.ANTIGRAVITY_PASSTHROUGH_ENV: comma-separated extra environment-variable names. Names that look sensitive are rejected by default.ANTIGRAVITY_ALLOW_SENSITIVE_ENV_PASSTHROUGH: high-risk override for sensitive extra names; use only after explicit risk acceptance.
Development
npm ci
npm test
npm run smoke:mcpLive checks require an authenticated AGY CLI and consume model quota:
npm run smoke:live
npm run smoke:execute
npm run smoke:project -- "/absolute/path/to/disposable-project"
npm run smoke:continue -- "/absolute/path/to/enabled-project"
npm run smoke:transcript -- "/absolute/path/to/enabled-project"npm test is self-contained. smoke:mcp also checks the local AGY binary, while the remaining smoke tests may change project authorization or consume quota.
License
Available Tools
15 toolsantigravity_askDelegate a new analysis to AntigravityARead-only
Start a new read-only AGY analysis conversation for an enabled project and persist it as active.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Optional Antigravity model slug; omit to use the account default. | |
| effort | No | ||
| prompt | Yes | ||
| project_root | Yes | Absolute root directory of the current Codex project. | |
| timeout_seconds | No | ||
| max_response_chars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's 'read-only' aligns with that. The description adds that the conversation is 'persisted as active,' which is a behavioral trait beyond the annotations. It doesn't contradict annotations, and it adds useful context about the tool's side effect (persisting active state) despite being read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose and key constraint ('read-only', 'enabled project', 'persist as active'). No wasted words, and it's 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters, no output schema, and moderate annotations. The description covers the core purpose but doesn't explain return values, error conditions, or the meaning of 'persist as active' in terms of session lifecycle. Given the complexity (starting a conversation with many options), the description is somewhat thin but not critically incomplete because the schema covers some parameters and annotations cover safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate for undocumented parameters. The description mentions 'project_root' and 'prompt' implicitly but doesn't explain any parameters explicitly. It doesn't add meaning beyond the schema for the two required params, and the optional params (model, effort, timeout_seconds, max_response_chars) are not described in the tool description. Given low coverage, a 3 is appropriate because it doesn't fully compensate but does at least imply the key inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Start a new read-only AGY analysis conversation') and the resource ('for an enabled project'), and it distinguishes from siblings by noting it persists the conversation as active. However, it doesn't explicitly contrast with antigravity_start_session, which could be a close sibling, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('for an enabled project') but does not explicitly state when to use this tool versus alternatives like antigravity_start_session or antigravity_continue. It lacks explicit exclusions or alternative recommendations, so it's adequate but not fully guiding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_continueContinue a project AGY conversationBRead-only
Continue a specified conversation or the project's active AGY conversation and persist the result.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Optional Antigravity model slug; omit to use the account default. | |
| effort | No | ||
| prompt | Yes | ||
| project_root | Yes | Absolute root directory of the current Codex project. | |
| conversation_id | No | ||
| timeout_seconds | No | ||
| max_response_chars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says the tool will 'persist the result', which indicates a write/mutating side effect, while annotations declare readOnlyHint: true. This is a direct annotation contradiction. The description also doesn't explain what persistence means to the user or how the returned data is materialized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. However, the brevity causes important context to be omitted, and the phrase 'persist the result' is compact but ambiguous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 7 parameters, no output schema, and sparse schema descriptions, yet the natural-language description only tells the agent what it generally does. It doesn't explain return shapes, response truncation, timeout behavior, active-conversation selection semantics, or how this relates to the sibling session-management and execution tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29%, and the description does not make up for the gap. It explains there is a choice between a specified conversation and the active one, but it doesn't describe prompt, effort, conversation_id, timeout_seconds, max_response_chars, or how project_root is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('continue') and a specific resource ('a specified conversation or the project's active AGY conversation'), clearly distinguishing it from siblings like start_session or get_transcript. The persistence clause adds a useful goal element, making the tool's purpose practically unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the tool should be used when an existing conversation already exists, but it doesn't explicitly state when to prefer this over antigravity_start_session, antigravity_ask, or antigravity_get_transcript. No exclusions or prerequisites are given beyond the ability to target either a specified conversation or the active one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_disable_projectDisable AGY for one projectAIdempotent
Remove only one project's exact Antigravity trusted workspace and read_file rule, mark it disabled, and preserve all local session and run history.
| Name | Required | Description | Default |
|---|---|---|---|
| project_root | Yes | Absolute root directory of the current Codex project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral detail beyond the annotations: it removes a specific rule, marks the project disabled, and preserves local session/run history. This complements idempotentHint=true and destructiveHint=false by clarifying that while a trusted rule is removed, user data is not destroyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
the description is a single sentence that starts with the action and carries no filler. Every phrase earns its place: scope ('one project'), specificity ('exact rule'), and preservation guarantees ('preserve all local session...').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a n-orderable tool with one parameter and no output schema, the description adequately explains the operation and its boundary conditions. It misses mentions of reversibility or whether running sessions are affected, but the essential behavior is complete enough for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the sole parameter project_root already has a clear schema description ('Absolute root directory...'). The tool description does not repeat or extend the parameter details, so it adds no extra param-level meaning, but the baseline is appropriate due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Remove') and resource ('one project's exact Antigravity trusted workspace and read_file rule'), which distinguishes this tool from siblings like antigravity_enable_project and antigravity_project_status. It also clarifies what is preserved ('all local session and run history'), making the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by emphasizing 'only one project's exact' rule, which suggests this is the targeted single-project disable tool rather than a broader operation. However, it does not explicitly name alternatives or state when-not-to-use it, such as the relationship to antigravity_enable_project or project_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_enable_projectEnable AGY for one projectAIdempotent
Initialize .antigravity-mcp in one exact project root and atomically add only that root to Antigravity trustedWorkspaces and read_file allow rules. Call only after the user explicitly requests AGY. Does not call a model.
| Name | Required | Description | Default |
|---|---|---|---|
| project_root | Yes | Absolute root directory of the current Codex project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly=false, idempotentHint=true, and destructiveHint=false. The description adds useful behavioral context beyond those: the operation is atomic, scoped to exactly one root, and 'Does not call a model.' This helps the agent understand side effects and execution characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and every clause adds value: initialization, atomicity, scoping, user-consent precondition, and the no-model-call note. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers purpose, scope, precondition, and behavioral nuances. It does not describe return values or failure modes, but the annotations and simple schema make this adequate. Overall it is complete enough for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: project_root is documented as 'Absolute root directory of the current Codex project.' The description adds the qualifier 'exact project root' but does not substantially extend the schema's parameter meaning. Baseline 3 is appropriate because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs and resources: 'Initialize .antigravity-mcp' and 'add only that root to Antigravity trustedWorkspaces and read_file allow rules.' It clearly distinguishes this enable operation from sibling tools like antigravity_disable_project and project status tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the precondition: 'Call only after the user explicitly requests AGY.' It also clarifies scope with 'one exact project root' and 'only that root,' giving clear context for when to invoke it. It does not explicitly mention alternatives, but the enabling-vs-disabling contrast with siblings is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_executeExecute a task in an isolated AGY workspaceA
For an enabled project, ask AGY for schema-validated file replacements, apply only validated paths to a disposable copy, optionally run one fixed verification, and never merge into source.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| model | No | Optional Antigravity model slug; omit to use the account default. | |
| effort | No | ||
| project_root | Yes | Absolute root directory of the current Codex project. | |
| verification | No | none | |
| timeout_seconds | No | ||
| max_response_chars | No | ||
| verification_timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds critical behavioral context beyond annotations: 'apply only validated paths to a disposable copy' and 'never merge into source.' Annotations indicate readOnlyHint=false and destructiveHint=false, but the description clarifies the non-destructive nature to the source while permitting changes on a disposable copy. It also discloses the validation step and optional verification, providing a comprehensive safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that efficiently communicates the core workflow and safety guarantees. It is front-loaded with the most important information (enabled project, schema validation, disposable copy, no merge) and contains zero fluff or redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, 2 enums, no output schema), the description captures the high-level workflow and safety model but omits details on parameter usage (e.g., what 'verification' options mean, the role of 'effort') and what the response will contain (since there is no output schema). It is sufficient for understanding intended use but incomplete for precise invocation without additional schema documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (2 of 8 parameters have descriptions). The description mentions 'ask AGY' implying task is the instruction, but it does not explain effort, verification, timeouts, or max_response_chars. It fails to compensate for the low schema coverage, leaving parameter meanings ambiguous for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'ask AGY for schema-validated file replacements, apply only validated paths to a disposable copy, optionally run one fixed verification, and never merge into source.' This is a specific verb (execute) with resource (task on an enabled project) and distinguishes it from siblings like antigravity_ask (query) or antigravity_start_session (session start) by emphasizing the apply/never-merge behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with 'For an enabled project,' implying a prerequisite and context. It says 'never merge into source,' suggesting safe testing use. However, it does not explicitly state when to prefer this over alternatives like antigravity_ask or antigravity_continue, nor does it list exclusions. The usage guidance is clear but lacks explicit when-not-to-use or alternative comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_get_active_sessionGet active project AGY sessionARead-onlyIdempotent
Return the active AGY conversation ID for a project without calling a model.
| Name | Required | Description | Default |
|---|---|---|---|
| project_root | Yes | Absolute root directory of the current Codex project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description adds genuine value by noting the operation does not call a model, implying no cost/latency and no side effects of generation — a behavioral trait beyond the annotations. No contradiction exists; in fact, the description reinforces the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the action verb 'Return' followed by the resource and key qualifier ('without calling a model'). Every word earns its place, and the cost-behavior qualifier carries decision-relevant weight rather than being filler. Exemplary economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity getter with one string parameter (100% schema coverage), robust annotations, and a clear return value (an ID), the description is fully adequate. The return value is obvious from 'Return the active AGY conversation ID,' and no output schema or additional behavioral caveats are necessary. The combination of description, schema, and annotations fully specifies this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the single parameter 'project_root' is already well documented in the schema as the absolute root directory, so the baseline of 3 applies. The description adds no parameter-specific detail, but none is needed given the schema's thoroughness for this simple path string parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ('Return') and resource ('active AGY conversation ID for a project'), clearly scoping what is retrieved. The phrase 'without calling a model' differentiates it from siblings like antigravity_ask, antigravity_continue, and antigravity_execute, which would invoke model processing. The purpose is unambiguous and distinguishes well from the sibling toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case — fetching a session ID cheaply without model invocation — which hints at when to prefer it over model-calling tools like ask/continue. However, it does not explicitly state when NOT to use it or name alternatives such as antigravity_list_sessions or antigravity_start_session, despite their close relevance. The usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_get_runInspect an isolated AGY runARead-onlyIdempotent
Read one project's run response, token usage, verification output, changed-file manifest, and optional external events.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| max_events | No | ||
| project_root | Yes | Absolute root directory of the current Codex project. | |
| include_events | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context by enumerating the read payload: response, token usage, verification output, changed-file manifest, and optional external events. This goes beyond the schema and annotation alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the core action and then compactly lists the returned content. There is no redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a read-only tool with clear annotations and a relatively simple parameter set, the description covers the key outputs well. It could be more complete by acknowledging max_events and include_events behavior, but the main purpose and returned data categories are clear enough for an AI to select the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description carries a heavy burden for parameter clarity. It does hint at include_events through 'optional external events,' but it does not explain the semantics of run_id or max_events, leaving those parameters underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and a precise resource ('one project's run response, token usage, verification output, changed-file manifest, and optional external events'). It clearly distinguishes this tool from list-oriented siblings by emphasizing a single, specific run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the main usage: inspect a particular run's detailed result data. However, it does not explicitly state when to prefer this over related tools such as antigravity_list_runs or antigravity_get_transcript, nor does it provide any exclusions or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_get_transcriptRead a visible AGY transcriptAIdempotent
Refresh and return the bounded project-local user/assistant/tool transcript for a registered AGY conversation. Internal thinking, system messages, and checkpoints are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
| refresh | No | ||
| max_chars | No | ||
| max_records | No | ||
| project_root | Yes | Absolute root directory of the current Codex project. | |
| conversation_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true, readOnlyHint=false, destructiveHint=false, so the description adds no contradiction. The description does add behavioral context: 'Refresh and return' indicates the operation may re-fetch, and it explicitly states what will not be returned ('Internal thinking, system messages, and checkpoints are never returned.') However, beyond these hints, no extra behavioral traits (e.g., side effects when refresh is true, auth needs, rate limits) are disclosed. It is consistent with annotations; also readOnlyHint=false and idempotentHint=true are fine because a'read' might imply idempotency and no destructive side effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, focused, and front-loaded with the core action: 'Refresh and return...'. Every sentence earns its place: the first states scope/object, the second clarifying limitations. No filler or redundant reinforcement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there's no output schema and 5 parameters, the description should explain what the tool returns and any effects of refresh. It states what is returned (user/assistant/tool transcript) and what is excluded, which is good. Still, it doesn't explain the meaning or behavior of the parameters (particularly refresh and conversation_id) and does not describe the return format (e.g., array of messages?). Missing the explicit need for registered conversation context (conversation_id optional?) and an example or caveat around max_chars/max_records. Thus it's adequate but with notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema shows 5 parameters with descriptions for project_root only (coverage 20%). The description mentions 'project-local' and 'bounded', giving light semantic context to project_root and max_chars/max_records. However, the description does not clarify conversation_id, refresh, max_chars, max_records beyond the schema's default and maximum. It adds a small amount of meaning (e.g., 'bounded' suggests records are limited, 'project-local' ties to project_root), but leaves all other parameter semantics up to the schema, so a 3 is reasonable for partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Read a visible AGY transcript' already clearly indicates a read operation, and the description enhances it with specificity: 'Refresh and return the bounded project-local user/assistant/tool transcript for a registered AGY conversation.' It clearly distinguishes from sibling tools like antigravity_ask or antigravity_get_active_session, though it doesn't explicitly name them as alternatives. The 'bounded' scope and exclusion of internal messages add clarity beyond the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly states when to use this tool: when you need the user/assistant/tool transcript of a registered AGY conversation. It also provides which exclusions (no internal thinking/system messages/checkpoints), which serves as guidance. However, there are no explicit when-not-to-use alternatives or references to sibling tools like antigravity_sync_conversation or antigravity_get_active_session, which limits clear differentation for the read-only transcript vs. other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_healthCheck Antigravity bridgeARead-onlyIdempotent
Check the configured agy binary and bridge version without enabling a project or consuming a model turn.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the annotations by disclosing that the tool does not enable a project or consume a model turn, reinforcing the read-only and idempotent behavior. It does not fully describe the output shape, but the annotations already establish the safety profile, and the description makes the non-mutating intent clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and resource. Every phrase earns its place, especially the side-effect qualifier 'without enabling a project or consuming a model turn.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless health-check tool with read-only, idempotent, and non-destructive annotations, the description covers the necessary behavioral guarantees and expected scope. It is fully usable by an agent deciding to invoke this lightweight check instead of more expensive session or project operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema already fully documents what can be passed. The description adds relevant context by explaining that this checks the configured agy binary and bridge version, which is helpful for understanding what the no-input tool actually inspects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it checks the configured agy binary and bridge version. It clearly distinguishes itself from sibling tools by framing this as a health/diagnostic action rather than a session or run operation, and adds the constraint that it doesn't enable a project or consume a model turn.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: use this when you need bridge health/version information and want to avoid side effects like enabling a project or consuming a turn. It does not explicitly name alternative tools or state when not to use it, so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_list_runsList isolated AGY runsARead-onlyIdempotent
List recent isolated execution runs for one project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project_root | Yes | Absolute root directory of the current Codex project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering the read-only and repeat-safe aspects of listing runs. The description adds contextual details like 'recent' and 'isolated', but it does not describe return values or potential side effects; the annotation coverage makes this acceptable for a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact sentence immediately describes the tool's action and scope; no filler or repetition with the name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, no output schema). However, the description omits the return shape and any pagination/defaulting details. Since the available annotations are minimal and the metadata describes a 'recent isolated runs' but not what the output list contains, completeness is only moderately handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema provides descriptions for only 1 of 2 parameters (project_root) and leaves the limit parameter without additional semantics beyond its type/default/min/max. With 50% schema coverage, a couple of extra details about the project_root path or limit behavior would have helped, but the schema supplies the core constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('list'), a specific resource ('isolated execution runs'), and a scope ('for one project'). It doesn't explicitly contrast itself with sibling session-list tools, but 'runs' vs 'sessions' narrows the operation enough to avoid ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context — a user who wants recent isolated runs in a project — and the term 'isolated runs' differentiates from session-oriented siblings without explicitly listing exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_list_sessionsList project AGY session eventsARead-onlyIdempotent
List recent persisted AGY delegation and conversation events for one project without calling a model.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project_root | Yes | Absolute root directory of the current Codex project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful contextual behavior beyond annotations by emphasizing 'persisted' events, 'without calling a model,' and one-project scoping, giving the agent a clearer picture of what the operation actually accesses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. Every phrase adds useful information: 'recent persisted,' 'AGY delegation and conversation events,' 'for one project,' and 'without calling a model.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, rich annotations, and clear input schema, the description is nearly complete. It does not describe the exact shape of returned events or pagination behavior, but for a list-style read tool without an output schema, the description provides enough context to understand the tool's purpose and side-effect profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: project_root has a clear schema description, while limit relies only on its numeric constraints and default. The description's word 'recent' connects conceptually to limit, but it does not explain parameter semantics in any detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb ('List'), a specific resource ('recent persisted AGY delegation and conversation events'), and a clear scope ('for one project'). The qualifier 'without calling a model' helps distinguish it from model-invoking sibling tools like antigravity_ask or antigravity_start_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when you need recent persisted session events for a project without incurring a model call. However, it does not explicitly name alternatives or state when-not-to-use, such as when the active session is needed (antigravity_get_active_session) or a full transcript is required (antigravity_get_transcript).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_project_statusCheck AGY project statusARead-onlyIdempotent
Check whether one exact project root is initialized, trusted, read-authorized, and linked to an active AGY conversation. Does not call a model.
| Name | Required | Description | Default |
|---|---|---|---|
| project_root | Yes | Absolute root directory of the current Codex project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond those annotations by stating that the tool does not invoke a model, which is useful for cost and side-effect expectations. It does not mention output format or error behavior, but for a simple read-only state check this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly written sentence that front-loads the core purpose and includes an important behavioral disclaimer. Every word contributes value; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: one parameter, rich annotations, and a clearly scoped purpose. However, the description never mentions what the tool returns or how the result is relayed to the agent. Since no output schema exists, describing the return value would materially improve completeness, but the current text is sufficient to understand the tool's place in a workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description bears little parameter burden. The single parameter, project_root, is already well-described in the schema as an absolute root directory. The description's phrase 'one exact project root' only slightly reinforces the expectation without adding new syntax, format, or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and resource ('whether one exact project root is initialized, trusted, read-authorized, and linked to an active AGY conversation'), clearly distinguishing this tool from siblings that list sessions, runs, or perform model-calling actions. The explicit note 'Does not call a model' further differentiates it from AI-invoking tools like ask/continue/review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: run this before AGY operations requiring an active project. However, it never explicitly states when to use this tool versus siblings, nor does it mention alternative tools for related checks. It provides context but no direct guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_reviewRequest an independent Antigravity reviewBRead-only
Start a read-only evidence-oriented review for an enabled project and persist the conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | ||
| model | No | Optional Antigravity model slug; omit to use the account default. | |
| effort | No | ||
| target | Yes | ||
| project_root | Yes | Absolute root directory of the current Codex project. | |
| timeout_seconds | No | ||
| max_response_chars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'evidence-oriented' and 'persist the conversation' as behavioral context beyond the annotations (readOnlyHint, destructiveHint). This is useful but minimal. It aligns with readOnlyHint (read-only) and doesn't contradict any annotation, though it doesn't disclose potential side effects like cost or throttling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It directly states the action and context, making it easy to scan. Every word adds meaning, so it earns high marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 7 parameters and no output schema, the description is extremely sparse. It doesn't describe what the tool returns (e.g., session ID, report), outline prerequisites beyond 'enabled project', or mention error handling. For a tool with this complexity, the description is insufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% (2/7 params have descriptions). The description itself mentions 'for an enabled project' hinting at project_root but provides no details on target, focus, effort, or other parameters. It fails to compensate for the low schema coverage, leaving the agent unsure of what 'target' refers to or how to use optional params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Start a read-only evidence-oriented review' for a project and persist the conversation. It specifies a distinct purpose (review) that differentiates it from sibling tools like listing sessions or runs. The verb+resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs. alternatives. It mentions 'for an enabled project' but doesn't explain prerequisites or exclusions. No sibling tools are referenced or contrasted, leaving the agent to infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_start_sessionStart a project AGY sessionBRead-only
Create a new AGY conversation for an enabled project, save it as active, and return its conversation ID. Consumes one Antigravity model turn.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Optional Antigravity model slug; omit to use the account default. | |
| effort | No | ||
| prompt | No | Register this project conversation and reply exactly: AGY_PROJECT_READY | |
| project_root | Yes | Absolute root directory of the current Codex project. | |
| timeout_seconds | No | ||
| max_response_chars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says the tool creates, saves, and consumes a turn, but the annotations declare readOnlyHint=true. This is a direct contradiction because creating a session and marking it active are state-affecting operations. The description also usefully discloses turn consumption, but the contradiction with the annotations invalidates the transparency score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loaded, and each clause earns its place. It states the action, the state change, the return value, and the cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters, no output schema, and only one required field. The description does not explain preconditions like what happens for disabled projects, the meaning of the default prompt, error behavior, or timeout/response limitations, so this is not fully contextual for an agent selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, with effort, timeout_seconds, max_response_chars, and prompt lacking parsing in the schema. The description adds no parameter-level guidance or clarification, so the agent gets little help for several self-explanatory but still underspecified options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: create a new AGY conversation, save it as active, and return its conversation ID. It clearly distinguishes itself from sibling tools like antigravity_get_active_session and antigravity_list_sessions by focusing on creating a new session rather than reading or listing existing ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used when creating a new AGY session for an enabled project, and mentions that one model turn is consumed. However, it provides no explicit guidance about when not to use it or when to prefer a sibling tool such as antigravity_continue or antigravity_ask.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_sync_conversationSync an AGY conversationAIdempotent
Read the official AGY transcript for a conversation registered to this project, filter internal thinking/system/checkpoint records, and update the project-local visible transcript mirror. Does not call a model.
| Name | Required | Description | Default |
|---|---|---|---|
| max_chars | No | ||
| include_all | No | ||
| max_records | No | ||
| project_root | Yes | Absolute root directory of the current Codex project. | |
| conversation_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false; the description adds concrete behavioral details: it filters internal thinking/system/checkpoint records and explicitly states it does not call a model. These additions provide useful context beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and a crucial clarification ('Does not call a model'). Every word provides value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 5-parameter tool with no output schema and low schema coverage, the description is too sparse. It omits how parameters affect the sync (e.g., include_all, max_records), what the tool returns, and any error conditions or prerequisites. The lack of this info leaves significant gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at only 20% (only project_root described), the description was expected to explain parameters like max_chars, include_all, max_records, and conversation_id. It does not mention any of these, leaving the agent without guidance on how to set them or what impact they have on the sync behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it reads the official AGY transcript, filters out internal records, and updates the local mirror. It uses a specific verb ('sync') tied to a resource ('conversation') and distinguishes itself from siblings like antigravity_get_transcript by emphasizing the mirror update and the 'does not call a model' note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to synchronize the local visible transcript, but does not explicitly state when to use it vs alternatives like antigravity_get_transcript or antigravity_ask. It offers no exclusions or alternative tool mentions, leaving the agent to infer the appropriate context.
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.
15 tool updates
v0.3.0- First observed
antigravity_ask - First observed
antigravity_continue - First observed
antigravity_disable_project - First observed
antigravity_enable_project - First observed
antigravity_execute - First observed
antigravity_get_active_session - First observed
antigravity_get_run - First observed
antigravity_get_transcript - First observed
antigravity_health - First observed
antigravity_list_runs - First observed
antigravity_list_sessions - First observed
antigravity_project_status - First observed
antigravity_review - First observed
antigravity_start_session - First observed
antigravity_sync_conversation
TDQS
Scored across 15 tools
Each tool has a clearly distinct purpose: project lifecycle (enable, disable, status), session management (start, get active, sync, transcript), conversation actions (ask, continue, review), and execution (execute, get run). No two tools appear to perform the same function; even the conversation-related tools are differentiated by mode (read-only analysis, continuation, review).
All tools follow a consistent verb_noun pattern with the 'antigravity_' prefix (e.g., list_sessions, enable_project, get_transcript). The naming is uniform and predictable, making it easy for an agent to infer tool purpose from the name alone.
15 tools is well-scoped for a server that manages AGY sessions, project configuration, transcripts, and executions. Each tool covers a distinct operational need without redundancy, and the count is within the ideal range for a feature-complete MCP server.
The tool surface covers the full lifecycle: project enable/disable/status, session creation and retrieval, transcript syncing and retrieval, conversation actions (ask, continue, review), and execution management (execute and get_run). No obvious gaps exist—both administrative and interactive workflows are supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
A paid remote MCP for OpenAI Codex context compressor, built to return verdicts, receipts, usage log
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
A paid remote MCP for OpenAI Codex memory MCP, built to return verdicts, receipts, usage logs, and a
Related MCP Servers
- AlicenseBqualityBmaintenanceA lightweight MCP bridge that lets Claude Code delegate heavy tasks to the Antigravity CLI - saving context window and tokens for what matters.112MIT
- AlicenseBqualityAmaintenanceAn MCP bridge that lets Codex delegate long-running agent work to the Antigravity CLI, providing observable and resumable tool-based execution with project scoping.138MIT
- AlicenseAqualityBmaintenanceEnables OpenAI Codex to consult Claude Code for co-analysis, adversarial second opinions, and read-only file review over the Model Context Protocol, with Claude remaining advisory and unable to modify files.922MIT
- FlicenseNot gradedqualityCmaintenanceEnables external agents like Gemini Spark to control Google Antigravity CLI (agy) via Model Context Protocol, supporting multimodal inputs and automatic session management.-