agy-mcp
Allows delegating tasks to Google's Antigravity CLI (agy), which uses Gemini models, with difficulty tiers, web research, background jobs, and verification of the backend model that actually answered.
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., "@agy-mcpResearch the latest breakthroughs in renewable energy and summarize them."
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.
agy-mcp
Personal tool, published as-is. This is not a product: it is not on npm, it is not maintained for anyone else, and there is no support. The repository is archived — read it, copy from it, fork it freely, but do not expect issues or pull requests to be answered. If you want something maintained,
agy-bridgeis an actively developed alternative with a broader tool surface.
An MCP stdio server that makes the Antigravity CLI (agy) a first-class tool inside Claude Code — and verifies, on every single call, which backend model actually answered.
If you pay for both Claude Code and Google AI Pro, this lets you spend the cheaper subscription on the cheaper work without leaving Claude Code. Claude stays the driver; agy becomes a tool it can hand a task to.
You → Claude Code → agy_ask(tier: "trivial") → agy → Gemini Flash
↓
[verification] OK — served by "Gemini 3.6 Flash (Low)"Why not an LLM gateway or proxy
The common way to mix providers is to point Claude Code's Anthropic API traffic at a proxy that translates it to another vendor's API. That means intercepting requests, and often reusing credentials issued to a different client.
This server does none of that. There is no proxy, no API translation, no credential relay, and nothing is re-signed or intercepted. Claude Code talks to Anthropic on your Anthropic account. agy talks to Google on your Google account, through Google's own official CLI, exactly as if you had typed the command yourself. All this server does is let Claude spawn that CLI as a subprocess and read its output.
Check your own subscriptions' terms and decide for yourself whether this fits them. This README makes no legal claim on your behalf.
Related MCP server: agyforclaude
What you get over calling agy through Bash
Backend verification on every call.
agy's--modelflag is not always honoured, and the model's own self-report will not tell you. Every result is prefixed with a[verification]line naming the model that really served it, parsed out ofagy's own log.Known-broken model ids are refused by default, rather than silently answering from the wrong model.
New routing bugs are detected on their own — see Model routing verification.
Difficulty tiers, not model ids. Claude picks
trivial/standard/hard/reasoning, and the server resolves that against the live model list.No shell permission prompt per call, and no risk of the command being reshaped by a shell wrapper.
Long runs do not die on the tool timeout. A deep research call hands back a
job_id; the run continues in the background and Claude collects it withagy_result.The dangerous capability is a separate tool (
agy_exec), so the rest can be allowlisted safely. See Security model.
Requirements
Node.js ≥ 18 (zero dependencies)
The Google Antigravity CLI (
agy) installed, onPATH, and signed inClaude Code
Built and tested against agy 1.1.10.
Install
Not published to npm, and there are no plans to. Clone it and point Claude Code at the script — there is nothing to build, and no dependencies to install.
git clone https://github.com/Sh3rm/agy-mcp.git
cd agy-mcp
npm test # optional; needs neither agy nor networkRegister with Claude Code
MCP servers can be registered at three scopes. Pick the one that matches how you want to use it. Use the absolute path to bin/agy-mcp from your clone.
User scope — available in every project on this machine. Most people want this.
claude mcp add agy --scope user -- /absolute/path/to/agy-mcp/bin/agy-mcpProject scope — checked into the repo, shared with your team. Creates or updates .mcp.json in the project root.
claude mcp add agy --scope project -- /absolute/path/to/agy-mcp/bin/agy-mcpThe resulting .mcp.json:
{
"mcpServers": {
"agy": {
"type": "stdio",
"command": "/absolute/path/to/agy-mcp/bin/agy-mcp",
"args": [],
"env": {}
}
}
}Local scope — this project only, not shared.
claude mcp add agy --scope local -- /absolute/path/to/agy-mcp/bin/agy-mcpThen verify:
claude mcp listRestart Claude Code after registering, and the six agy_* tools appear.
Tools
Tool | Purpose | Key parameters |
| General delegation: research, summarising, codegen, conversions. Cannot grant shell or file access. |
|
| Web research with Google Search grounding and parallel subagents. Also exec-free. |
|
| Local shell and file access on this machine. Prompts every time by design. | everything in |
| Collect a long run that handed back a |
|
| Live model list, current tier map, blocked ids, observed misroutings. | — |
| Call every model once and report which backend really served it. Run this after | — |
Difficulty tiers
Tiers resolve against the live model list from agy models, by pattern — highest version wins, broken ids are skipped. A new Gemini generation is adopted with no code change.
Tier | Resolves to | Use for |
| Gemini Flash, low effort | single-fact lookups, formatting |
| Gemini Flash, medium effort | everyday tasks, straightforward search |
| Gemini Flash, high effort | multi-step work needing a capable model |
| Gemini Pro | genuinely hard synthesis |
| Claude Sonnet | when the Gemini tiers are not enough |
| Claude Opus | quota-constrained, use sparingly |
Model routing verification
agy has had model ids that silently route to a different backend — the flag is accepted, the response looks normal, and the model's own claim about its identity is not reliable. Confirmed on 1.1.7 and still present on 1.1.10:
gemini-3.1-pro-high → actually served by "Gemini 3.6 Flash (High)"
gemini-3.5-flash-low → actually served by "Gemini 3.5 Flash (Medium)"Note that 1.1.10 shipped a fix for --model and --effort "being ignored ... so the run silently fell back to the persisted or default model". That is a different fault, and these two ids still misroute after it. The sibling ids gemini-3.6-flash-low and gemini-3.1-pro-low resolve correctly, which rules out flag ordering; what is left looks like effort variants that have no backend but are listed by agy models regardless, so agy serves the nearest one instead of failing. Trust the self-test, not the changelog.
This server runs every call with --log-file and parses agy's own line:
Propagating selected model override to backend: label="..."The requested id and the reported label are compared by normalisation, not against a lookup table:
normalize(s) = s.toLowerCase().replace(/[^a-z0-9]/g, '')
match if normalize(label).startsWith(normalize(requestedId))Because there is no hardcoded table, a routing bug introduced in a future agy build is caught the same way the known ones are. When a mismatch is detected the server names the model that actually answered, records it in ~/.local/state/agy-mcp/mismatches.json, and surfaces it in agy_models.
The two ids above are seeded as blocked and refused by default; pass force_broken_model to override and get an explicit warning instead of silent wrong-model output.
Security model
The reason there is a separate agy_exec tool is that MCP permission rules in Claude Code match on tool name only — there is no argument-level matching. If local execution were a boolean parameter on agy_ask, allowlisting agy_ask would allowlist arbitrary shell access.
So the capability is split:
agy_askandagy_researchcan never giveagyshell or file access, whatever arguments are passed. Safe to allowlist.agy_execis the only path to--dangerously-skip-permissions. Do not allowlist it. Let it prompt every time.
A suggested allowlist for ~/.claude/settings.json, deliberately excluding agy_exec:
{
"permissions": {
"allow": [
"mcp__agy__agy_ask",
"mcp__agy__agy_research",
"mcp__agy__agy_result",
"mcp__agy__agy_models",
"mcp__agy__agy_selftest"
]
}
}What agy_exec does and does not enforce
workdirs is required and validated before agy is started. Every entry must be an absolute path to an existing directory; symlinks are resolved first, and the filesystem root, the home directory and system roots are refused outright — those are the over-scopes people reach for by accident. The first entry also becomes the working directory of the agy process, so relative paths resolve inside the scope. sandbox defaults to true, enabling agy's own terminal restrictions; the safer setting is what you get by not thinking about it.
Be blunt about the limit of all this: it constrains the invocation, not the agent. agy still runs with --dangerously-skip-permissions and has a shell. Writing "read-only" into the prompt is an instruction to the model, not an enforced sandbox — a request that will probably be respected, never a guarantee. This project does not claim to jail agy, and you should not describe it that way to your users.
Configuration
Variable | Default | Meaning |
|
| Path to the |
State (detected misroutings, background jobs) lives in ~/.local/state/agy-mcp/.
Known limitations
The seeded broken-model list is tied to an
agyversion. It may be stale in either direction. Runagy_selftestafteragy updateto re-map.agymay decline remote-host work framed as a security audit. Describing the task accurately — your own machine, access already configured, a configuration inventory rather than a security analysis — is usually what was missing./usageis not reachable headlessly.agy usageneeds a real TTY;agy -p "/usage"returns a generic description, not real quota data.Headless
agycannot prompt for permission, which is exactly why file and shell work needsagy_exec.Parallel subagents in
--printmode are real — each has a conversation tree under~/.gemini/antigravity-cli/brain/<id>/with genuine search grounding. The mechanism is trustworthy; individual figures can still be stale, so spot-check anything load-bearing.
Disclaimer
Unofficial and unaffiliated. Not endorsed by Google or Anthropic. "Antigravity", "Gemini", "Claude" and "Claude Code" belong to their respective owners; they are used here only to describe what this tool interoperates with.
License
This server cannot be installed
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 Servers
- AlicenseAqualityAmaintenanceAn MCP server that bridges Claude Code with Antigravity CLI using a Swarm Agent architecture to optimize local development workflows and minimize LLM token costs. Includes a web UI for monitoring agent workflows.Last updated1517MIT
- Alicense-qualityAmaintenanceMCP server enabling delegation of tasks to the Antigravity (Gemini) CLI from any AI client supporting MCP.Last updated8MIT
- AlicenseAqualityCmaintenanceA Claude Code MCP server and skill that enables delegation of prompts to agy (Antigravity/Gemini) CLI for model queries, conversation management, authentication, and image generation.Last updated4MIT
- Flicense-qualityCmaintenanceAn MCP server that lets Claude Code call the Google Antigravity CLI (agy) headlessly for a second opinion from a different model family, or to have agy read project files on Claude's behalf so large files never enter Claude's context window.Last updated
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
MCP server for AI dialogue using various LLM models via AceDataCloud
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sh3rm/agy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server