
Gemini Mcp
Plugs Claude directly into Google's Gemini image generation API, specifically the Nano Banana and Nano Banana Pro models. You get five tools over stdio: list available models, generate images from text prompts, edit or compose existing images with instructions, batch generate consistent image sets from a master prompt, and run multi-turn refinement sessions via the Interactions API. Images land on disk by default with paths returned, or you can pull them inline as base64. Requires a Gemini API key and runs through the generativelanguage.googleapis.com v1beta endpoint. Reach for this when you need Claude to generate or iterate on images without leaving the MCP context.
- tools
- 21
- auth
- Secret needed
- transport
- STDIO
- env vars
- 11
- last updated
- Nov 7, 2026
Tools
21 toolsPublic tool metadata for what this MCP can expose to an agent.
gemini_list_modelsList available Gemini image models and the current default
List available Gemini image models and the current default
No parameter schema in public metadata yet.
gemini_image_generateGenerate image(s) from a text prompt
Generate image(s) from a text prompt
No parameter schema in public metadata yet.
gemini_image_editOne-off edits or multi-image composition with a text instruction (for a series of edits, use `gemini_interact`)
One-off edits or multi-image composition with a text instruction (for a series of edits, use `gemini_interact`)
No parameter schema in public metadata yet.
gemini_image_setGenerate a master image plus N consistent images referencing it
Generate a master image plus N consistent images referencing it
No parameter schema in public metadata yet.
gemini_interactPreferred tool for iterative refinement: multi-turn generation/editing via the Interactions API — chain the returned `interaction_id` via `previous_interaction_id` (or `continue_last: true`)
Preferred tool for iterative refinement: multi-turn generation/editing via the Interactions API — chain the returned `interaction_id` via `previous_interaction_id` (or `continue_last: true`)
No parameter schema in public metadata yet.
gemini_video_generateGenerate a short video (text→video, image→video, two-still interpolation, `edit` or `extend`) via the Gemini omni model; `resolution` 360p/720p/1080p/4k is the cost lever; written to disk as MP4
Generate a short video (text→video, image→video, two-still interpolation, `edit` or `extend`) via the Gemini omni model; `resolution` 360p/720p/1080p/4k is the cost lever; written to disk as MP4
No parameter schema in public metadata yet.
gemini_music_generateGenerate music from a text prompt via a Lyria model — `lyria-3-clip-preview` (30s, default), `lyria-3.5` (full-length, vocals) or `lyria-3-pro-preview`; single-turn; written to disk as MP3
Generate music from a text prompt via a Lyria model — `lyria-3-clip-preview` (30s, default), `lyria-3.5` (full-length, vocals) or `lyria-3-pro-preview`; single-turn; written to disk as MP3
No parameter schema in public metadata yet.
gemini_get_resultFetch an async generation started with `async: true` by its `job_id` (status `running` → `done` result). Lets a long generation outlive a host's `tools/call` timeout
Fetch an async generation started with `async: true` by its `job_id` (status `running` → `done` result). Lets a long generation outlive a host's `tools/call` timeout
No parameter schema in public metadata yet.
gemini_token_usageToken usage and an estimated USD cost for this session so far. Call it before and after a workflow and subtract to attribute that workflow's spend.
Token usage and an estimated USD cost for this session so far. Call it before and after a workflow and subtract to attribute that workflow's spend.
No parameter schema in public metadata yet.
gemini_upload_fileUpload an image (or video/audio) to the Gemini Files API once — from a `url`, `data_base64`, or a local `path` — and get a reusable `files/<id>` reference
Upload an image (or video/audio) to the Gemini Files API once — from a `url`, `data_base64`, or a local `path` — and get a reusable `files/<id>` reference
No parameter schema in public metadata yet.
gemini_list_filesList the files currently uploaded under this API key, with MIME types and expiry times
List the files currently uploaded under this API key, with MIME types and expiry times
No parameter schema in public metadata yet.
gemini_delete_fileDelete an uploaded file before its ~48h expiry (confirmed first — see Confirmations)
Delete an uploaded file before its ~48h expiry (confirmed first — see Confirmations)
No parameter schema in public metadata yet.
gemini_sign_media(hosted deployments only) Mint a fresh signed URL for generated media from its `r2_key` — an expired link is not a dead end
(hosted deployments only) Mint a fresh signed URL for generated media from its `r2_key` — an expired link is not a dead end
No parameter schema in public metadata yet.
gemini_view_media(hosted deployments only) Return a generated image as an inline image block from its `r2_key`, so a model can actually see what it made before refining it
(hosted deployments only) Return a generated image as an inline image block from its `r2_key`, so a model can actually see what it made before refining it
No parameter schema in public metadata yet.
gemini_get_upload_url(hosted deployments only) Mint a short-lived signed PUT URL so a shell can upload a reference image with no auth header; the PUT returns an `r2_key` usable in `images_r2_keys`, `gemini_save_character`, or `gemini_upload_file`
(hosted deployments only) Mint a short-lived signed PUT URL so a shell can upload a reference image with no auth header; the PUT returns an `r2_key` usable in `images_r2_keys`, `gemini_save_character`, or `gemini_upload_file`
No parameter schema in public metadata yet.
gemini_save_character(hosted deployments only) Persistent per-account character library: save a reference image + description under a name, then pass `characters: ["name"]` on generation tools. No expiry
(hosted deployments only) Persistent per-account character library: save a reference image + description under a name, then pass `characters: ["name"]` on generation tools. No expiry
No parameter schema in public metadata yet.
gemini_list_characters(hosted deployments only) Persistent per-account character library: list saved characters. No expiry
(hosted deployments only) Persistent per-account character library: list saved characters. No expiry
No parameter schema in public metadata yet.
gemini_delete_character(hosted deployments only) Persistent per-account character library: delete a saved character. No expiry
(hosted deployments only) Persistent per-account character library: delete a saved character. No expiry
No parameter schema in public metadata yet.
gemini_save_style(hosted deployments only) Persistent per-account style presets: save a reusable prompt fragment (optionally with a reference image), applied by passing `style: "name"` on generation tools. No expiry
(hosted deployments only) Persistent per-account style presets: save a reusable prompt fragment (optionally with a reference image), applied by passing `style: "name"` on generation tools. No expiry
No parameter schema in public metadata yet.
gemini_list_styles(hosted deployments only) Persistent per-account style presets: list saved styles. No expiry
(hosted deployments only) Persistent per-account style presets: list saved styles. No expiry
No parameter schema in public metadata yet.
gemini_delete_style(hosted deployments only) Persistent per-account style presets: delete a saved style. No expiry
(hosted deployments only) Persistent per-account style presets: delete a saved style. No expiry
No parameter schema in public metadata yet.
Sponsors
Configuration
GEMINI_API_KEYsecretYour Google Gemini API key (aistudio.google.com/apikey)
GEMINI_IMAGE_MODELOverride the default image model (default: gemini-nano-banana-2.1)
GEMINI_OUTPUT_DIRDefault directory for generated images (default: ~/Downloads/gemini-mcp). When set, a per-call output_dir must be inside it.
GEMINI_INPUT_DIRDirectory to resolve bare input-image filenames against
GEMINI_UPLOAD_DIRRestrict local-file uploads to the Gemini Files API to these directories (path.delimiter-separated; unset = unrestricted)
GEMINI_REFERENCE_DIRRestrict local reference images (images / image paths sent to Gemini) to these directories (path.delimiter-separated), plus GEMINI_OUTPUT_DIR. Unset: GEMINI_UPLOAD_DIR applies; if that is unset too, unrestricted locally, and $MCP_DATA_DIR/uploads when MCP_DATA_DIR is set (hosted)
GEMINI_TIMEOUT_MSUpstream request timeout in ms (default: 60000, or 120000 for image_size: "4K"); each generation tool also takes a per-call timeout_ms
GEMINI_HEARTBEAT_MSProgress-notification cadence in ms while a generation runs (default: 10000; 0 disables) — keeps MCP hosts that reset their timeout on progress from timing out long generations
GEMINI_CHAIN_RETRY_MSHow long to wait out interactions-store lag when a chained call 404s (default: 120000; 0 disables retrying)
GEMINI_DEBUGWhen set, emit heartbeat diagnostics to stderr. Off by default.
GEMINI_RATE_CARDOverride/extend the shipped USD-per-1M-token rates used by gemini_token_usage's cost estimate, e.g. {"gemini-3-pro-image":{"input":2,"text_output":12,"image_output":120}}. Malformed JSON is ignored (a bad card must not fail generations).
Readme
gemini-mcp
MCP server for Google Gemini media generation. Exposes thirteen tools to Claude over stdio: list available models, generate/edit/compose images, generate a consistent set of images from a master prompt, multi-turn image refinement (Interactions API), video generation (omni), music generation (Lyria), an async result poll for long generations, and Files API upload/list/delete for reusable image references. Output is written to disk by default (path returned) or returned inline as base64. Built on the Gemini v1beta API (generativelanguage.googleapis.com) using the Nano Banana / Nano Banana Pro (images), omni (video), and Lyria (music) model families.
Developed and maintained by AI (Claude Code).
Environment Variables
Details
- Repository
- github.com/chrischall/gemini-mcp
- Category
- AI & LLM Tools
- Package
@chrischall/gemini-mcp- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active
More from chrischall
- Hellofresh Mcp
- Homes Mcp
- Signupgenius Mcp
- Zillow Mcp
- Musicbrainz Mcp
- Skylight Mcp23
- Ofw Mcp15
- Redfin Mcp3
- Zola Mcp3
- Infinitecampus Mcp5
- Resy Mcp2
- Creditkarma Mcp1
- Gogcli Mcp Docs1
- Gogcli Mcp Sheets1
- Onehome Mcp1
- Setlist Mcp1
- Splitwise Mcp1
- Artsonia Mcp1
- Canvas Parent Mcp1
- Gogcli Mcp Classroom1
- Gogcli Mcp Drive1
- Gogcli Mcp Slides1
- Honeybook Mcp1
- Opentable Mcp1