Skip to main content
Glama

agyenvoy

A Claude Code plugin (MCP server + skill) that lets one agent dispatch the agy (Antigravity / Gemini) CLI. Delegate prompts to agy's models, continue/resume conversations, list models, check auth/credit, log in, and generate real images via agy's native image model.

Claude Code only. The MCP server is a single self-contained server.mjs (deps bundled) — no npm install needed to run it.

Tools

Tool

Purpose

agy_ask

Run a prompt through agy --print. Params: model, add_dir[], project, new_project, continue_conversation, conversation_id, timeout_ms. Blocks with a hint if logged out.

agy_list_models

List models available to agy. No args.

agy_auth_status

Report login state + per-model quota (credit). Read-only, never returns the token.

agy_login

Ensure agy is logged in; if not, open a terminal for Google sign-in and poll until done (macOS).

Related MCP server: Sayalabs MCP

Skills

Each skill teaches the host agent to reach for agy where it beats Claude's native abilities:

Skill

Covers

agy-image-gen

Generate/edit raster images (native-model phrasing, matplotlib-trap avoidance, verify step).

agy-media-understanding

Transcribe audio and describe/summarize video — Claude can't hear or watch media; Gemini can.

agy-second-opinion

Cross-family review of a plan/diff/answer via Gemini or GPT-OSS models.

Prerequisites

  • Node.js >= 18.

  • agy CLI installedagy models should work from your shell. If it isn't on $PATH, set AGY_BIN to the full path. (Auth itself is handled by agy_login.)

Install (as a plugin)

/plugin marketplace add yinjs/agyenvoy      # local; or <git-owner>/agyenvoy once pushed
/plugin install agyenvoy@agyenvoy

Then restart Claude Code (or /mcp) to load it.

Install (raw server, no plugin)

Copy .mcp.json.example to your project's .mcp.json, fix the absolute paths, done.

Gotcha: request timeout

agy responses exceed the default 60s MCP request timeout. Raise it in the environment launching Claude Code, or calls report a spurious client-side timeout:

export MCP_TOOL_TIMEOUT=600000   # 10 minutes

agy_ask's own timeout_ms (default 5m) governs the server-side wait.

Security

agy_ask runs agy with --dangerously-skip-permissions so tool actions inside agy are auto-approved (required for non-interactive use — no TTY to approve). Use with trusted prompts only.

Develop

npm install
git config core.hooksPath .githooks   # once: blocks commits with a stale server.mjs
npm run build     # tsc typecheck
npm run bundle    # -> server.mjs (self-contained, shipped)

Source: src/index.ts. The tracked server.mjs is the built artifact the plugin runs.

Available Tools

4 tools
agy_askAsk agy (Antigravity/Gemini)A

Send a prompt to the agy CLI (Antigravity, Gemini-backed) and return its response.

Runs agy non-interactively in print mode. Use this for a second opinion from Gemini/Claude/GPT models, to delegate a self-contained task, or to continue a multi-turn agy conversation.

Args:

  • prompt (string, required): The prompt to send.

  • model (string, optional): A model from agy_list_models (e.g. "Gemini 3.1 Pro (High)"). Omit for default.

  • add_dir (string[], optional): Absolute dirs to add to agy's workspace so it can read those files.

  • project (string, optional): Existing agy project ID.

  • new_project (boolean, default false): Create a new project for this session.

  • continue_conversation (boolean, default false): Continue the most recent conversation.

  • conversation_id (string, optional): Resume a specific conversation by ID (overrides continue_conversation).

  • timeout_ms (number, default 300000): Max wait in ms (1000..1800000).

Returns JSON: { "response": string, "model": string, "exit_code": number }. On failure exit_code is non-zero and response contains agy's stderr (e.g. binary not found, timeout).

Note: runs agy with --dangerously-skip-permissions so tool actions inside agy are auto-approved (required for non-interactive use). Only invoke with prompts you trust to run unattended.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoModel name from agy_list_models (e.g. 'Gemini 3.1 Pro (High)'). Omit for the CLI default.
promptYesThe prompt to send to agy.
add_dirNoAbsolute directory paths to add to agy's workspace so it can read those files while answering.
projectNoExisting agy project ID to run the session under.
timeout_msNoMax time to wait for agy to respond, in milliseconds (default 300000 = 5m).
new_projectNoCreate a new agy project for this session instead of using the default/most-recent.
conversation_idNoResume a specific prior conversation by its ID. Takes precedence over continue_conversation.
continue_conversationNoContinue the most recent agy conversation (adds turns to it) instead of starting fresh.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read/write and open world. The description adds key behaviors: non-interactive mode, use of --dangerously-skip-permissions, auto-approval of tool actions, and failure modes (binary not found, timeout). This exceeds annotation information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: first sentence states purpose, then bullet arguments, return format, and a crucial note. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters and no output schema, the description covers all parameters, return format, and error handling. However, lacking details on how to obtain project IDs or the exact workspace behavior limits completeness slightly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions. The description's Args section adds context (e.g., 'absolute dirs to add to agy's workspace'), improving understanding beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a prompt to the agy CLI and returns its response, and it distinguishes this from sibling tools (auth, list models) by specifying use cases like second opinion, delegation, and conversation continuation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions when to use (second opinion, delegate task, continue conversation) and implies caution due to auto-approval, but does not explicitly state when not to use or list alternatives beyond siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agy_auth_statusCheck agy auth status & creditA
Read-onlyIdempotent

Report whether agy is logged in and how much per-model quota (credit) remains.

Reads agy's local account store (~/.antigravity_tools). Never returns the auth token.

Takes no arguments. Returns JSON: { "logged_in": boolean, // true if a current account has a valid, non-disabled token "email": string | null, // current account email "name": string | null, // current account display name "accounts": string[], // all known account emails "models_quota": [ { "display_name": string, "percentage": number, "reset_time": string } ] // percentage = remaining credit for that model (100 = full) }

Use before agy_ask to confirm agy is usable; if logged_in is false, call agy_login.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint), description adds that it reads local account store and never returns auth token, providing security-relevant behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is detailed and includes JSON structure, but front-loads purpose well. Could be slightly more concise but still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 0 parameters and no output schema, description provides full return schema and usage context, including security note. Complete for a status-check tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (schema coverage 100%), baseline 4 applies; no additional parameter info needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it reports login status and per-model quota, distinguishes from siblings by specifying use before agy_ask and referencing agy_login for alternative when not logged in.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (before agy_ask) and when to call alternative (agy_login if logged_in false). Also implies not to use for token retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agy_list_modelsList agy modelsA
Read-onlyIdempotent

List the models available to the agy CLI (runs agy models).

Use before agy_ask to discover valid values for its 'model' argument.

Takes no arguments. Returns JSON: { "models": string[] } — e.g. ["Gemini 3.5 Flash (High)", "Gemini 3.1 Pro (High)", "Claude Opus 4.6 (Thinking)"].

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. Description adds value by revealing the underlying CLI command, return format (JSON with models array), and example output, which are beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three clear, front-loaded sentences. No redundancy or unnecessary details. Every sentence adds value (purpose, usage, return format).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, description includes return format (JSON with models array and example). Combined with rich annotations, it fully informs an agent about purpose, usage, safety, and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, schema coverage is 100%. Description states 'Takes no arguments', which is sufficient. Baseline for 0 params is 4, and description adds no extra param info needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states 'list the models available to the agy CLI' with the command `agy models`. Clearly differentiates from siblings (agy_ask, agy_auth_status, agy_login) by focusing on model listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use before agy_ask to discover valid values for its model argument', providing clear when-to-use and linking to a sibling tool. Also states it takes no arguments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agy_loginLog in to agy (Google auth)A

Ensure agy is logged in. If already authenticated, returns immediately.

Otherwise opens a terminal window running agy so you can complete Google sign-in in your browser (agy drives the OAuth flow itself), then polls agy's account store until a valid account appears and reports the signed-in email.

Args:

  • timeout_ms (number, default 180000): how long to wait for login to complete (10000..600000).

Returns JSON: { "logged_in": boolean, "email": string | null, "already": boolean, "message": string }.

  • already=true means agy was already logged in (no terminal opened).

  • logged_in=false with a message means the wait timed out (finish login and call agy_auth_status).

macOS only (opens Terminal.app). On other platforms, run agy yourself to log in, then use agy_auth_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeout_msNoHow long to wait for login to complete before giving up, in ms (default 180000 = 3m).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations by detailing side effects: opens terminal, runs agy, drives OAuth, polls account store, and reports signed-in email. Explains return fields (logged_in, email, already, message) and timeout behavior. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured: begins with purpose, then process, args, returns, platform note. Each sentence adds value; no redundancy. Could be slightly more concise, but overall efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Completely covers all essential aspects: authentication flow, platform limitation, timeout handling, return format, and fallback instruction. Without an output schema, the description fully explains return values. No gaps for a single-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already fully describes timeout_ms with min, max, default, and description. Description restates the range and adds context 'how long to wait for login to complete', but adds minimal new information beyond what schema provides. With 100% schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states that the tool ensures agy is logged in, explaining the OAuth flow and distinguishing from sibling tool agy_auth_status which checks status. The verb 'log in' and resource 'agy' 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when to use (to ensure login), what happens if already authenticated (returns immediately), and instructions for timeout scenario (finish login and call agy_auth_status). Also notes macOS exclusivity and alternative for other platforms. Lacks explicit 'when not to use' statement but overall guidance is strong.

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. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.0
    • First observedagy_ask
    • First observedagy_auth_status
    • First observedagy_list_models
    • First observedagy_login

TDQS

A4.6/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose: asking the CLI, checking auth status, listing models, and logging in. There is no functional overlap or ambiguity among them.

Naming Consistency5/5

All tool names follow a consistent 'agy_verb' pattern (ask, auth_status, list_models, login) using snake_case. The pattern is predictable and easy for an agent to learn.

Tool Count5/5

With only 4 tools, the server is tightly scoped to the essential operations of the agy CLI: authentication, model discovery, and making requests. Each tool is necessary and there is no bloat.

Completeness4/5

The tool surface covers the core interaction loop: authenticate, check status, list models, and send prompts. Minor gaps exist—e.g., no tool to list ongoing conversations or manage projects directly—but these are partially addressed via parameters in agy_ask, so agents can still function.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/yinjs/agyenvoy'

If you have feedback or need assistance with the MCP directory API, please join our Discord server