Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AGY_PATHNoPath to the Antigravity CLI.agy on PATH
JULES_API_KEYNoJules API key from jules.google.com/settings, for the jules_* tools.
GEMINI_API_KEYNoGemini API key for the media tools (video_generate, video_edit, video_check, image_generate, video_stitch). Can be set in ~/.config/gemini-pro-mcp/.env or passed as an env entry in the client config.
GEMINI_PRO_ENV_FILENoOptional file with any of the above settings.~/.config/gemini-pro-mcp/.env
GEMINI_PRO_AGY_MODELNoDefault model for the gemini_* tools.agy's default
GEMINI_PRO_OUTPUT_DIRNoWhere videos and images are saved.~/gemini-pro-output
GEMINI_PRO_AGY_TIMEOUTNoSeconds per Antigravity request.600
GEMINI_PRO_AUTO_APPROVENoSet to 1 to pre-approve spending: no confirmation questions, Flow requests are approved automatically.off
GEMINI_PRO_FLOW_PROJECTNoFlow project id to work in.open or most recent project
GEMINI_PRO_ENABLE_BROWSERNoSet to 1 to register the browser tools (Flow, Gemini app, AI Mode, Google AI sites). The older GEMINI_PRO_ENABLE_FLOW=1 still works.off

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Tools for everything a Google AI Pro plan includes. google_pro_benefits lists each benefit and the tool that reaches it; start there when unsure.

  • gemini_ask, gemini_research, gemini_code, gemini_agents, gemini_models: Gemini through the Antigravity CLI on the user's Google AI Pro subscription. No API cost; second opinions, reading local files, sourced web research, and gemini_code, which EDITS files in a given folder (delegate a coding task, then review the diff).

  • jules_*: Jules, Google's cloud coding agent, on GitHub repos (official API; needs JULES_API_KEY from jules.google.com/settings).

  • notebook_*: Gemini Notebook (formerly NotebookLM): notebooks, sources, grounded questions, Studio outputs (Audio/Video Overviews, slides, mind maps, quizzes...).

  • video_generate, video_edit, video_check, image_generate, video_stitch: the official Gemini API (video_stitch is local and free). The generation tools COST MONEY, billed to the API key's Google Cloud project.

  • flow_* (only if enabled): EXPERIMENTAL, drives Google Flow in the user's own signed-in Chrome and spends their monthly Flow credits. EVERY Flow feature is reachable:

    • flow_make_video turns "a 2 minute video of ..." into clips and one stitched file;

    • flow_generate talks to Flow's agent (videos, images, edits, extensions, characters);

    • flow_tools / flow_open_tool use any Flow tool (Image Editor, Video Resizer, Transition Machine, Type Overlays, community tools...);

    • flow_collect downloads results.

  • gemini_app (Gemini app: 4 Argon, Deep Research, images, Veo videos, music, Canvas, files), gemini_app_result, google_ai_mode (AI Mode in Search), and google_page / google_act, which read and operate ANY Google AI site like a person: Flow, Gemini Notebooks, AI Studio, Jules, Colab, Flow Music, Docs/Drive.

Before any paid call, tell the user roughly what it costs and get their OK.

Generated files are saved locally; tool results give the path.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
gemini_askA

Ask Gemini a question or give it a reading task, through the Antigravity CLI on the user's Google AI Pro plan (no API cost; uses the plan's limits).

    Good for a second opinion on code or a design, reviewing local files or
    folders passed in `paths`, and long reasoning. Gemini runs read-only in a
    sandbox: it can read those paths and search the web but cannot change
    files or run commands. For web research with cited sources use
    gemini_research; to let Gemini edit a folder use gemini_code.

    Args:
        prompt: The question or task.
        model: Model id from gemini_models (e.g. "gemini-3.8-flash-medium");
            default is agy's (or GEMINI_PRO_AGY_MODEL).
        paths: Local files or folders Gemini may read.
        conversation_id: Continue an earlier gemini_ask/gemini_research chat.
        effort: Reasoning effort: low, medium, high, xhigh or max.

    Returns:
        Gemini's answer and a conversation_id for follow-ups.
    
gemini_researchA

Research a question on the live web with Gemini and Google Search, and get an answer that cites its sources. Use it for current facts, releases, prices, docs or comparisons that may be newer than your training data.

    Runs through the Antigravity CLI on the user's Google AI Pro plan: no API
    cost, uses the plan's limits. Read-only. Gemini prefers official sources,
    cross-checks key facts and says when sources disagree. Usually takes about
    a minute. For questions about local files use gemini_ask instead.

    Args:
        question: What to find out, with context that narrows it, e.g.
            "What changed in Flutter 3.47 for Android builds?".
        model: Model id from gemini_models, e.g. "gemini-4-argon-high";
            omit for agy's default (or GEMINI_PRO_AGY_MODEL).
        effort: Reasoning effort: "low", "medium", "high", "xhigh" or "max".

    Returns:
        The answer followed by a "Sources" list of URLs, and a conversation_id;
        pass it to gemini_ask to ask follow-up questions in the same chat.
    
gemini_codeA

Delegate a coding task to Gemini, which reads and EDITS files in one local folder through the Antigravity agent on the user's Google AI Pro plan (no API cost). This changes files: tell the user, and review the result afterwards, e.g. with git diff. Terminal commands run in a sandbox and only the given folder is writable.

    Good for a well-defined change: fix a bug, add tests, refactor a module.
    For read-only questions use gemini_ask; for a task on a GitHub repo that
    should end in a pull request use jules_start.

    Args:
        task: What to change and how to know it is done, e.g. "Add unit tests
            for parse_date in utils/dates.py; all tests must pass".
        folder: Absolute path of the project folder Gemini may edit.
        model: Model id from gemini_models; omit for agy's default.
        agent: Name of an Antigravity agent from gemini_agents to run the task.
        effort: Reasoning effort: "low", "medium", "high", "xhigh" or "max".
        conversation_id: Continue an earlier gemini_code or gemini_ask chat, e.g.
            to ask for fixes to the previous change.

    Returns:
        Gemini's summary of what it changed, and a conversation_id for follow-up
        requests; or an error if the folder does not exist.
    
gemini_agentsA

List the custom Antigravity agents the user has made or installed, such as a "reviewer" or "test-writer" agent with its own instructions. Read-only, free and quick. Call it before gemini_code when the user wants a task done by a specific agent.

    Returns:
        The agent names and descriptions as the Antigravity CLI prints them; pass
        a name as `agent` to gemini_code. "No custom agents." if there are none.
    
gemini_modelsA

List the models the user's Google account can use through the Antigravity CLI, e.g. Gemini 4 Argon and Gemini 3.8 Flash at several thinking levels. Read-only, free and quick. Call it when the user asks for a specific or stronger model; otherwise the gemini_* tools use agy's default.

    Returns:
        One "id — name" line per model, e.g. "gemini-4-argon-high — Gemini 4
        Argon (High)". Pass the id as `model` to gemini_ask, gemini_research or
        gemini_code.
    
video_generateA

Generate a short video with native sound from a text prompt, with Gemini Omni Flash through the Gemini API, and save it as an .mp4 in GEMINI_PRO_OUTPUT_DIR. One call makes one clip of about 8 seconds; for longer videos chain video_edit, or use flow_make_video on the user's Flow credits when browser tools are enabled.

COSTS MONEY: billed to the API key's Google Cloud project (about $0.10 per second of 720p video, no free tier). Confirm with the user before calling.

Args: prompt: Subject, action, setting, camera and sound, e.g. "A red tram crosses Baku at sunset, slow dolly shot, street noise". English works best; timecodes like "[0-3s] ... [3-6s] ..." sequence the shot. aspect_ratio: "16:9" (landscape, default) or "9:16" (vertical). resolution: "720p" (default), "360p", or upscaled "1080p" or "4k". first_frame: Local image path the video starts from. last_frame: Local image path the video ends on. reference_images: Up to 3 local images of characters or objects to keep. file_name: Optional .mp4 file name; default is the date plus prompt words. wait_seconds: How long to wait for the render (default 300) before returning an id to fetch later with video_check.

Returns: The saved .mp4 path and an id to change or extend it with video_edit; or, if rendering takes longer than wait_seconds, an id for video_check.

video_editA

Change or extend a video; the result is saved as a new file.

COSTS MONEY: billed like video_generate. Confirm with the user before calling. Give exactly one of previous_id (from video_generate/video_edit) or video_path (a local video of 10 seconds or less).

Args: instruction: e.g. "Make it night", or to extend: "Continue the scene: the car drives off" (adds 3-10 s, up to 40 s in total). previous_id: id returned by an earlier video_generate or video_edit. video_path: Local video (max 10 s) to edit instead. aspect_ratio: "16:9" or "9:16". resolution: "720p" (default), "360p", "1080p" or "4k". file_name: Optional .mp4 file name. wait_seconds: How long to wait before returning an id for video_check.

Returns: The saved .mp4 path and a new id (or an id for video_check).

video_checkA

Fetch a video that video_generate or video_edit started but had not finished rendering when they returned, and save it as an .mp4. Free: the video was paid for when it was started, and checking costs nothing. Call it again with the same id if the video is still rendering.

    Args:
        id: The id returned by video_generate or video_edit.
        wait_seconds: How long to keep waiting in this call (default 120)
            before returning the current status.

    Returns:
        The saved .mp4 path and an id for video_edit once the video is ready;
        otherwise its status (still rendering, or failed with the reason).
    
image_generateA

Create a new image from a prompt, or edit local images, with Nano Banana through the Gemini API, and save the result in GEMINI_PRO_OUTPUT_DIR. Pass previous_id to refine an earlier result step by step ("make the sky darker") without starting over.

COSTS MONEY: about $0.034 (1K), $0.05 (2K) or $0.11 (4K) per image with Nano Banana 2.1; Nano Banana Pro ("gemini-3-pro-image") is $0.13-0.24. No free tier. Confirm with the user before calling.

Args: prompt: What to draw, or how to change the input images, e.g. "Turn this sketch into a clean flat app icon on a white background". model: "gemini-nano-banana-2.1" (default), "gemini-3.1-flash-lite-image" (cheapest, 1K only) or "gemini-3-pro-image" (best, for hard tasks). aspect_ratio: "1:1" (default), "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9" or "21:9". image_size: "1K" (default), "2K" or "4K". input_images: Local image paths to edit or to use as references. previous_id: The id of an earlier image_generate result to refine. file_name: Optional file name; default is the date plus prompt words.

Returns: The saved image path and an id to pass as previous_id for further edits.

video_stitchA

Join local video clips, in the given order, into one .mp4 with ffmpeg. Runs on this computer and costs nothing. Clips with the same format (e.g. all from video_generate or Flow) are joined losslessly; mixed formats are re-encoded to H.264/AAC. Use it to combine clips made by video_generate, video_edit or flow_collect; flow_make_video already joins its own clips.

    Args:
        clips: Paths of the clips, first to last (at least one).
        file_name: Name for the joined file, saved in GEMINI_PRO_OUTPUT_DIR; a
            number is added if it already exists.

    Returns:
        "Saved: <path>" with the joined video, or an error such as a missing clip.
    
jules_sourcesA

List the GitHub repositories the user has connected to Jules, Google's cloud coding agent. Read-only and free. Call it before jules_start to get the exact repo name; Jules can only work on repositories listed here.

    Returns:
        One source name per line, e.g. "github/owner/repo", to pass as `repo`
        to jules_start; or a note that no repository is connected yet, with the
        link where the user connects GitHub.
    
jules_startA

Start a Jules session: Google's coding agent works on a task in one of the user's GitHub repositories, in the cloud and asynchronously, within the Google AI Pro plan's Jules limits (no extra cost). It can push a branch and open a pull request, so confirm the task with the user first.

    Then poll with jules_status, answer questions with jules_message, and
    approve the plan with jules_approve_plan if you asked for approval. For a
    change in a local folder use gemini_code instead.

    Args:
        prompt: The task with acceptance criteria, e.g. "Add input validation
            to the /signup endpoint and tests for it".
        repo: Repository from jules_sources, e.g. "github/owner/repo"; omit for
            a session without a repository.
        branch: Branch Jules starts from (default "main").
        title: Optional session title; Jules makes one up otherwise.
        create_pr: True lets Jules open a pull request automatically when done.
        require_plan_approval: True makes Jules wait for jules_approve_plan
            before it changes any code.

    Returns:
        The session id and its web link (https://jules.google.com/session/<id>),
        or an error such as an unknown repository.
    
jules_statusA

Check on a Jules session started with jules_start: its state, its most recent activities (plan, progress messages, questions, completion) and the pull request it opened, if any. Read-only and free; call it again to poll a session that is still working.

    Use jules_sessions to find a session id, jules_approve_plan when the state
    says it awaits plan approval, and jules_message to answer a question.

    Args:
        session: Session id from jules_start or jules_sessions, or its full
            "sessions/<id>" name or web link.
        activities: How many of the latest activities to show (default 15).

    Returns:
        The session title and state, any pull request links, and one line per
        recent activity with its time, kind and text.
    
jules_sessionsA

List the user's most recent Jules sessions, newest first, to find a session id or see which tasks are still running. Read-only and free.

    Pass an id from the result to jules_status for details, to
    jules_approve_plan or to jules_message.

    Args:
        limit: How many sessions to list (default 10).

    Returns:
        One line per session: id, state (as Jules reports it, for example in
        progress, awaiting plan approval or completed) and title, or
        "No sessions yet."
    
jules_approve_planA

Approve the plan Jules proposed, so it starts writing code. Only for a session started with jules_start(require_plan_approval=True) whose state is awaiting plan approval; read the plan with jules_status first and show it to the user. To change the plan instead, send feedback with jules_message.

    Args:
        session: Session id from jules_start or jules_sessions.

    Returns:
        A confirmation that Jules is working, or an error such as the session
        not waiting for approval. Follow progress with jules_status.
    
jules_messageA

Send a message to Jules inside an existing session: answer a question it asked, give feedback on its plan or code, or ask for a change. Jules replies asynchronously, so read the answer later with jules_status. To give Jules a new task, use jules_start instead.

    Args:
        session: Session id from jules_start or jules_sessions.
        message: What to tell Jules, in plain language.

    Returns:
        A confirmation that the message was sent, or an error.
    
google_pro_benefitsA

List everything a Google AI Pro plan includes and which tool of this server reaches each part, or why a part cannot be reached (mobile-only, US-only, purchases). Read-only, free and offline. Call it first when the user asks what their plan can do or which tool to use.

    The browser-based tools it names (Flow, Gemini app, Notebooks, AI Mode)
    appear only when the server runs with GEMINI_PRO_ENABLE_BROWSER=1.

    Returns:
        One entry per benefit: what it is, where it lives, and how to use it here.
    

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 17 tools

Disambiguation4/5

The three main Gemini tools are explicitly differentiated (gemini_ask = read-only local reasoning, gemini_research = web with citations, gemini_code = edits a local folder), and the Jules lifecycle tools each map to one step (start/status/message/approve_plan/sessions/sources). The main residual overlap is that gemini_ask is also described as able to search the web, blurring it slightly against gemini_research, and video_generate references browser-only tools (flow_make_video, flow_collect) that are not in this set, which can send an agent looking for tools that aren't there.

Naming Consistency4/5

Names are all snake_case and organized into clear namespaces (gemini_*, jules_*, video_*, image_generate, google_pro_benefits), so grouping is predictable. The only wrinkle is the mixed word order: gemini_ask/gemini_code/jules_start are prefix_action while image_generate/video_stitch are action-noun, plus video_check is not an action verb—minor inconsistency but still readable.

Tool Count4/5

Seventeen tools is on the heavy side but the server spans several genuinely different capabilities (chat/research, local code editing, image gen, video gen/edit/stitch, Jules cloud sessions, plus model/agent discovery), and most tools reflect a real lifecycle step. A few, like google_pro_benefits and the separate video_check, could arguably be folded in, but none feels gratuitous.

Completeness4/5

Async workflows are covered end to end: video_generate/video_edit return ids, video_check fetches them, video_stitch joins clips, and Jules has sessions/sources → start → status → message → approve_plan. Gaps are minor and workaroundable: no tool to list or clean up artifacts already in GEMINI_PRO_OUTPUT_DIR, no image_check (image generation is synchronous, so acceptable), and the advertised Flow/browser tools are absent unless the server is started with GEMINI_PRO_ENABLE_BROWSER=1.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues