gemini-pro-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AGY_PATH | No | Path to the Antigravity CLI. | agy on PATH |
| JULES_API_KEY | No | Jules API key from jules.google.com/settings, for the jules_* tools. | |
| GEMINI_API_KEY | No | Gemini 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_FILE | No | Optional file with any of the above settings. | ~/.config/gemini-pro-mcp/.env |
| GEMINI_PRO_AGY_MODEL | No | Default model for the gemini_* tools. | agy's default |
| GEMINI_PRO_OUTPUT_DIR | No | Where videos and images are saved. | ~/gemini-pro-output |
| GEMINI_PRO_AGY_TIMEOUT | No | Seconds per Antigravity request. | 600 |
| GEMINI_PRO_AUTO_APPROVE | No | Set to 1 to pre-approve spending: no confirmation questions, Flow requests are approved automatically. | off |
| GEMINI_PRO_FLOW_PROJECT | No | Flow project id to work in. | open or most recent project |
| GEMINI_PRO_ENABLE_BROWSER | No | Set 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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). |
| 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. |
| 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 |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
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.
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.
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.
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.