antigravity-mcp
This server lets AI assistants (Claude Code, Codex, etc.) invoke Google Antigravity's coding agent and related helpers over the Model Context Protocol.
ask-antigravity / ask-gemini: Run coding tasks with Read/Write/Bash tools, resume conversations by ID, supply prompt/system files, choose models (e.g. gemini-3.8-flash-high, gemini-3.1-pro-high), set effort levels, control workspace access, and optionally save artifacts.
review-diff: Automatically review uncommitted or staged git changes in read-only mode, with optional focus areas (security, performance, logic bugs, code style) and model selection.
generate-tests: Generate unit tests for a target source file, choose test framework (default pytest), write output to a file, and specify workspace/model.
check-quota: Display live remaining quota percentages and health status (Healthy / Low / Depleted) for all Antigravity models.
ping: Quick health check to verify the Antigravity CLI/backend responds.
list-models: List available Google Antigravity models.
Also provides MCP resources (
antigravity://quota,antigravity://models,antigravity://status) and prompt templates (code-review,tdd-feature).Works as a standalone CLI too:
antigravity-mcpwith direct prompt,--resume,--ping,--quota,--models,--review, and--mcpserver mode.Supports parallel multi-agent swarm execution and session resume; configurable via environment variables (AGY_MODEL, AGY_EXE, AGY_AGENT_TIMEOUT, AGY_DEFAULT_WORKSPACE, etc.) and works on Windows, Linux, and macOS.
Provides tools for interacting with Google's Antigravity coding agent (Gemini 3.8 Flash / 3.1 Pro), enabling agents to run coding tasks, resume conversations, review diffs, generate tests, check quota, and list models.
Click on "Deploy 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-mcpReview the latest git diff for security 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-mcp (Pure Python Edition)
An MCP (Model Context Protocol) server that exposes the Google Antigravity (Gemini 3.8 Flash / Gemini 3.1 Pro) coding agent to Codex CLI, Claude Code, and any MCP-compatible AI environment.
A real coding agent, not just an LLM API.
ask-antigravity/ask-geminiinvoke the actualagyCLI agent, equipped with Read / Write / Bash tools. It can read files, inspect repositories, run commands, and modify code directly. By default, it operates in the directory from which the caller runs (--add-dir), seeing the codebase just like Codex.
What's New in Pure Python Edition
Pure Python Architecture: Eliminated Node.js (
npm,node_modules,src/index.js). Runs directly with Python and the officialmcpSDK.Modern Model Support: Defaulted to high-performance Gemini 3.8 Flash (
gemini-3.8-flash-high) for blazing-fast speed and low cost, with full support for Gemini 3.1 Pro (gemini-3.1-pro-high).Session & Multi-Turn Support: Added
conversation_idparameter to continue and resume ongoing agent workflows (agy --conversation <ID>).Standardized English Prompting: Replaced hardcoded foreign wrappers with clear, robust task prompts that prevent agent execution stalls.
Keep-Alive & Telemetry: Built-in background progress loop prevents caller timeouts during long reasoning tasks.
Related MCP server: @staticpayload/gemini-mcp
Architecture
Codex CLI / Claude Code
│
▼ (MCP stdio protocol)
server.py (Pure Python MCP Server)
│
├─► ping ──────────────► Fast health-check
├─► list-models ───────► Available Antigravity models
│
└─► ask-antigravity ───► agy_agent.py
│
├─ File-in (temp in.txt)
├─ agy.exe -p ... --dangerously-skip-permissions
├─ Workspace granted (--add-dir <cwd>)
└─ File-out (temp out.txt)Quick Start
1. Requirements
Windows, Linux, or WSL2 (see WSL setup below; backend authentication differs by platform).
Python 3.10+.
Google Antigravity CLI (
agy) installed and authenticated at least once (cmdkey /list:gemini:antigravity).
WSL2 / Linux setup
Use a native Linux agy installation and authenticate it inside WSL. The wrapper
discovers agy on PATH; AGY_EXE can override it. A Windows agy.exe is not a
drop-in replacement: prompts and workspace grants use Linux paths.
# Install your distribution's python3-venv package first if venv is unavailable.
python3 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/python doctor.py
.venv/bin/python -m unittest discover -s tests -v
.venv/bin/python server.py --modelsdoctor.py uses only the Python standard library and works before dependencies
are installed. It checks dependency presence, executable discovery and auth
configuration without reading credential stores, calling APIs or running an agent.
Its exit code checks dependencies and CLI availability, not authentication validity.
There are two independent authentication paths:
ask-antigravity,ask-gemini,generate-testsandpinguse the native CLI's login. They do not require HTTP backend tokens. SetAGY_PROACTIVE=0to skip the optional backend quota preflight when using only CLI tools.review-diffandcheck-quotause the HTTP backend. On WSL/Linux, supplyAGY_ACCESS_TOKENthrough your local environment or secret manager. Optionally supplyAGY_REFRESH_TOKENandAGY_TOKEN_EXPIRY(ISO 8601). Access-token-only mode works until the token expires; replace it when authentication fails. Refreshed environment tokens are retained only in the running server process, not persisted to disk or the parent shell. Windows credentials are not imported automatically into WSL. Do not put token values in the repository.
Automatic account rotation is optional and requires the separate account manager's
agy_switch.py, configured via AGY_SWITCH_SCRIPT. This repository does not ship
that script. Missing rotation support does not prevent a successful CLI call.
After setup, use the absolute .venv/bin/python path to launch server.py in your
MCP client. To check live CLI connectivity explicitly, run
.venv/bin/python server.py --ping; unlike the offline checks, this invokes the
authenticated agent and may consume quota.
2. Installation
git clone https://github.com/khoa-na/antigravity-mcp.git
cd antigravity-mcp
pip install -r requirements.txt3. Verify Server
python -m unittest discover -s tests -vThe test suite is offline: it mocks authentication, HTTP requests, and agent execution,
and stores test artifacts in temporary directories. run_demo.py is a separate live
demo that invokes the authenticated agent; it is not an offline test.
Client Configuration
Codex CLI Configuration
Add to your Codex CLI configuration (~/.codex/config.toml):
[mcp_servers.antigravity]
command = "python"
args = ["D:/antigravity-mcp/server.py"]
[mcp_servers.antigravity.env]
AGY_MODEL = "gemini-3.7-flash-high"Claude Code Configuration
Add to your .claude.json:
{
"mcpServers": {
"antigravity": {
"type": "stdio",
"command": "python",
"args": ["D:\\antigravity-mcp\\server.py"],
"env": {
"AGY_MODEL": "gemini-3.8-flash-high"
}
}
}
}Available MCP Tools
ask-antigravity / ask-gemini
Executes tasks using the Google Antigravity coding agent.
Parameter | Type | Description |
| string | The task / question / code instruction. |
| boolean | If true, automatically continues the most recent conversation session ( |
| string | Absolute path to a file containing the prompt (ideal for large codebases or artifacts). |
| string | Target model ID (default: |
| string | Existing directory granted via |
| string | Conversation ID to resume a specific historical session. |
| string | Reasoning effort ( |
| string | System instructions (inline or file path). |
| boolean | Automatically delete |
| boolean | If true, saves full response to an artifact file in |
| string |
|
| number | Positive agent time budget in seconds (maximum 86400), shared across CLI retries. Default: |
Reliable handoff to a supervising agent
Use result_format="json" when the caller needs machine-readable results. The tool
returns a JSON string, not a separate MCP structured-content object. It includes
status, task_id, conversation_id, resume_latest, workspace, model,
exit_code, elapsed_seconds, response, error, and
verification="not_run_by_wrapper".
succeededmeans the CLI exited with code 0 and wrote a non-empty response file. It does not prove the requested code is correct or that tests passed.partialpreserves an answer written before a nonzero exit. It is not retried.failed,timed_out, andbusyare explicit failures. In text mode these raise tool errors; in JSON mode they are returned as status records. Invalid inputs still raise tool errors in either mode.stdout-only CLI logs are no longer accepted as a successful answer.
The caller should send the task, file scope, constraints, and acceptance checks in
promptorprompt_file, then independently inspect the diff and run tests.
New calls no longer invent conversation IDs: --conversation resumes an existing
CLI conversation. The result echoes an explicitly supplied conversation_id; otherwise
it is null because this wrapper cannot yet discover the CLI-generated ID. A task_id
is only a correlation label, not a resumable conversation. Use either an existing
conversation_id or resume=true, not both. resume=true refers to the CLI's most
recent conversation, not a workspace-specific session maintained by this server.
AGY_AGENT_PROFILE, when set, is stable across calls; random worker subdirectories
are no longer created. Authenticate that profile before using it. Calls into the CLI
are serialized within one server process, including ping; overlapping calls fail
with busy. This does not lock out another server process or a human editor. Avoid
concurrent writers to the same checkout.
The timeout budget starts before quota preflight and remaining time is passed to each
CLI attempt. Each attempt explicitly sets agy --print-timeout from that remaining
budget, reserving 5% (at most 10 seconds) for CLI exit and result collection. For
example, a 600-second attempt uses --print-timeout 590s, rather than the CLI's
independent default of 5 minutes. Python retains the original remaining budget as
its hard subprocess timeout. CLI timeout waiting for response errors are reported
as timed_out, not as a generic missing-output-file failure. Partial responses are
still reported as partial, never as success.
Restart/reconnect the MCP server after updating these files; an already-running Python process does not automatically reload the wrapper.
Already-running auth/quota/switcher calls retain their own timeouts; this is not a hard wall-clock deadline for all network operations. The 15-second heartbeat reports elapsed time only. Background jobs, cancellation of descendant processes, and durable task logs are not implemented yet. Quota/auth retries can replay a task when no response file exists; inspect the working tree after failures.
Security: coding tools still invoke agy --dangerously-skip-permissions.
Workspace selection and the in-process lock do not enforce filesystem confinement.
Use a separately restricted environment for untrusted tasks. review-diff now uses
the existing text-only HTTP backend, not the CLI, so it cannot execute file tools;
it requires backend authentication/connectivity and does not fall back to the CLI.
Staged review never includes unstaged changes. Git failures are reported explicitly,
and untracked files are not part of the diff.
Dual-Mode CLI
antigravity-mcp is not only an MCP server; it is also a standalone CLI tool you can use directly from PowerShell, CMD, or Bash without needing an MCP client!
# 1. Live model quota status
antigravity-mcp --quota
# 2. Fast connectivity health-check
antigravity-mcp --ping
# 3. List all supported models
antigravity-mcp --models
# 4. Instant automated git diff review
antigravity-mcp --review "security and performance"
# 5. Ask Antigravity directly from the terminal
antigravity-mcp "Refactor the authentication module using bcrypt"
# 6. One-click conversation continuation (no session ID needed!)
antigravity-mcp --resume "Now write tests for that refactored module"
# 7. Start as standard MCP stdio server
antigravity-mcp --mcpThe 3 Pillars of MCP
antigravity-mcp fully implements all 3 core pillars of the Model Context Protocol:
1. Tools
ask-antigravity/ask-gemini: Executes tasks using the Google Antigravity coding agent with Read/Write/Bash tools and session resumption (resume=True).review-diff: Automated, read-only code review of current git changes (git diff).check-quota: Displays live remaining quota percentages and health status for all Antigravity models.generate-tests: Generates comprehensive unit test suites for a given source code file.ping: Quick health check verifying Antigravity responsiveness.list-models: Lists all available models provided by the Antigravity backend.
2. Resources
Clients can read real-time context directly via MCP URIs:
antigravity://quota: Live remaining quota table in Markdown format.antigravity://models: Complete JSON list of all available Antigravity models.antigravity://status: Real-time runtime configuration, active profile, and engine status.
3. Prompts
Standardized prompt templates ready for one-click use in Claude, Cursor, and Codex:
code-review: Senior principal engineer code review template covering changes, bugs, edge cases, and optimizations.tdd-feature: Test-Driven Development template following the strict Red-Green-Refactor cycle.security-audit: In-depth security audit template focusing on OWASP Top 10 vulnerabilities, sanitization, and CVEs.
Environment Variables
Variable | Default | Purpose |
|
| Default model ID used by the agent. |
| Auto-detected | Explicit path to |
|
| Timeout in seconds before terminating long runs. |
| Server working directory | Default workspace granted to the agent. |
| None | Set only if using a custom local unlock proxy. |
Cross-Platform Compatibility
Windows: Full native support with Windows Credential Manager and Win32 file locking.
Linux & macOS: POSIX advisory file locking via
fcntland token auth viaAGY_ACCESS_TOKEN.
License
MIT
Available Tools
7 toolsask-antigravityA
Ask the Google Antigravity AGENT (Gemini 3.8 Flash / Pro) — a coding agent WITH file tools (Read/Write/Bash), like a second Claude Code / Codex.
By default it works in the current directory (process workspace), so it can read and run your repo like Codex. Supports parallel multi-agent swarm execution and one-click session resume.
Parameters:
prompt: The task/code instruction.
resume: If True, automatically continues the most recent conversation session (--continue) without needing an ID.
prompt_file: Absolute path to a file containing the prompt (wins over prompt).
model: Model ID (default: gemini-3.8-flash-high, or gemini-3.1-pro-high, etc.).
system: Optional system instructions.
system_file: Absolute path to a file containing system instructions.
workspace: Directory granted to the agent via --add-dir (read+write). Default: current directory. Pass 'none' for isolated temp dir.
conversation_id: Resume/continue an existing session by conversation ID.
effort: Reasoning effort (low, medium, high).
cleanup: If true, delete prompt_file / system_file after execution.
save_artifact: If true, always saves response to an artifact file in .antigravity/artifacts/.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| effort | No | ||
| prompt | No | ||
| resume | No | ||
| system | No | ||
| cleanup | No | ||
| workspace | No | ||
| prompt_file | No | ||
| system_file | No | ||
| save_artifact | No | ||
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral disclosure burden. It reveals that the agent has file tools, that workspace grants read+write access, that prompt_file wins over prompt, that cleanup deletes the prompt/system files, and that save_artifact always writes an artifact. These are meaningful behavioral traits that directly inform safe invocation.
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 front-loaded with a one-sentence purpose, followed by a brief behavior paragraph and a clean parameter list. Every line adds operational value with no filler, making it appropriately sized for an 11-parameter tool.
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 complexityed—11 parameters, file-wielding agent, potential workspace modifications—the description covers defaults, workspace semantics, resume mechanics, cleanup, artifact saving, and model options. Since an output schema exists, return-value details are unnecessary. Nothing critical is missing for an agent to invoke it correctly.
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 0%, but the description supplies a semantic gloss for every single parameter, including precedence rules, special values like workspace='none', default behaviors, and side effects. This fully compensates for the schema's lack of descriptions.
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 opens with a specific verb and resource: 'Ask the Google Antigravity AGENT (Gemini 3.8 Flash / Pro)' and clearly characterizes it as a coding agent with Read/Write/Bash tools, comparable to Claude Code or Codex. This makes the tool's identity and scope immediately distinguishable from a generic ask-gemini sibling.
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 context for when to use the tool: 'By default it works in the current directory... so it can read and run your repo like Codex,' and highlights distinguishing features like parallel swarm execution and one-click resume. It stops short of explicitly naming alternatives or when not to use it, so it lacks full exclusionary routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask-geminiD
Alias for ask-antigravity.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| effort | No | ||
| prompt | No | ||
| resume | No | ||
| system | No | ||
| cleanup | No | ||
| workspace | No | ||
| prompt_file | No | ||
| system_file | No | ||
| save_artifact | No | ||
| conversation_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. 'Alias for ask-antigravity' reveals nothing about side effects, permissions, rate limits, statefulness, or operation type. The description is behaviorally empty.
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 one sentence long, but it is under-specified rather than appropriately concise. It communicates only an alias relationship and provides no real content. This is under-specification, not efficient brevity.
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 tool with 11 parameters, no annotations, and no parameter descriptions, the alias-only description is wholly insufficient. An agent cannot correctly determine required inputs or expected behavior. Even with an output schema, this definition is incomplete.
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 0%, and the description compensates with no parameter information whatsoever. All 11 parameters, including model, effort, prompt, resume, system, and conversation_id, receive no explanation in either schema or description. This is a severe gap.
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 only states that this tool is an alias for ask-antigravity, without specifying the actual function. It does not mention asking questions, generating responses, or interacting with a model, so an agent cannot determine the tool's purpose from the description alone. It is not a strict tautology, but it's a cross-reference that provides no substantive meaning.
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 equivalence with ask-antigravity but gives no explicit guidance on when to use this tool versus alternatives. It does not mention selection criteria, prerequisites, or exclusions. The alias nuance is weak guidance at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check-quotaA
Retrieve and display live remaining quota percentages for all Google Antigravity models. Shows health status (Healthy / Low / Depleted) for each model.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that data is live, that it covers remaining quota percentages, and that health status levels are Healthy / Low / Depleted. The phrase 'Retrieve and display' also implies a read-only behavior, which is adequate for a zero-parameter check tool.
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?
Two short sentences, no filler, with the core action and scope in the first sentence and the output categories in the second. Every word earns its place.
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 no-argument read-only quota checker with an output schema, this description is complete: it names the resource, the metric, the scope, and the status categories. There is nothing an agent needs to call it correctly that is missing.
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?
The tool has zero parameters, so there is little to document. The baseline for zero-parameter tools is 4, and the description adds useful scope context ('all Google Antigravity models') without needing to explain 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 states a specific action ('Retrieve and display') and a precise resource ('live remaining quota percentages for all Google Antigravity models'). It clearly separates this from siblings like list-models or ask-gemini by focusing on quota health rather than model names or model interaction.
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 intended use is clear: when an agent needs current quota status and health for Antigravity models. While it does not explicitly name alternatives or exclusion conditions, the context is unambiguous and there are no prerequisites or competing workflows implied by the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-testsA
Generate thorough unit tests for a specified source code file.
Parameters:
target_file: Relative or absolute path to the file you want to test.
test_framework: Test framework (e.g. 'pytest', 'unittest', 'jest', 'go test'). Default: 'pytest'.
workspace: Workspace root directory.
write_to_file: If True, writes the generated tests directly into output_file.
output_file: Destination file path for generated tests (e.g. 'tests/test_auth.py').
model: Target model ID (default: gemini-3.8-flash-high).
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| workspace | No | ||
| output_file | No | ||
| target_file | Yes | ||
| write_to_file | No | ||
| test_framework | No | pytest |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 does disclose the write_to_file behavior ('If True, writes the generated tests directly into output_file') and reveals defaults for test_framework and model. However, it does not explain what happens when write_to_file is False, whether existing files are overwritten, whether the tool makes external API calls via the model parameter, or whether the target file is modified in any way.
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 efficient and well-structured. A single sentence states the purpose, followed by a cleanly formatted parameter list. Every line adds information, and the most important behavioral switch (write_to_file) is described in its own line. No filler or redundant content.
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 annotations, and an output schema (which presumably explains return structure). The description covers all parameters and the core purpose, but leaves open important operational questions: what happens if write_to_file is false, does it create/overwrite directories, and what file types or languages are supported. Given the presence of an output schema, return-value documentation is not the main gap, but operational behavior could be more 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 0%, so the description must compensate, and it largely does. Each of the six parameters receives a meaningful explanation: target_file specifies relative/absolute path, test_framework gives concrete examples and a default, output_file includes a sample path, and write_to_file explains its effect. A few descriptions remain thin (workspace is just 'Workspace root directory'), but overall the parameter semantics are solidly above baseline.
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 opens with a clear verb and resource: 'Generate thorough unit tests for a specified source code file.' It is immediately distinguishable from sibling tools like ask-gemini, review-diff, or ping, which serve different purposes. The scope (source code file) and action (generate tests) are specific and 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 when to use the tool—whenever unit tests are needed for a file—but it never explicitly contrasts this with alternatives such as ask-gemini or ask-antigravity, which could also generate test code conversationally. There is no when-not-to-use guidance or prerequisite clarification, so usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-modelsA
List available models in Google Antigravity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of explaining behavior. 'List' conveys a read-only intent and no destructive side effects are implied or hidden. However, it does not disclose any additional behavioral details such as authentication requirements, rate limits, or whether the list is cached.
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 concise sentence delivers the essential information with no filler. The action, resource, and context are all front-loaded and every word is meaningful.
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 zero-parameter list tool with an output schema, this description is nearly complete. It identifies what the tool surfaces and the service context. The only notable gap is the lack of guidance about how this fits into the workflow alongside sibling tools, but the low complexity limits the impact of that omission.
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?
The tool has zero parameters and the schema coverage is effectively complete, so no parameter-level explanation is needed. With 0 params, the baseline is 4, and the description does not need to compensate for any schema gaps.
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 ('List') and resource ('available models') scoped to 'Google Antigravity', making the tool's purpose immediately clear. It also stands apart from the sibling tools, which focus on asking, reviewing, checking, generating, and pinging.
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?
No guidance is provided about when to use this tool versus the alternatives. An agent can infer it is a preliminary discovery step before using ask-antigravity or ask-gemini, but the description does not state this explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingB
Health check — verifies that the Antigravity CLI or backend responds.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | Reply with exactly one word: PONG |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It reveals that the tool verifies responsiveness, but it does not disclose that an optional prompt is sent, what the success/failure response looks like, or whether there are any side effects. 'Verifies' hints at read-only behavior, but too much is left to inference.
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 one short sentence, front-loads 'Health check,' and avoids repeating the tool name (ping) as a verbatim label. It could not be more concise.
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 simple, optional-parameter ping, the description plus schema covers the basic call: run with no arguments and get verification. However, it is incomplete because the prompt parameter is unexplained and no usage context is given; this is adequate but has clear 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 description coverage is 0%, and the description does not mention the prompt parameter at all. The schema gives only a title and default, so an agent cannot tell why prompt exists or how it affects the health check.
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 and resource: 'verifies that the Antigravity CLI or backend responds,' clearly identifying a health-check tool. This is distinct from the sibling tools (ask, review, generate, list, check-quota) even without naming them.
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?
No guidance is given about when to run this check versus using a sibling tool such as ask-antigravity or check-quota. The phrase 'Health check' implies pre-flight connectivity verification, but the description never states this or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review-diffA
Perform an automated, structured code review on current uncommitted or staged git changes. Runs in strictly read-only mode so it never modifies your repository files.
Parameters:
workspace: Path to the git repository (default: current workspace).
staged: If true, reviews only staged changes (git diff --staged). Otherwise reviews all uncommitted changes.
focus: Optional focus area (e.g. 'security', 'performance', 'logic bugs', 'code style').
model: Target model ID (default: gemini-3.7-flash-high).
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | ||
| model | No | ||
| staged | No | ||
| workspace | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It explicitly discloses 'strictly read-only mode' and that it 'never modifies your repository files', which is important safety-relevant behavior. It does not mention other side effects such as external model calls or quota usage, but the core non-destructive behavior is clearly stated.
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?
Front-loaded purpose, followed by a single behavioral guarantee, then a clean, scannable parameter list. Every sentence contributes needed information and there is no 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?
An output schema exists, so return-value details are not required. All parameters are documented with defaults and the diff scope is clear. The only minor gap is that available model IDs are not enumerated, but the model is optional and has a default, and list-models exists as a sibling.
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 0%, btut the descriprtion compensates fully by explaining all four parameters: workspace path with default, staged boolean with diff semantics, focus with concrete examples, and model with default ID. This is exactly the semantic layer the raw schema lacks.
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?
States a specific verb and resource: 'Perform an automated, structured code review' on 'current uncommitted or staged git changes'. This clearly separates it from conversation-oriented siblings like ask-gemini and ask-antigravity, and from generate-tests, which generates tests rather than reviewing diffs.
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?
Provides clear context: the tool reviews uncommitted or staged changes, with the staged param deciding which diff to examine. It does not explicitly name alternatives or state when not to use it, so not a 5, but an agent can infer the intended sitatuation reliably.
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.
7 tool updates
v2.0.0- First observed
ask-antigravity - First observed
ask-gemini - First observed
check-quota - First observed
generate-tests - First observed
list-models - First observed
ping - First observed
review-diff
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes: asking the agent, reviewing diffs, generating tests, checking quota, listing models, and health checking. The only overlap is ask-gemini being explicitly documented as an alias for ask-antigravity, so while redundant, it does not create real selection ambiguity.
All tools follow a consistent lowercase hyphenated verb-noun pattern: ask-antigravity, review-diff, check-quota, generate-tests, list-models. Even ping fits the simple verb style, and there are no mixed naming conventions.
Seven tools is a well-scoped set for an Antigravity integration. Each tool covers a meaningful capability, and the only minor redundancy is the explicitly marked ask-gemini alias.
The server covers the main workflows: invoking the agent, reviewing changes, generating tests, checking quota/model availability, and health checks. Session resume and workspace control are handled through ask-antigravity parameters, so there are no critical gaps, though a dedicated session-management tool could be a potential enhancement.
Maintenance
Related MCP Connectors
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Shared memory and actions for Claude, Kiro, OpenAI, Cursor, and other MCP-compatible AI clients.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceThin MCP server wrapping the Gemini CLI for AI assistants, supporting workspace-aware multi-repository analysis and forward-compatible flags.MIT
- AlicenseNot gradedqualityFmaintenanceBridges Google's Gemini CLI to MCP-compatible AI assistants, enabling prompt execution, model listing, and raw CLI commands.5 npm1GPL 3.0
- FlicenseNot gradedqualityCmaintenanceEnables local AI agents to generate code and interact with Google Antigravity (Gemini Pro) via MCP, consuming zero API tokens.-
- AlicenseAqualityAmaintenanceBridges multiple CLI coding agents (Codex, Cursor, OpenCode, Claude, Antigravity) into any MCP client, enabling delegation of prompts, parallel execution, and code review workflows.651 npmMozilla Public 2.0