Antigravity MCP Server
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 MCP Serverrefactor the auth module and add unit tests for it"
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 Server
Put Antigravity to work from inside your editor.
This server wraps the Antigravity CLI (agy) so any MCP client can call it as a tool. From Claude Code, Claude Desktop, Cursor or Codex you can hand Antigravity a task to carry out, ask for a review, read a screenshot or PDF, search the web, or brainstorm. The work runs on your Antigravity plan, not on the client's.
flowchart LR
client["MCP client<br/>Claude Code · Cursor · Codex"] -- stdio --> server["antigravity-mcp-server"]
server --> tools["antigravity · web_search · analyze_media<br/>shell · brainstorm · models · ping"]
tools -- "agy --print --output-format json" --> agy["Antigravity CLI"]
agy --> models["Gemini · Claude · GPT-OSS"]Getting started
1. Make sure agy works on its own
You need Node.js 20 or newer and the Antigravity CLI, signed in.
agy -p "say pong" --output-format jsonIf that prints a JSON object with "status":"SUCCESS", you are ready. If not, see Working with the Antigravity CLI.
2. Add the server to your client
The package installs straight from GitHub. It is not on npm yet.
Claude Code
claude mcp add antigravity -s user -- npx -y github:vanh1011/antigravity-mcp-serverEdit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows:
{
"mcpServers": {
"antigravity": {
"command": "npx",
"args": ["-y", "github:vanh1011/antigravity-mcp-server"]
}
}
}Desktop apps often start with a short PATH. If the server reports not-found, add "env": { "AGY_BIN": "/full/path/to/agy" }.
Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"antigravity": {
"command": "npx",
"args": ["-y", "github:vanh1011/antigravity-mcp-server"]
}
}
}Add to .vscode/mcp.json:
{
"servers": {
"antigravity": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:vanh1011/antigravity-mcp-server"]
}
}
}Add to ~/.codex/config.toml:
[mcp_servers.antigravity]
command = "npx"
args = ["-y", "github:vanh1011/antigravity-mcp-server"]3. Check the connection
Ask your client to run antigravity_ping. It confirms agy can start and shows the active settings, without spending any quota.
Related MCP server: agy-headless-bridge MCP server
Tools
Tool | Use it to | Edits files | Needs an allow rule |
| Hand over a task or question; continue it later with its | yes, by default | only if it runs commands |
| Look something up on the web and get an answer with source URLs | no |
|
| Read images, screenshots and PDFs and answer a question about them | no | no |
| Get the shell commands for a task, or run them with | when executing |
|
| Generate ideas with a method such as SCAMPER or first principles | no | no |
| See which models your plan offers | no | no |
| Check that | no | no |
Every parameter is listed in the API reference.
What agy is allowed to do
agy is an agent, so two things decide what it can do on a call.
The mode. antigravity runs in accept-edits by default, so a task you hand over actually gets done: agy reads and edits files in its workspace. Pass mode: "plan" when you only want an answer. The other tools pick the mode themselves: they are read-only, except antigravity_shell with execute: true.
|
|
| read files and answer |
| also edit files in the workspace (default) |
| also run commands without asking, where your account offers it |
Its permissions. In print mode agy cannot stop and ask you, so anything that needs a permission prompt is refused. Out of the box that includes running shell commands (command) and fetching web pages (read_url). When that happens the tool returns a permission-denied error naming the permission, for example:
Hint: agy needs the "read_url" permission. To allow it, add a rule such as
`read_url(<target>)` to `permissions.allow` in agy's settings.json ...Add only the rules you are comfortable with to agy's settings (usually ~/.gemini/antigravity-cli/settings.json). This server never turns permissions off for you: it does not pass --dangerously-skip-permissions.
Things to try
Ask antigravity to add input validation to src/routes/users.ts and run through the edge cases
Ask antigravity in plan mode to review the diff in src/auth and list anything risky
Use antigravity_analyze_media on ./screenshots/error.png: what is failing and why?
Use antigravity_brainstorm with method scamper on how to make onboarding shorter
Use antigravity_shell to write the commands that find which process holds port 8080
Use antigravity_web_search to find what changed in the latest Spring Boot releaseConfiguration
All settings are optional environment variables. A value passed in the tool call wins over these.
Variable | Default | Purpose |
|
| Path to the Antigravity CLI |
| — | Model for calls that don't name one (else |
| — |
|
|
| Mode for |
|
| Seconds before |
| — | Set to |
For example, with Claude Code:
claude mcp add antigravity -s user \
-e AGY_DEFAULT_MODEL=gemini-3.8-flash-high \
-- npx -y github:vanh1011/antigravity-mcp-serverDocumentation
API reference: parameters, result format, errors
Working with the Antigravity CLI: setup, quota, models, troubleshooting
Development
git clone https://github.com/vanh1011/antigravity-mcp-server.git
cd antigravity-mcp-server
npm install # also builds dist/
npm test # unit + integration tests against a fake agy, no quota used
npm run lint
npm run dev # run from source with tsxTo try a local build in Claude Code:
claude mcp add antigravity-dev -- node /absolute/path/to/antigravity-mcp-server/dist/index.jsCredits
The project layout and the idea of wrapping a vendor CLI in MCP follow tuannvm/gemini-mcp-server, which does the same for Gemini CLI.
License
MIT.
This is a community project. It is not made, endorsed or supported by Google. Antigravity is a trademark of its owner.
Available Tools
7 toolsantigravityAsk AntigravityA
Hand a task or question to the Antigravity CLI (agy) and return its answer. By default agy may edit files in the workspace; pass mode "plan" for a read-only answer. Pass the returned conversationId to continue the same conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Directory agy works in. Defaults to the directory the server was started from. | |
| mode | No | accept-edits = may edit files (server default). plan = read-only. auto = also run commands, if the account supports it. | |
| model | No | Model id, e.g. "gemini-3.8-flash-high". Run antigravity_models for the list. | |
| effort | No | Reasoning effort. | |
| prompt | Yes | The task or question for Antigravity. | |
| addDirs | No | Extra directories to add to the workspace. | |
| project | No | Antigravity project id or name. | |
| sandbox | No | Run with terminal restrictions enabled. | |
| timeoutSec | No | Give up after this many seconds. Partial output is returned if any. | |
| conversationId | No | Continue an earlier conversation. Use the id returned by a previous call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and openWorldHint=true, and the description adds the crucial disclosure that the default call may modify workspace files, with "plan" as the safe alternative. It also exposes statefulness (conversationId continues a prior run), a trait the annotations do not capture. Missing details on timeouts and what happens under sandbox keep it below 5.
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?
Three short sentences, front-loaded with the action, then the safety-relevant default and the override, then the state-continuation tip. Every sentence earns its place with 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?
For a 10-parameter wrapper with no output schema, the description covers the two things an agent most needs to know before calling: that it can mutate the workspace and how to continue a conversation. It does not describe the shape of the returned answer or partial-output behavior on timeout, a minor gap given full schema coverage.
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%, so all ten parameters including the mode enum and conversationId are already documented in the schema. The description only reinforces defaults and the continuation pattern, adding marginal meaning beyond structured fields; baseline 3 applies.
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 concrete verb+resource: hand a task or question to the Antigravity CLI and return its answer. That is specific enough to distinguish it from antigravity_web_search or antigravity_shell, though it never explicitly frames itself as the general-purpose delegation tool relative to its specialized siblings.
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?
Gives real context for the mode parameter (default may edit files, use "plan" for a read-only answer) and for conversationId reuse, which is when-to-use guidance for a call pattern. It stops short of routing guidance against the siblings (e.g., use antigravity_web_search for lookups instead), so the agent must infer tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_analyze_mediaAnalyze images and PDFs with AntigravityBRead-only
Have Antigravity read images, screenshots or PDFs and answer a question about them. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model id, e.g. "gemini-3.8-flash-high". Run antigravity_models for the list. | |
| prompt | Yes | What to find out, e.g. "What error is shown?" or "List the invoice totals". | |
| filePaths | Yes | Files to look at. Relative paths are resolved from the server directory. | |
| timeoutSec | No | Give up after this many seconds. Partial output is returned if any. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so 'Read-only' simply restates structured data and earns no credit. The description adds no behavioral detail beyond that: nothing about how multiple filePaths are handled (one question across all files?), whether partial results are common, or what the model default is when 'model' is omitted.
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, purpose front-loaded, no padding. The trailing 'Read-only' clause is the one line that does not earn its place because it duplicates the annotation.
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?
With 100% schema coverage and an annotation-declared safety profile, and no output schema to explain, the description covers what an agent needs to invoke it. Gaps are secondary: how multiple files are combined and how the 'model' parameter interacts with the default.
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%, so every parameter including model, prompt, filePaths, and timeoutSec is already documented with examples and constraints. The description contributes nothing beyond the schema, making the baseline 3 the correct ceiling.
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+resource pair: read images, screenshots or PDFs and answer a question about them. An agent can tell it is a media Q&A tool rather than a shell, search, or model-listing tool. It stops short of naming any sibling explicitly, so differentiation is inferred from the resource types rather than stated.
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?
There is no when-to-use or when-not-to-use guidance, and no alternatives are named despite five siblings in the same family. The only implied condition is 'you have an image or PDF and a question', which is restated from the purpose rather than guidance for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_brainstormBrainstorm with AntigravityBRead-only
Have Antigravity generate ideas on a topic using a chosen method, and pick the most promising ones. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ideas | No | How many ideas (default 8). | |
| model | No | Model id, e.g. "gemini-3.8-flash-high". Run antigravity_models for the list. | |
| topic | Yes | What to brainstorm about. | |
| method | No | open (default), scamper, design-thinking, first-principles, six-hats or reverse. | |
| context | No | Background: constraints, audience, what has been tried. | |
| timeoutSec | No | Give up after this many seconds. Partial output is returned if any. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so 'Read-only' merely repeats structured data. The one genuinely additive detail is that the tool both generates ideas and selects the most promising ones – a two-phase behavior not visible in annotations. It still omits what the selection criteria are and what the returned result looks like, so it goes modestly beyond the annotations rather than deeply.
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 tight sentences with no filler, and the core action is front-loaded before the safety note. Every clause contributes something an agent can use.
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?
There is no output schema, so the description is the only place an agent could learn what comes back – and it says only that promising ideas are 'picked', without format, count, or ranking detail. For a 6-parameter tool with no output schema, that leaves a real gap. Parameters and safety are otherwise adequately covered, so it is not a severe failure, but it 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 100%, so every parameter (ideas, model, topic, method, context, timeoutSec) is already documented in the schema, including the method enum values and the default of 8 ideas. The description adds no syntax, format, or interaction detail beyond that baseline. A 3 is the correct floor when the schema does all the work.
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?
Names a specific verb and resource: generate ideas on a topic using a chosen method, then pick the most promising ones. That two-stage purpose is clear enough to distinguish it from a plain chat tool. It does not, however, contrast itself with siblings like the base `antigravity` tool, leaving the boundary implicit.
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 offers no when-to-use guidance, no exclusions, and no alternatives. 'Read-only' hints at the safety profile but says nothing about when brainstorming is the right tool versus `antigravity` or `antigravity_web_search`. The schema does point at `antigravity_models` for model ids, but the description itself carries no routing advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_modelsList Antigravity modelsARead-only
List the models your Antigravity plan can use. Pass an id as model to the antigravity tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and locality are covered. The description adds the useful constraint that results are scoped to the caller's plan, but says nothing about result shape, ordering, or whether the list can change over time. Incremental value over annotations is modest.
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 with no filler. The purpose is front-loaded and the chaining instruction follows immediately; every clause 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?
There is no output schema, so the description carries the burden of describing returns, and it only vaguely does ('list the models'). For a tiny discovery tool the gap is small, but an agent still lacks any sense of the returned fields (id, name, capabilities) or list size.
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 takes zero parameters, so there are no parameter semantics to explain; the baseline for a 0-param tool is 4. Mentioning `model` refers to the sibling tool's parameter, not this one, so no credit or penalty either way.
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+resource: listing models available to the Antigravity plan. It also implicitly distinguishes itself from the sibling `antigravity` tool by naming that tool as the consumer of the ids returned. The scope word 'your Antigravity plan' is a little fuzzy but the intent 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 second sentence gives concrete downstream usage: take an id from this output and pass it as `model` to the `antigravity` tool. That is real routing guidance. It stops short of stating when not to call this (e.g., when the model id is already known), so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_pingCheck Antigravity CLIARead-only
Check that the server is up and the agy binary can be started. Does not use any quota.
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | Text to echo back. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds genuine value beyond them: it discloses the quota-free nature of the call and that the check actually attempts to start the agy binary, which is more than a trivial network ping.
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, front-loaded with the purpose and followed by the quota note. No filler; every clause 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 zero-required-param health check with no output schema, the description covers what is checked and the cost profile. It omits any indication of what a pass/fail response looks like, which is a minor gap rather than a blocking one.
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%, so the lone 'message' parameter is documented there as text to echo back. The description does not mention this parameter or reconcile it with the health-check purpose, so it adds nothing over the schema — baseline 3.
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 target: verifies the server is up and the agy binary can be started. This is a health-check distinct from all siblings (search, shell, brainstorm, models), so an agent can select it without inspecting the schema.
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?
Usage is implied (connectivity/preflight check) and 'Does not use any quota' hints it is safe to call freely, but there is no explicit when-to-use statement or comparison to sibling tools that might also report server health.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_shellShell commands with AntigravityADestructive
Have Antigravity write shell commands for a task, or run them when execute is true. Running needs the "command" permission allowed in agy's settings.json; without it the tool returns a permission-denied error that names the rule to add.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Directory to work in. Defaults to the directory the server was started from. | |
| task | Yes | What the commands should do. | |
| model | No | Model id, e.g. "gemini-3.8-flash-high". Run antigravity_models for the list. | |
| execute | No | false (default): only write the commands. true: run them. | |
| timeoutSec | No | Give up after this many seconds. Partial output is returned if any. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the risk profile is partly covered. The description still adds real behavioral value beyond them: the required permission, and the specific failure mode (permission-denied error naming the rule to add). It does not elaborate on what executing arbitrary shell commands can affect.
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 sentences, front-loaded with the core capability and mode switch, then the prerequisite. No filler; every clause carries actionable information.
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 destructive, open-world shell tool with no output schema, the description covers the key operational facts: the mode switch, the permission prerequisite, and the error behavior. It does not address execution environment or side-effect scope, which would round it out fully.
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%, so every parameter including `execute`, `cwd`, `model`, and `timeoutSec` is already documented in the schema. The description restates the `execute` semantics but adds no syntax, defaults, or constraints beyond what the schema 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?
States a specific verb pair (write or run shell commands) tied to an explicit mode switch (`execute is true`), with the resource being shell commands generated by Antigravity. It is clearly distinguishable from siblings like antigravity_web_search, antigravity_analyze_media, or antigravity_models.
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?
Explains the two usage modes (draft-only vs. run) and names the activation condition for the run mode. It also supplies the prerequisite (`command` permission in agy's settings.json). It does not compare against sibling tools such as plain `antigravity` for non-shell tasks, so it stops short of full when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
antigravity_web_searchSearch the web with AntigravityARead-only
Ask Antigravity to look something up on the web and answer with source URLs. Read-only. agy needs the "read_url" permission allowed in its settings.json; without it the tool returns a permission-denied error that names the rule to add.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model id, e.g. "gemini-3.8-flash-high". Run antigravity_models for the list. | |
| query | Yes | What to look up. | |
| timeoutSec | No | Give up after this many seconds. Partial output is returned if any. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint and openWorldHint, but the description goes further: it names the exact permission dependency, the failure mode and its error text, and notes that partial output is returned on timeout. That is concrete operational context an agent cannot get from the structured fields.
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?
Purpose is front-loaded in the first sentence, followed by behavioral caveats, with no filler. "Read-only" is a minor duplication of the readOnlyHint annotation, the only slightly redundant fragment.
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 three-parameter read tool with no output schema, the description covers purpose, the permission prerequisite, and failure behavior. The remaining gap is routing guidance versus sibling tools, which is a usage rather than completeness concern.
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%, so all three parameters (model, query, timeoutSec) are already self-documented, including the model-list cross-reference. The description adds no parameter-level detail beyond the schema, so the baseline of 3 applies.
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 gives a concrete verb+resource ("look something up on the web and answer with source URLs") and states the return shape, which is more than the tautological name would suggest. It does not explicitly distinguish itself from siblings like antigravity_shell or antigravity_brainstorm, so an agent must infer the boundary.
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 supplies a real usage prerequisite (the read_url permission must be allowed in settings.json, otherwise a permission-denied error naming the rule appears), which is genuinely actionable. However it never says when to prefer this over alternatives such as antigravity_shell for fetching pages, leaving the selection implied.
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
v0.1.0- First observed
antigravity - First observed
antigravity_analyze_media - First observed
antigravity_brainstorm - First observed
antigravity_models - First observed
antigravity_ping - First observed
antigravity_shell - First observed
antigravity_web_search
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes (web search, media analysis, shell, models, ping). The main overlap is the generic `antigravity` tool, which can perform any task and therefore subsumes `antigravity_web_search` and `antigravity_brainstorm`; an agent must rely on the descriptions (read-only vs file-editing, specialized helpers) to choose correctly.
All specialized tools use a predictable `antigravity_<verb/noun>` snake_case pattern (web_search, analyze_media, shell, brainstorm, models, ping). The primary tool breaks the prefix pattern by being named simply `antigravity`, a minor deviation.
Seven tools is a well-scoped set for a CLI-wrapper server: one general entry point, several focused helpers, and utility tools for models and health. No tool feels redundant or bloated.
The surface covers task handoff, web search, media analysis, shell execution, brainstorming, model listing, and a health check. Minor gaps exist around conversation lifecycle management (list/resume/delete conversations) and cancellation, but core workflows are covered.
Maintenance
Related MCP Connectors
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
- AurentiaOAuthfr.aurentia
Your Aurentia workspace — projects, CRM, tasks, deliverables — in Claude, Cursor or any MCP client.
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.124 PyPI12MIT
- AlicenseBqualityAmaintenanceEnables calling Google's Antigravity CLI (agy) headlessly through MCP, providing tools like agy_ask and agy_research for agents like Claude Code.2115 PyPI19MIT
- AlicenseAqualityBmaintenanceMCP bridge that lets Claude Code delegate heavy tasks to the Antigravity CLI (agy) — purpose-built tools, model routing with fallback, session continuity, and output truncation to save Claude's context and tokens.674 npm59MIT
- AlicenseAqualityAmaintenanceMCP server that lets Claude Code delegate heavy tasks (file analysis, deep search, web lookups, adversarial review, and general delegation) to the Antigravity CLI (agy), with model routing, session continuity, timeout controls, and quota-aware failover.962 npm7MIT