Skip to main content
Glama
README.md6.92 kB
# Nano Banana MCP Server An MCP (Model Context Protocol) server for Google's **Nano Banana Pro** (Gemini 3 Pro Image) and **Nano Banana** (Gemini 2.5 Flash Image) AI image generation models. ## Features - 🎨 **Text-to-Image Generation** - Create images from natural language descriptions - ✏️ **Image Editing** - Modify existing images with text prompts - 🖼️ **Multi-Image Composition** - Combine up to 14 reference images - 📐 **Flexible Aspect Ratios** - 10 aspect ratio options (1:1, 16:9, 9:16, etc.) - 🔍 **High Resolution** - Up to 4K output with Nano Banana Pro - 🔤 **Text Rendering** - Generate images with accurate, legible text - 🌐 **Google Search Grounding** - Real-time information for current events/weather ## Prerequisites - Node.js 18 or higher - Google AI API key from [Google AI Studio](https://aistudio.google.com/apikey) ## Installation ### From Source ```bash # Clone or download this directory cd nanobanana-mcp-server # Install dependencies npm install # Build the TypeScript npm run build ``` ### Configuration Set your API key as an environment variable: ```bash # Linux/macOS export GEMINI_API_KEY="your-api-key-here" # Windows (PowerShell) $env:GEMINI_API_KEY="your-api-key-here" # Windows (CMD) set GEMINI_API_KEY=your-api-key-here ``` ## Usage ### As stdio Server (for Claude Desktop, etc.) ```bash npm start ``` Or directly: ```bash node dist/index.js ``` ### As HTTP Server ```bash TRANSPORT=http PORT=3000 npm start ``` The server will listen at `http://localhost:3000/mcp`. ### Claude Desktop Configuration Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS): ```json { "mcpServers": { "nanobanana": { "command": "node", "args": ["/path/to/nanobanana-mcp-server/dist/index.js"], "env": { "GEMINI_API_KEY": "your-api-key-here" } } } } ``` ## Available Tools ### `nanobanana_generate_image` Generate images from text descriptions. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | `prompt` | string | Yes | Text description of the image | | `model` | string | No | Model ID (default: `gemini-3-pro-image-preview`) | | `aspect_ratio` | string | No | Aspect ratio (e.g., `1:1`, `16:9`) | | `resolution` | string | No | Resolution: `1K`, `2K`, `4K` (Pro only) | | `use_google_search` | boolean | No | Enable real-time info grounding (Pro only) | **Example:** ```json { "prompt": "A photorealistic portrait of an astronaut on Mars at sunset, dramatic lighting, 85mm lens", "model": "gemini-3-pro-image-preview", "aspect_ratio": "16:9", "resolution": "4K" } ``` ### `nanobanana_edit_image` Edit an existing image using text prompts. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | `prompt` | string | Yes | Description of the edit | | `image_base64` | string | Yes | Base64-encoded image data | | `image_mime_type` | string | Yes | MIME type (e.g., `image/png`) | | `model` | string | No | Model ID | | `aspect_ratio` | string | No | Output aspect ratio | | `resolution` | string | No | Output resolution (Pro only) | **Example:** ```json { "prompt": "Add a wizard hat to the cat", "image_base64": "<base64-image-data>", "image_mime_type": "image/png" } ``` ### `nanobanana_compose_images` Compose images using multiple reference images (Nano Banana Pro only). **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | `prompt` | string | Yes | Description of composition | | `images` | array | Yes | Array of `{base64, mime_type}` objects (max 14) | | `aspect_ratio` | string | No | Output aspect ratio | | `resolution` | string | No | Output resolution | **Example:** ```json { "prompt": "Create a group photo of these 5 people at a beach party", "images": [ {"base64": "<image1>", "mime_type": "image/jpeg"}, {"base64": "<image2>", "mime_type": "image/jpeg"} ], "aspect_ratio": "16:9", "resolution": "2K" } ``` ### `nanobanana_list_models` List available models and their capabilities. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | `response_format` | string | No | `markdown` (default) or `json` | ## Models ### Nano Banana Pro (`gemini-3-pro-image-preview`) Google's most advanced image generation model. Best for: - Professional asset production - Images with accurate text rendering - Complex compositions - High-resolution output (up to 4K) - Real-time information grounding ### Nano Banana (`gemini-2.5-flash-image`) Fast, low-latency image generation. Best for: - Quick experimentation - Batch processing - Iterative design - Cost-effective generation ## Aspect Ratios | Ratio | Use Case | |-------|----------| | `1:1` | Square, social media posts | | `16:9` | Landscape, presentations, YouTube thumbnails | | `9:16` | Portrait, mobile screens, Stories | | `4:3` | Classic photo format | | `3:2` | DSLR photo format | | `21:9` | Ultra-wide, cinematic | ## Tips for Best Results ### Prompting 1. **Be Descriptive**: Include details about style, lighting, composition, colors, and mood 2. **Use Photography Terms**: For photorealistic images, mention camera angles, lens types, lighting setups 3. **Specify Style**: "Oil painting", "3D render", "watercolor", "photorealistic", etc. 4. **Include Context**: Describe the environment, atmosphere, and mood ### Example Prompts **Photorealistic:** ``` A photorealistic close-up portrait of an elderly Japanese ceramicist with deep wrinkles and a warm smile, inspecting a glazed tea bowl. Soft golden hour light from a window. Shot with 85mm portrait lens, bokeh background. ``` **Stylized:** ``` A kawaii-style sticker of a happy red panda wearing a bamboo hat, munching on a leaf. Bold outlines, cel-shading, vibrant colors. White background. ``` **Logo:** ``` Create a modern, minimalist logo for a coffee shop called 'The Daily Grind'. Clean, bold sans-serif font. Black and white. Circular design with a clever coffee bean element. ``` ## Error Handling Common errors and solutions: | Error | Solution | |-------|----------| | "GEMINI_API_KEY is required" | Set the environment variable | | Rate limit exceeded | Wait and retry, or reduce request frequency | | Content policy violation | Modify prompt to comply with Google's policies | | Invalid image format | Use supported formats: PNG, JPEG, GIF, WebP | ## Development ```bash # Install dependencies npm install # Build TypeScript npm run build # Watch mode for development npm run dev ``` ## License MIT ## Links - [Google AI Studio](https://aistudio.google.com) - Get your API key - [Gemini API Docs](https://ai.google.dev/gemini-api/docs/image-generation) - Official documentation - [MCP Protocol](https://modelcontextprotocol.io) - Learn about MCP

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/mikeroussell/nano-banana-mcp'

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