Skip to main content
Glama
ion-aluminium

Nano Banana MCP Server (CLIProxyAPI Edition)

README.mdβ€’15.9 kB
# Nano Banana MCP Server (CLIProxyAPI Edition) 🍌 A production-ready **Model Context Protocol (MCP)** server that provides AI-powered image generation capabilities through Google's **Gemini** models with intelligent model selection. > Downstream fork of `zhongweili/nanobanana-mcp-server`: https://github.com/zhongweili/nanobanana-mcp-server > CLIProxyAPI docs: https://help.router-for.me/cn/introduction/what-is-cliproxyapi.html > Updates in this fork: **CLIProxyAPI** backend support (Gemini-compatible proxy), updated docs/config examples. ## ⭐ NEW: Gemini 3 Pro Image Support! πŸš€ Now featuring **Nano Banana Pro** - Google's latest and most powerful image generation model: - πŸ† **Professional 4K Quality**: Generate stunning images up to 3840px resolution - 🌐 **Google Search Grounding**: Access real-world knowledge for factually accurate images - 🧠 **Advanced Reasoning**: Configurable thinking levels for complex compositions - 🎯 **Superior Text Rendering**: Crystal-clear text in images at high resolution - 🎨 **Enhanced Understanding**: Better context comprehension for complex prompts Upstream MCP registry listing: <a href="https://glama.ai/mcp/servers/@zhongweili/nanobanana-mcp-server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@zhongweili/nanobanana-mcp-server/badge" alt="nanobanana-mcp-server MCP server" /> </a> ## ✨ Features - 🎨 **Multi-Model AI Image Generation**: Intelligent selection between Flash (speed) and Pro (quality) models - ⚑ **Gemini 2.5 Flash Image**: Fast generation (1024px) for rapid prototyping - πŸ† **Gemini 3 Pro Image**: High-quality up to 4K with Google Search grounding - πŸ€– **Smart Model Selection**: Automatically chooses optimal model based on your prompt - πŸ“ **Aspect Ratio Control** ⭐ NEW: Specify output dimensions (1:1, 16:9, 9:16, 21:9, and more) - πŸ“‹ **Smart Templates**: Pre-built prompt templates for photography, design, and editing - πŸ“ **File Management**: Upload and manage files via Gemini Files API - πŸ” **Resource Discovery**: Browse templates and file metadata through MCP resources - πŸ›‘οΈ **Production Ready**: Comprehensive error handling, logging, and validation - ⚑ **High Performance**: Optimized architecture with intelligent caching ## πŸš€ Quick Start ### Prerequisites 1. **One of the following**: - **Google Gemini API Key** - [Get one free here](https://makersuite.google.com/app/apikey) - **CLIProxyAPI** running locally (Gemini-compatible proxy) 2. **Python 3.11+** (for development only) ### Installation Option 1: Upstream MCP Registry (Gemini direct only) The upstream package is listed in the [Model Context Protocol Registry](https://registry.modelcontextprotocol.io/?q=nanobanana). mcp-name: io.github.zhongweili/nanobanana-mcp-server Option 2: From Source (this fork, recommended for CLIProxyAPI) ```bash git clone https://github.com/ion-aluminium/nanobanana-mcp-cliproxyapi.git cd nanobanana-mcp-cliproxyapi uv sync ``` Option 3: Install from Git (this fork) ```bash pip install git+https://github.com/ion-aluminium/nanobanana-mcp-cliproxyapi.git ``` ## πŸ”§ Configuration ### Authentication Methods Nano Banana supports these authentication options: 1. **API Key** (`api_key`): Uses `GEMINI_API_KEY`. Best for local development and simple deployments. 2. **Vertex AI ADC** (`vertex_ai`): Uses Google Cloud Application Default Credentials. Best for production on Google Cloud (Cloud Run, GKE, GCE). 3. **Automatic** (`auto`): Defaults to API Key if present, otherwise tries Vertex AI. 4. **CLIProxyAPI**: Set `CLIPROXY_BASE_URL` to route requests through a local Gemini-compatible proxy (bypasses Google SDK auth). #### 1. API Key Authentication (Default) Set `GEMINI_API_KEY` environment variable. #### 2. Vertex AI Authentication (Google Cloud) Required environment variables: - `NANOBANANA_AUTH_METHOD=vertex_ai` (or `auto`) - `GCP_PROJECT_ID=your-project-id` - `GCP_REGION=us-central1` (default) **Prerequisites**: - Enable Vertex AI API: `gcloud services enable aiplatform.googleapis.com` - Grant IAM Role: `roles/aiplatform.user` to the service account. ### Claude Desktop #### Option 1: CLIProxyAPI (this fork) Add to your `claude_desktop_config.json`: ```json { "mcpServers": { "nanobanana": { "command": "python3", "args": ["-m", "nanobanana_mcp_server.server"], "env": { "CLIPROXY_BASE_URL": "http://127.0.0.1:8318", "CLIPROXY_API_KEY": "sk-your-cli-proxy-key", "NANOBANANA_MODEL": "pro", "NO_PROXY": "127.0.0.1,localhost" } } } } ``` > If you are running from source, you can use `uv run python -m nanobanana_mcp_server.server` > and set `cwd` to your local repository. #### Option 2: Upstream PyPI (Gemini direct only) ```json { "mcpServers": { "nanobanana": { "command": "uvx", "args": ["nanobanana-mcp-server@latest"], "env": { "GEMINI_API_KEY": "your-gemini-api-key-here" } } } } ``` #### Option 3: Using Vertex AI (ADC) (Upstream only) To authenticate with Google Cloud Application Default Credentials (instead of an API Key): ```json { "mcpServers": { "nanobanana-adc": { "command": "uvx", "args": ["nanobanana-mcp-server@latest"], "env": { "NANOBANANA_AUTH_METHOD": "vertex_ai", "GCP_PROJECT_ID": "your-project-id", "GCP_REGION": "us-central1" } } } } ``` **Configuration file locations:** - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` ### Claude Code (VS Code Extension) Install and configure in VS Code: 1. Install the Claude Code extension 2. Open Command Palette (`Cmd/Ctrl + Shift + P`) 3. Run "Claude Code: Add MCP Server" 4. Configure: ```json { "name": "nanobanana", "command": "python3", "args": ["-m", "nanobanana_mcp_server.server"], "env": { "CLIPROXY_BASE_URL": "http://127.0.0.1:8318", "CLIPROXY_API_KEY": "sk-your-cli-proxy-key", "NANOBANANA_MODEL": "pro", "NO_PROXY": "127.0.0.1,localhost" } } ``` > Upstream PyPI (Gemini direct) uses `uvx nanobanana-mcp-server@latest` and `GEMINI_API_KEY`. ### Cursor Add to Cursor's MCP configuration: ```json { "mcpServers": { "nanobanana": { "command": "python3", "args": ["-m", "nanobanana_mcp_server.server"], "env": { "CLIPROXY_BASE_URL": "http://127.0.0.1:8318", "CLIPROXY_API_KEY": "sk-your-cli-proxy-key", "NANOBANANA_MODEL": "pro", "NO_PROXY": "127.0.0.1,localhost" } } } } ``` > Upstream PyPI (Gemini direct) uses `uvx nanobanana-mcp-server@latest` and `GEMINI_API_KEY`. ### Continue.dev (VS Code/JetBrains) Add to your `config.json`: ```json { "mcpServers": [ { "name": "nanobanana", "command": "python3", "args": ["-m", "nanobanana_mcp_server.server"], "env": { "CLIPROXY_BASE_URL": "http://127.0.0.1:8318", "CLIPROXY_API_KEY": "sk-your-cli-proxy-key", "NANOBANANA_MODEL": "pro", "NO_PROXY": "127.0.0.1,localhost" } } ] } ``` > Upstream PyPI (Gemini direct) uses `uvx nanobanana-mcp-server@latest` and `GEMINI_API_KEY`. ### Open WebUI Configure in Open WebUI settings: ```json { "mcp_servers": { "nanobanana": { "command": ["python3", "-m", "nanobanana_mcp_server.server"], "env": { "CLIPROXY_BASE_URL": "http://127.0.0.1:8318", "CLIPROXY_API_KEY": "sk-your-cli-proxy-key", "NANOBANANA_MODEL": "pro", "NO_PROXY": "127.0.0.1,localhost" } } } } ``` > Upstream PyPI (Gemini direct) uses `["uvx", "nanobanana-mcp-server@latest"]` and `GEMINI_API_KEY`. ### Gemini CLI / Generic MCP Client ```bash # CLIProxyAPI (this fork) export CLIPROXY_BASE_URL="http://127.0.0.1:8318" export CLIPROXY_API_KEY="sk-your-cli-proxy-key" export NANOBANANA_MODEL="pro" export NO_PROXY="127.0.0.1,localhost" python3 -m nanobanana_mcp_server.server # Upstream PyPI (Gemini direct) export GEMINI_API_KEY="your-gemini-api-key-here" uvx nanobanana-mcp-server@latest ``` ### CLIProxyAPI Mode (Gemini-Compatible Proxy) ⭐ NEW Set the following environment variables and run as usual: ```bash export CLIPROXY_BASE_URL="http://127.0.0.1:8318" export CLIPROXY_API_KEY="sk-your-cli-proxy-key" export NANOBANANA_MODEL="pro" export NO_PROXY="127.0.0.1,localhost" uv run python -m nanobanana_mcp_server.server ``` See the full guide in [docs/CLIPROXYAPI.md](docs/CLIPROXYAPI.md). ## πŸ€– Model Selection Nano Banana supports two Gemini models with intelligent automatic selection: ### πŸ† Pro Model - Nano Banana Pro (Gemini 3 Pro Image) ⭐ NEW! **Google's latest and most advanced image generation model** - **Quality**: Professional-grade, production-ready - **Resolution**: Up to 4K (3840px) - highest available - **Speed**: ~5-8 seconds per image - **Special Features**: - 🌐 **Google Search Grounding**: Leverages real-world knowledge for accurate, contextual images - 🧠 **Advanced Reasoning**: Configurable thinking levels (LOW/HIGH) for complex compositions - πŸ“ **Media Resolution Control**: Fine-tune vision processing detail (LOW/MEDIUM/HIGH/AUTO) - πŸ“ **Superior Text Rendering**: Exceptional clarity for text-in-image generation - 🎨 **Enhanced Context Understanding**: Better interpretation of complex, narrative prompts - **Best for**: Production assets, marketing materials, professional photography, high-fidelity outputs, images requiring text, factual accuracy - **Cost**: Higher per image (premium quality) ### ⚑ Flash Model (Gemini 2.5 Flash Image) **Fast, reliable model for rapid iteration** - **Speed**: Very fast (2-3 seconds) - **Resolution**: Up to 1024px - **Quality**: High quality for everyday use - **Best for**: Rapid prototyping, iterations, high-volume generation, drafts, sketches - **Cost**: Lower per image ### πŸ€– Automatic Selection (Recommended) By default, the server uses **AUTO** mode which intelligently analyzes your prompt and requirements: **Pro Model Selected When**: - Quality keywords detected: "4K", "professional", "production", "high-res", "HD" - High resolution requested: `resolution="4k"` or `resolution="high"` - Google Search grounding enabled: `enable_grounding=True` - High thinking level requested: `thinking_level="HIGH"` - Multi-image conditioning with multiple input images **Flash Model Selected When**: - Speed keywords detected: "quick", "draft", "sketch", "rapid" - High-volume batch generation: `n > 2` - Standard or lower resolution requested - No special Pro features required ### Usage Examples ```python # Automatic selection (recommended) "Generate a professional 4K product photo" # β†’ Pro model (quality keywords + 4K) "Quick sketch of a cat" # β†’ Flash model (speed keyword) "Create a diagram with clear text labels" # β†’ Pro model (text rendering) "Draft mockup for website hero section" # β†’ Flash model (draft keyword) # Explicit model selection generate_image( prompt="A scenic landscape", model_tier="flash" # Force Flash model for speed ) # Leverage Nano Banana Pro features generate_image( prompt="Professional product photo of vintage camera on wooden desk", model_tier="pro", # Use Pro model resolution="4k", # 4K resolution (Pro-only) thinking_level="HIGH", # Enhanced reasoning enable_grounding=True, # Use Google Search for accuracy media_resolution="HIGH" # High-detail vision processing ) # Pro model for high-quality text rendering generate_image( prompt="Infographic showing 2024 market statistics with clear labels", model_tier="pro", # Pro excels at text rendering resolution="4k" # Maximum clarity for text ) # Control aspect ratio for different formats ⭐ NEW! generate_image( prompt="Cinematic landscape at sunset", aspect_ratio="21:9" # Ultra-wide cinematic format ) generate_image( prompt="Instagram post about coffee", aspect_ratio="1:1" # Square format for social media ) generate_image( prompt="YouTube thumbnail design", aspect_ratio="16:9" # Standard video format ) generate_image( prompt="Mobile wallpaper of mountain vista", aspect_ratio="9:16" # Portrait format for phones ) ``` ### πŸ“ Aspect Ratio Control ⭐ NEW! Control the output image dimensions with the `aspect_ratio` parameter: **Supported Aspect Ratios**: - `1:1` - Square (Instagram, profile pictures) - `4:3` - Classic photo format - `3:4` - Portrait orientation - `16:9` - Widescreen (YouTube thumbnails, presentations) - `9:16` - Mobile portrait (phone wallpapers, stories) - `21:9` - Ultra-wide cinematic - `2:3`, `3:2`, `4:5`, `5:4` - Various photo formats ```python # Examples for different use cases generate_image( prompt="Product showcase for e-commerce", aspect_ratio="3:4", # Portrait format, good for product pages model_tier="pro" ) generate_image( prompt="Social media banner for Facebook", aspect_ratio="16:9" # Landscape banner format ) ``` **Note**: Aspect ratio works with both Flash and Pro models. For best results with specific aspect ratios at high resolution, use the Pro model with `resolution="4k"`. ## βš™οΈ Environment Variables Configuration options: ```bash # Authentication (Required) # Method 1: API Key GEMINI_API_KEY=your-gemini-api-key-here # Method 2: Vertex AI (Google Cloud) NANOBANANA_AUTH_METHOD=vertex_ai GCP_PROJECT_ID=your-project-id GCP_REGION=us-central1 # Method 3: CLIProxyAPI (local OAuth/proxy) # When CLIPROXY_BASE_URL is set, the server uses CLIProxyAPI instead of Google SDK. CLIPROXY_BASE_URL=http://127.0.0.1:8318 # Provide API key directly or point to CLIProxyAPI config.yaml CLIPROXY_API_KEY=sk-your-cli-proxy-key # or: CLIPROXY_CONFIG=/root/cliproxyapi/config.yaml # Model Selection (optional) NANOBANANA_MODEL=auto # Options: flash, pro, auto (default: auto) # Optional IMAGE_OUTPUT_DIR=/path/to/image/directory # Default: ~/nanobanana-images LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR LOG_FORMAT=standard # standard, json, detailed ``` **CLIProxyAPI mode notes** - Uses CLIProxyAPI's Gemini-compatible `/v1beta/models/{model}:generateContent`. - Gemini Files API features are not available (file_id upload / retrieval disabled). - Local file editing (`input_image_path_*`) still works. ## πŸ› Troubleshooting ### Common Issues **"GEMINI_API_KEY not set"** - Add your API key to the MCP server configuration in your client - Get a free API key at [Google AI Studio](https://makersuite.google.com/app/apikey) **"Server failed to start"** - Ensure you're using the latest version: `uvx nanobanana-mcp-server@latest` - Check that your client supports MCP (Claude Desktop 0.10.0+) **"Permission denied" errors** - The server creates images in `~/nanobanana-images` by default - Ensure write permissions to your home directory ### Development Setup For local development: ```bash # Clone repository git clone https://github.com/ion-aluminium/nanobanana-mcp-cliproxyapi.git cd nanobanana-mcp-cliproxyapi # Install with uv uv sync # Set environment export GEMINI_API_KEY=your-api-key-here # Run locally uv run python -m nanobanana_mcp_server.server ``` ## πŸ“„ License MIT License - see [LICENSE](LICENSE) for details. ## πŸ†˜ Support - **Issues**: [GitHub Issues](https://github.com/ion-aluminium/nanobanana-mcp-cliproxyapi/issues) - **Discussions**: [GitHub Discussions](https://github.com/ion-aluminium/nanobanana-mcp-cliproxyapi/discussions) - **Upstream**: [zhongweili/nanobanana-mcp-server](https://github.com/zhongweili/nanobanana-mcp-server)

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/ion-aluminium/nanobanana-mcp-cliproxyapi'

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