antigravity-mcp
This MCP server lets an orchestrating AI delegate background coding/analysis/research jobs to Antigravity's local agent engine and keep working while they run.
Dispatch background agents –
dispatch_gemini_agentstarts a job and immediately returns ajob_id, never blocking the caller.Check job status and output –
check_agent_jobreturns status, elapsed time, progress log, and final output.List active/recent jobs –
list_active_jobsshows in-flight and recent job history, persisted across sessions.Cancel running jobs –
cancel_agent_jobcooperatively stops a job.Synchronous multi-file code search –
gemini_code_searchscans many files at once and answers architectural/code questions synchronously.Discover available models –
list_available_modelsreturns the live model catalog from the connected Antigravity IDE session.Model selection flexibility – pass exact labels or loose descriptions (e.g. "flash", "opus") with strict matching.
Works without an API key when the Antigravity IDE is open; falls back to the Gemini REST API if the IDE isn't running and a key is set.
Configurable concurrency, timeouts, and state location via environment variables.
Uses Google's Gemini REST API as a fallback execution backend when the local Antigravity language server is unavailable and a GEMINI_API_KEY or GOOGLE_API_KEY is configured, allowing background agent jobs and code-search queries to run against Gemini models hosted by Google.
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-mcpdispatch a background job to scan the repo for unused exports"
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
Delegate background subagent jobs to the Antigravity IDE's local agent engine — from Claude Code, Codex, Cursor, or any other MCP client.
If you have the Antigravity IDE open and signed in, you already have a local agent engine with a catalog of frontier models sitting idle. This is an MCP server that exposes that engine as a handful of tools, so the model you actually drive your work with can hand jobs off to it and keep going.
Your orchestrator stays the architect. The subagents do the legwork.
┌─────────────────────────────────────────────────┐
│ Your MCP client │
│ (Claude Code · Codex · Cursor · anything else) │
│ plans the work, reviews every result │
└───────────────────────┬─────────────────────────┘
│ MCP · JSON-RPC 2.0 over stdio
▼
┌─────────────────────────────────────────────────┐
│ antigravity-mcp │
│ returns a job_id immediately, never blocks │
│ bounded worker pool · job history on disk │
└───────────────────────┬─────────────────────────┘
│ tried in order
┌─────────────────┼─────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Antigravity │ │ Gemini REST │ │ Explicit │
│ language │ │ API │ │ failure │
│ server │ │ │ │ │
│ no API key │ │ needs a key │ │ never faked │
└───────────────┘ └───────────────┘ └───────────────┘Why
Orchestrating models are expensive and serial. Plenty of real work isn't worth their attention: scanning forty files to answer one architectural question, generating the fifth round of near-identical fixtures, or reading a dependency tree you already understand. Hand those to a fast local worker, keep planning while it runs, and collect the result when you need it.
Because jobs run on the IDE's own authenticated session, no API key is needed when the IDE is open.
Related MCP server: antigravity
Install
pip install git+https://github.com/Kio-pon/antigravity-mcp.gitOr clone it — there are no dependencies, so a checkout runs as-is on a bare interpreter:
git clone https://github.com/Kio-pon/antigravity-mcp.gitRegister with your MCP client
claude mcp add antigravity-agents -- antigravity-mcpFrom a clone instead of an install:
claude mcp add antigravity-agents -- python3 /path/to/antigravity-mcp/src/antigravity_mcp/__main__.pyAdd to ~/.codex/config.toml:
[mcp_servers.antigravity-agents]
command = "antigravity-mcp"{
"mcpServers": {
"antigravity-agents": {
"command": "antigravity-mcp",
"env": {
"ANTIGRAVITY_MAX_CONCURRENT_JOBS": "3"
}
}
}
}Ready-made config files live in examples/.
Verify it is wired up by asking your client to call list_available_models. With the IDE open you should get back the live model catalog.
Tools
Tool | Arguments | What it does |
|
| Starts a background job. Returns a |
|
| Status, elapsed time, progress log, and output. |
|
| Recent and in-flight jobs. |
|
| Cooperatively stops a running job. |
|
| Scans many files at once and answers synchronously. |
| — | The live model catalog from your IDE session. |
Picking a model
The catalog is whatever your Antigravity account currently has, and it changes as models ship — so nothing is hardcoded. Call list_available_models to see it, then pass either an exact label or a loose description:
"Gemini 3.8 Flash (High)" exact label
"gemini 3.7 flash medium" version + family + effort tier
"flash" best available flash — highest effort, newest version
"opus" best available OpusMatching is token-based and strict about what you do specify: every word and version number you give has to appear in the model's label. "gemini-3.5-flash" will not quietly resolve to a 3.7 model just because both are flash — it raises and lists what actually exists. Leave a dimension out and it is a wildcard, resolved to the highest effort tier and newest version that fits.
How a session usually goes
1. dispatch_gemini_agent → job_id, returned instantly
2. …carry on with your own work…
3. check_agent_job → output when it's ready
4. review before applying anything to filesStep 4 is the point of the whole design. A subagent's output is a proposal, not a commit.
Execution backends
Two backends, tried in order:
Local Antigravity language server — the default. Connects over loopback HTTPS and reuses the IDE's signed-in session. No API key.
Gemini REST API — used when the IDE is not running and
GEMINI_API_KEYorGOOGLE_API_KEYis set.
If neither is reachable the job fails with an error saying so. There is deliberately no further tier that returns a stand-in result: a plausible answer no model actually produced is worse than an error, because nothing downstream can tell the two apart.
Configuration
All optional.
Variable | Default | Purpose |
|
| Jobs running at once. Every job drives a live session on the same language server process, so this is a real resource ceiling, not a formality. Extra jobs queue. |
|
| Seconds before a job is abandoned. Completion is detected, not waited out — a short single-shot answer returns in seconds — so a generous ceiling only bounds a genuinely stuck agent. |
|
| Tool calls handled in parallel. |
| platform state dir | Where job history is kept. |
| unset | Skip the local backend entirely. |
|
| Server log level on stderr. |
| unset | Enables the REST fallback. |
Job history is written to $XDG_STATE_HOME/antigravity-mcp/jobs.json on Linux, ~/Library/Application Support/antigravity-mcp/ on macOS, and %LOCALAPPDATA%\antigravity-mcp\ on Windows — never into the install tree. It survives across sessions, which is what makes a job_id from yesterday still mean something today.
The optional skill
skills/antigravity-agent/ is a Claude Code skill that teaches the orchestrator when delegating is worth it, so you don't have to say it every time. Install it with:
cp -r skills/antigravity-agent ~/.claude/skills/Protocol support
The server implements the current 2026-07-28 specification and the
handshake-based revisions before it, deciding per request which one a client is
speaking. Modern clients declare their version in each request's _meta; legacy
clients open with initialize. Both work against the same process with no
configuration, and server/discover reports every version on offer.
Because stdio has no HTTP status codes to drive fallback, server/discover is
also how a client tells a modern server from a legacy one — so it is answered
before anything else.
Compatibility
The local backend speaks private IDE IPC —StartCascade, SendUserCascadeMessage, GetUserStatus, GetCascadeTrajectory over loopback Connect-RPC. These are internal endpoints with no cross-version stability guarantee. An IDE update can change them.
Status | |
MCP specification | 2026-07-28 (current), plus 2025-06-18, 2025-03-26, 2024-11-05 |
Antigravity IDE | Verified against v1.107.0 ( |
Linux | Verified — process discovery via |
macOS | Implemented via |
Windows | Implemented via |
Python | 3.9+ |
Running it on macOS or Windows? A quick issue saying whether discovery found your language server would be genuinely useful — that's the one part that cannot be tested without the hardware.
Development
git clone https://github.com/Kio-pon/antigravity-mcp.git
cd antigravity-mcp
pip install -e ".[dev]"
pytestThe default suite is hermetic — no IDE, no network, no API key — driving the real request path with a stub executor in place of a language server. To also run the live round-trip against a real one, open the IDE and set ANTIGRAVITY_LIVE_TESTS=1.
See CONTRIBUTING.md.
License
MIT.
Not affiliated with, endorsed by, or supported by Google or the Antigravity IDE team.
Available Tools
6 toolscancel_agent_jobB
Cancel a running background subagent job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job ID to cancel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the action itself. It does not say whether cancellation is irreversible, whether the job's partial output is retained or discarded, what happens if the job already finished, or what the tool returns. For a destructive lifecycle operation this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the action and its target are stated immediately.
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 one-parameter tool with a fully documented schema and no output schema, the definition is minimally viable. It is still missing the behavioral facts an agent needs before invoking a cancellation (irreversibility, effect on job output, behavior on already-completed jobs).
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 single job_id parameter is documented in the schema ('The job ID to cancel.'), so the baseline of 3 applies. The description adds no format, sourcing, or lookup guidance (e.g. obtaining the ID from list_active_jobs) 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 states a specific verb and resource ('Cancel a running background subagent job'), which an agent can distinguish from the read-oriented siblings check_agent_job and list_active_jobs by verb alone. It stops short of explicitly naming a sibling or contrasting scope, so it lands at 4 rather than 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?
There is no when-to-use guidance, no prerequisites (e.g. the job must still be running), and no mention of alternatives or follow-up tools such as check_agent_job. The word 'running' hints at a precondition but leaves it to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_agent_jobB
Check the status, logs, duration, and output of a dispatched agent job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job ID returned from dispatch_gemini_agent (e.g. 'agy-1a2b3c4d'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden as a single terse sentence. It never states that the operation is read-only, whether it blocks or polls, whether log output is truncated or streamed, or how it behaves for a still-running versus failed job.
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?
One sentence, zero filler, and the object of the operation is front-loaded before the enumerated return facets. Nothing here fails to earn 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?
With no output schema and no annotations, the description usefully compensates by naming what comes back (status, logs, duration, output). It still omits polling/streaming behavior and terminal state handling, which an agent monitoring a job would want.
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% for the single job_id parameter, and the schema description even cites dispatch_gemini_agent as the source and gives an example format. The prose adds no meaning 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 pairs a specific verb ('Check') with a specific resource ('a dispatched agent job') and enumerates the returned facets (status, logs, duration, output), which is clearer than the bare name. It implicitly distinguishes itself from dispatch_gemini_agent by noting the job is already dispatched, but it does not explicitly contrast itself with list_active_jobs or cancel_agent_job.
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 guidance on when to use this tool versus list_active_jobs (which also surfaces jobs) or cancel_agent_job. The dependency on a prior dispatch is only hinted at through 'dispatched', leaving the workflow condition to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dispatch_gemini_agentA
Dispatch a coding, analysis, or research task to a background Antigravity subagent. Returns immediately with a job_id so the orchestrator is never blocked.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Detailed task description or prompt for the worker agent. | |
| model | No | Which live model to run this job on, e.g. 'Gemini 3.8 Flash (High)'. The live catalog (versions, families, and thinking-effort tiers) changes over time and depends on the connected Antigravity IDE session — call list_available_models rather than assuming a name. Defaults to the fastest available flash-tier model. | |
| context_files | No | Optional absolute file paths to include as context for the agent. | |
| system_instruction | No | Custom system instructions for the subagent worker. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the key behavioral trait: asynchronous, non-blocking execution that returns a job_id immediately. However, it omits the rest of the job lifecycle — that the job runs in the background and must be polled, whether it can be cancelled, failure behavior, and any auth/session prerequisites (the model param hints at dependence on the connected IDE session).
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 zero filler. The core action is front-loaded and the non-blocking return contract is stated second, which is exactly the right ordering.
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 usefully states the return value (a job_id). Combined with full parameter coverage, an agent has enough to invoke the tool. The remaining gap is the lifecycle handoff — it never points at check_agent_job or cancel_agent_job for the dispatched job.
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 four parameters are already documented, including the pointer to list_available_models for the model param. The description adds no additional parameter meaning, 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?
States a specific verb and resource: dispatching coding/analysis/research work to a background Antigravity subagent, and it names the async nature (returns immediately with a job_id). It does not explicitly contrast itself with siblings like gemini_code_search or check_agent_job, but the dispatch semantics are unmistakable.
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 rather than stated: 'background' and 'orchestrator is never blocked' suggest long-running work that shouldn't be awaited inline. There is no explicit when-to-use vs. gemini_code_search, and no instruction to follow up with check_agent_job or cancel_agent_job — the natural next steps are left for the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gemini_code_searchB
Use a large-context model to scan multiple repository files at once and answer architectural or code questions about them. Runs synchronously and returns the answer.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Query or pattern to search for and explain across the provided files. | |
| context_files | Yes | Absolute paths of the files to scan. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses synchronous execution and that an answer is returned, which is useful context. But it omits important operational details such as file-size limits, model cost, error behavior, and what exactly the answer contains.
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 efficient sentences with no wasted words. The opening 'Use a large-context model...' is slightly indirect, but the core action and synchronous behavior are front-loaded enough for quick comprehension.
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 no annotations and no output schema, the description covers the basic purpose and synchronous nature but leaves gaps regarding limits, cost, error handling, and return format. It is minimally adequate but not complete enough to fully guide 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?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no syntax, format, or constraint details beyond what the schema provides, making the baseline 3 appropriate.
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: scans multiple repository files and answers architectural or code questions. The phrase 'Runs synchronously' implicitly distinguishes it from the asynchronous agent-job siblings (like dispatch_gemini_agent and check_agent_job), but it does not name any sibling explicitly, keeping it from a 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?
Implies usage context (architectural or code questions across files) and notes synchronous execution, which hints at when to prefer it over async agent dispatch. However, it offers no explicit when-to-use/when-not guidance or named alternatives, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_active_jobsC
List active, pending, completed, cancelled, or failed subagent jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of recent jobs to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden and discloses almost nothing: no ordering (most recent first?), no pagination/limit behavior, no scope of jobs, and no indication of what a job entry contains. The only real signal is that all statuses are returned, which contradicts the tool name's implication of actives-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?
One compact sentence with no filler, front-loaded with the verb and resource. It is efficient, though the status enumeration carries most of the weight and could be paired with one clause on scope.
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 single-parameter list tool with no output schema, the definition covers purpose but omits ordering, scope, and result shape, leaving the agent to guess what a returned job record looks like. Adequate but clearly thin.
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 single 'limit' parameter is fully described in the schema ('Maximum number of recent jobs to return'), so the schema does the work. The description adds no ordering or default-value context beyond it, which is the baseline expectation at 100% 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 gives a clear verb ('List') and resource ('subagent jobs') and usefully enumerates the statuses returned, which corrects the misleading 'active' in the name. It does not, however, distinguish itself from sibling check_agent_job or explain scope (own jobs vs all jobs).
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 guidance on when to use this rather than check_agent_job (single job status) or the dispatch tools. The reader must infer that this is the enumeration counterpart, but nothing in the text says so.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_modelsA
List the live models currently available from the connected Antigravity IDE session. Call this before dispatch_gemini_agent when you do not already know an exact, currently-live model name.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully signals that results are session-scoped and dynamic ('live', 'currently available'), but says nothing about what the listing returns (names vs. full metadata), whether it is cached, or any failure mode when no session is connected. Adequate but incomplete for a tool with zero annotation coverage and no output schema.
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, zero waste, with the resource and scope front-loaded and the usage condition following. 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-parameter list tool, purpose and the routing rule to dispatch_gemini_agent are covered. The only gap is the return shape, which matters slightly more here because no output schema exists to describe it.
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 no parameters, so there is nothing for the description to disambiguate and the schema is trivially complete. Baseline 4 applies for a zero-parameter tool.
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 (List) and resource (live models available from the connected Antigravity IDE session), and scopes it to the current session rather than a static catalogue. It also names the downstream consumer, dispatch_gemini_agent, so an agent can place it among its 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 an explicit call condition: invoke before dispatch_gemini_agent when the exact, currently-live model name is unknown. That is a concrete when-to-use trigger tied to a named sibling, leaving little to inference.
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.
6 tool updates
v0.1.0- First observed
cancel_agent_job - First observed
check_agent_job - First observed
dispatch_gemini_agent - First observed
gemini_code_search - First observed
list_active_jobs - First observed
list_available_models
TDQS
Scored across 6 tools
Most tools are clearly distinct: dispatch/check/list/cancel form a clean job-management set, and list_available_models is unique. The main soft spot is gemini_code_search vs dispatch_gemini_agent, since both invoke Gemini to reason over code, though the sync-scan vs async-agent distinction in the descriptions mostly resolves it.
Five of six names follow a clean verb_noun pattern (dispatch_gemini_agent, list_available_models, check_agent_job, list_active_jobs, cancel_agent_job). gemini_code_search breaks the convention by leading with the noun/qualifier rather than a verb, a minor deviation in an otherwise consistent set.
Six tools is well-scoped for an orchestration server covering sync code Q&A, async dispatch, model discovery, and job lifecycle management. Each tool earns its place with no redundant or filler operations.
The subagent job lifecycle is well covered (dispatch, check status/logs/output, list, cancel), plus code search and model listing. Minor gaps remain, such as no explicit job-resume/retry or log-streaming tool, but agents can work around these.
Maintenance
Related MCP Connectors
Discover and call AI agents via MCP. Supports A2A agents and platform agents with async tasks.
Bounded KVP, RAG search, and wipe receipts for agent jobs over remote MCP
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceIntegrates Google Antigravity's agy agent into MCP, enabling asynchronous delegation of complex tasks like code analysis and file management with job polling.50 npm2MIT
- FlicenseNot gradedqualityCmaintenanceEnables local AI agents to generate code and interact with Google Antigravity (Gemini Pro) via MCP, consuming zero API tokens.-
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients like Claude Code to delegate coding tasks to the local Cursor Agent CLI, with persistent per-workspace sessions that resume across calls.12 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT (or any MCP client) to delegate coding tasks to a local Hermes-backed agent with async job management, supporting read-only investigation, implementation, and continuation of sessions via secure MCP tunnel.1MIT