nanobanana-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GEMINI_API_KEY | No | Gemini Developer API key, from https://aistudio.google.com/apikey. Simplest auth option. | |
| GOOGLE_API_KEY | No | Accepted as a fallback for either key-based auth mode (matches the underlying Google SDK's conventions). | |
| VERTEX_API_KEY | No | Vertex AI Express Mode API key — talks to Vertex AI without a full GCP project. Exists separately from GEMINI_API_KEY so both can be configured side by side without one shadowing the other. | |
| GOOGLE_CLOUD_PROJECT | No | Google Cloud project ID, required for Vertex AI with Application Default Credentials (ADC). | |
| NANOBANANA_AUTH_MODE | No | Force a specific credential mode so misconfiguration fails with a precise error instead of silently falling through to another mode. Otherwise the mode is auto-detected from the environment. | |
| NANOBANANA_LOG_LEVEL | No | Log level (e.g. "debug") for extra detail such as cache hits. All logs go to stderr only. | |
| GOOGLE_CLOUD_LOCATION | No | Google Cloud location/region, required for Vertex AI with Application Default Credentials (ADC). | |
| NANOBANANA_OUTPUT_DIR | No | Directory where every generated image is saved automatically. By default images are returned inline (base64) and not written to disk. | |
| GOOGLE_GENAI_USE_VERTEXAI | No | Set to "true" to use Vertex AI / Gemini Enterprise Agent Platform instead of the Gemini Developer API. | |
| GOOGLE_APPLICATION_CREDENTIALS | No | Path to a service account JSON key used for ADC. Optional — credentials may instead come from `gcloud auth application-default login` or an attached service account on GCP compute. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_imageA | Generate an image from a text prompt using Google's Gemini image models (the Nano Banana family). By default, automatically picks Nano Banana 2 (fast) or Nano Banana Pro (deeper reasoning) based on the prompt's complexity — pass an explicit |
| edit_imageB | Edit, inpaint, restyle, or compose one or more reference images using Gemini's Nano Banana models. Accepts local file paths or inline base64 image data. By default, automatically picks Nano Banana 2 or Nano Banana Pro based on prompt complexity and reference-image count. |
| list_modelsA | Returns the three supported Gemini image models, their aliases, and capabilities (max resolution, thinking_level support, search grounding, reference-image limits, whether automatic model selection can pick them). |
| auth_statusA | Reports which credential source nanobanana-mcp is using (Gemini API key, Vertex AI Express Mode API key, or Vertex AI / Gemini Enterprise Agent Platform ADC) without revealing secrets, plus basic runtime info. Useful for debugging setup. |
| list_templatesA | Lists nanobanana-mcp's curated prompt templates for photography, design, and editing, with the fields each one accepts. Pass a template id and its fields to render_template to get a ready-to-use prompt, or call the same templates through the MCP prompts/list API. |
| render_templateA | Fills a curated photography/design/editing template with your values and returns a ready-to-use prompt. Feed the result straight into generate_image's or edit_image's |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| photo_realistic_scene | [photography] A richly detailed photorealistic shot, following Gemini's photography prompting template. |
| product_mockup | [photography] A clean, professional studio product shot for ecommerce, advertising, or branding. |
| logo_design | [design] A modern logo with specific rendered text — Nano Banana's strong text rendering does the heavy lifting. |
| sticker_illustration | [design] A bold, clean die-cut-style sticker illustration. |
| infographic | [design] An explanatory infographic that turns a topic into an easy-to-follow visual. |
| minimalist_negative_space | [design] A minimal composition with room for overlaid text — good for website heroes, slides, and covers. |
| add_remove_element | [editing] Edit a provided image by adding, removing, or changing one element while matching its style. |
| inpaint_replace | [editing] Change exactly one element of a provided image (a semantic mask) while leaving everything else untouched. |
| style_transfer | [editing] Recreate a provided photo's content in a different artistic style while preserving composition. |
| combine_images | [editing] Composite elements from several reference images into one new scene. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| template-catalog | All curated photography/design/editing prompt templates, as JSON. |
| template-photo_realistic_scene | A richly detailed photorealistic shot, following Gemini's photography prompting template. |
| template-product_mockup | A clean, professional studio product shot for ecommerce, advertising, or branding. |
| template-logo_design | A modern logo with specific rendered text — Nano Banana's strong text rendering does the heavy lifting. |
| template-sticker_illustration | A bold, clean die-cut-style sticker illustration. |
| template-infographic | An explanatory infographic that turns a topic into an easy-to-follow visual. |
| template-minimalist_negative_space | A minimal composition with room for overlaid text — good for website heroes, slides, and covers. |
| template-add_remove_element | Edit a provided image by adding, removing, or changing one element while matching its style. |
| template-inpaint_replace | Change exactly one element of a provided image (a semantic mask) while leaving everything else untouched. |
| template-style_transfer | Recreate a provided photo's content in a different artistic style while preserving composition. |
| template-combine_images | Composite elements from several reference images into one new scene. |
| generated-images-recent | Metadata for images nanobanana-mcp has saved to disk this session (most recent first). |
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: generate vs edit operate on different inputs/outputs, list_models and list_templates target different resource types, render_template produces a prompt while generate_image/edit_image consume it, and auth_status is uniquely diagnostic. No pair of tools appears to do the same thing.
Five of six names follow a readable verb_noun snake_case pattern (generate_image, edit_image, list_models, list_templates, render_template). auth_status is a minor deviation as a noun_noun, but remains clear and consistent in casing style.
Six tools is well-scoped for an image generation/editing server with model selection, templates, and auth diagnostics. Each tool earns its place, and the set avoids both thinness and bloat.
The core lifecycle is covered: generating, editing, listing models, listing/rendering templates, and checking auth. Minor gaps include no explicit tool for history, batch operations, or inspecting saved outputs, but these are workable around or outside the server's core scope.