关于 Nanobanana Mcp Server
Nanobanana Mcp Server 是一个 MCP 服务,通过 Google Gemini 系列模型提供 AI 图像生成与编辑能力。它可根据提示词在多个模型之间自动选择,适合需要快速生成或精修图片的用户。
主要功能
- 01基于 Gemini 模型的图像生成
- 02自动选择 NB2 或 Pro 模型
- 03支持多种长宽比输出
- 04可保存至指定路径或默认目录
- 05通过 Gemini Files API 管理文件
适用场景
- 01为营销或电商生成产品图
- 02在编码环境中调用生成图片的工具
- 03快速生成草图或迭代设计稿
MCP 相关
该服务通过 MCP 向客户端暴露 generate_image、edit_image 和 upload_file 等工具,并提供模板资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| n | integer | 否 | 请求的图像数量(模型可能返回较少数量)。 |
| mode | string | 否 | 操作模式:'generate' 表示生成新图像,'edit' 表示修改现有图像。如果未指定,则根据输入参数自动检测。 |
| prompt | string | 是 | 清晰、详细的图像提示词。请包含主体、构图、动作、地点、风格以及要渲染的任何文字。需要指定画布形状时,请使用 aspect_ratio 参数。 |
| file_id | any | 否 | 用作输入/编辑源的 Files API 文件 ID(例如,'files/abc123')。如果提供此参数,它将优先于 input_image_path_* 参数作为主要输入。 |
| model_tier | any | 否 | 模型档位:'flash'(旧版,1024px)、'nb2'(Flash 速度下的 4K,默认值)、'pro'(最高质量,4K)或 'auto'(智能选择)。默认值:'auto'——根据提示词自动选择 nb2 或 pro。 |
| resolution | any | 否 | 输出分辨率:'high'、'4k'、'2k'、'1k'。'nb2' 和 'pro' 模型支持 4K 和 2K。默认值:'high'。 |
| output_path | any | 否 | 生成图像的输出路径。如果是带扩展名的文件路径(例如:'/path/image.png'),则直接保存到该路径。如果是目录路径(例如:'/path/to/dir/'),则在该目录中使用默认文件名。如果为 None,则使用 IMAGE_OUTPUT_DIR 环境变量或 ~/nanobanana-images。 |
| aspect_ratio | any | 否 | 可选的输出宽高比(例如:'16:9')。标准:1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9、21:9。极端比例(仅 nb2):4:1、1:4、8:1、1:8。 |
| thinking_level | any | 否 | 推理深度提示:'low'(更快)、'high'(质量更好)。应用于 'nb2' 模型;'high' 还会使自动选择倾向于 Pro。默认值:None(自动)。 |
| negative_prompt | any | 否 | 要避免的内容(风格、物体、文字)。 |
| enable_grounding | boolean | 否 | 启用 Google Search grounding 以提高事实准确性(NB2 和 Pro 模型)。适用于现实世界中的主题。默认值:true。 |
| return_full_image | any | 否 | 在 MCP 响应中返回全分辨率图像,而非缩略图。警告:全尺寸图像可能很大(每张 4K 图像为 3-7MB)。默认值:使用 RETURN_FULL_IMAGE 环境变量;若未设置,则为 false。 |
| input_image_path_1 | any | 否 | 第一张输入图像的路径(png、jpg、jpeg、webp 或 gif)。 |
| input_image_path_2 | any | 否 | 第二张输入图像的路径(png、jpg、jpeg、webp 或 gif)。 |
| input_image_path_3 | any | 否 | 第三张输入图像的路径(png、jpg、jpeg、webp 或 gif)。 |
| system_instruction | any | 否 | 可选的系统语气/风格指导。 |
详细介绍
Nano Banana MCP 服务 🍌
一个可用于生产环境的 Model Context Protocol(MCP) 服务,通过 Google 的 Gemini 模型提供 AI 图像生成功能,并能智能选择模型。
⭐ 新功能:Nano Banana 2 — Gemini 3.1 Flash Image!🍌🚀
Nano Banana 2(gemini-3.1-flash-image-preview)现已成为默认模型,以 Flash 的速度提供 Pro 级质量:
- 🍌 Flash 速度 + 4K 画质:最高可达 3840px,延迟与 Gemini 2.5 Flash 相当
- 🌐 Google Search Grounding:借助现实世界知识生成事实准确的图像
- 🎯 主体一致性:每个场景最多可包含 5 个角色和 14 个物体
- ✍️ 精准文本渲染:在图像中清晰准确地放置文本
- 🏆 仍可使用 Gemini 3 Pro Image,获得最强推理能力
✨ 功能特性
- 🎨 多模型 AI 图像生成:提供三种 Gemini 模型,并能智能自动选择
- 🍌 Gemini 3.1 Flash Image(NB2):默认模型,以 Flash 速度生成 4K 分辨率图像,并支持 grounding
- 🏆 Gemini 3 Pro Image:推理能力最强,适用于最复杂的构图
- ⚡ Gemini 2.5 Flash Image:旧版 Flash 模型,适用于高吞吐量快速原型设计
- 🤖 智能模型选择:根据提示词自动选择 NB2 或 Pro
- 📐 宽高比控制 ⭐ 新功能:指定输出尺寸(1:1、16:9、9:16、21:9 等)
- 📋 智能模板:提供用于摄影、设计和编辑的预置提示词模板
- 📁 文件管理:通过 Gemini Files API 上传和管理文件
- 🔍 资源发现:通过 MCP 资源浏览模板和文件元数据
- 🛡️ 可用于生产环境:提供全面的错误处理、日志记录和验证
- ⚡ 高性能:采用经过优化的架构,并支持智能缓存
🚀 快速开始
先决条件
- Google Gemini API 密钥 - 在此免费获取
- Python 3.11+(仅用于开发)
安装
选项 1:从 MCP Registry 安装(推荐) 此服务已发布到 Model Context Protocol Registry。搜索“nanobanana”,或在 MCP 客户端中使用以下 MCP 名称。
mcp-name: io.github.zhongweili/nanobanana-mcp-server
选项 2:使用 uvx
uvx nanobanana-mcp-server@latest
选项 3:使用 pip
pip install nanobanana-mcp-server
🔧 配置
身份验证方式
Nano Banana 通过 NANOBANANA_AUTH_METHOD 支持两种身份验证方式:
- API Key(
api_key):使用GEMINI_API_KEY。最适合本地开发和简单部署。 - Vertex AI ADC(
vertex_ai):使用 Google Cloud Application Default Credentials。最适合在 Google Cloud(Cloud Run、GKE、GCE)上用于生产环境。 - 自动(
auto):如果存在 API Key,则默认使用;否则尝试使用 Vertex AI。
1. API Key 身份验证(默认)
设置 GEMINI_API_KEY 环境变量。
2. Vertex AI 身份验证(Google Cloud)
必需的环境变量:
NANOBANANA_AUTH_METHOD=vertex_ai(或auto)GCP_PROJECT_ID=your-project-idGCP_REGION=global(默认值;Gemini 3 Pro Image 和 NB2 必需。仅在使用旧版 2.5 Flash Image 模型时使用us-central1。)
先决条件:
- 启用 Vertex AI API:
gcloud services enable aiplatform.googleapis.com - 向服务账号授予 IAM 角色:
roles/aiplatform.user。
Claude Desktop
选项 1:使用已发布的服务(推荐)
添加到你的 claude_desktop_config.json:
{
"mcpServers": {
"nanobanana": {
"command": "uvx",
"args": ["nanobanana-mcp-server@latest"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key-here"
}
}
}
}
选项 2:使用本地源代码(开发)
如果你从源代码运行,请指向本地安装位置:
{
"mcpServers": {
"nanobanana-local": {
"command": "uv",
"args": ["run", "python", "-m", "nanobanana_mcp_server.server"],
"cwd": "/absolute/path/to/nanobanana-mcp-server",
"env": {
"GEMINI_API_KEY": "your-gemini-api-key-here"
}
}
}
}
选项 3:使用 Vertex AI(ADC)
若要使用 Google Cloud 应用默认凭据进行身份验证(而不是使用 API 密钥):
{
"mcpServers": {
"nanobanana-adc": {
"command": "uvx",
"args": ["nanobanana-mcp-server@latest"],
"env": {
"NANOBANANA_AUTH_METHOD": "vertex_ai",
"GCP_PROJECT_ID": "your-project-id",
"GCP_REGION": "global"
}
}
}
}
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Claude Code(VS Code 扩展)
在 VS Code 中安装并配置:
- 安装 Claude Code 扩展
- 打开命令面板(
Cmd/Ctrl + Shift + P) - 运行“Claude Code: Add MCP Server”
- 配置:
{ "name": "nanobanana", "command": "uvx", "args": ["nanobanana-mcp-server@latest"], "env": { "GEMINI_API_KEY": "your-gemini-api-key-here" } }
Cursor
添加到 Cursor 的 MCP 配置中:
{
"mcpServers": {
"nanobanana": {
"command": "uvx",
"args": ["nanobanana-mcp-server@latest"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key-here"
}
}
}
}
OpenAI Codex
添加到 ~/.codex/config.toml(全局)或 .codex/config.toml(项目范围):
[mcp_servers.nanobanana]
command = "uvx"
args = ["nanobanana-mcp-server@latest"]
[mcp_servers.nanobanana.env]
GEMINI_API_KEY = "your-gemini-api-key-here"
也可以通过 CLI 添加:
codex mcp add
Codex 的 CLI 和 VSCode 扩展使用同一个 config.toml。添加后,Codex 可在编码会话中直接调用 generate_image、edit_image 和 upload_file 工具。
注意:CLI 和 IDE 扩展共用 Codex 配置文件。TOML 语法错误会同时导致二者无法使用,因此请仔细检查所做的修改。
Continue.dev(VS Code/JetBrains)
添加到 config.json:
{
"mcpServers": [
{
"name": "nanobanana",
"command": "uvx",
"args": ["nanobanana-mcp-server@latest"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key-here"
}
}
]
}
Open WebUI
在 Open WebUI 设置中进行配置:
{
"mcp_servers": {
"nanobanana": {
"command": ["uvx", "nanobanana-mcp-server@latest"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key-here"
}
}
}
}
Gemini CLI / 通用 MCP 客户端
# Set environment variable
export GEMINI_API_KEY="your-gemini-api-key-here"
# Run server in stdio mode
uvx nanobanana-mcp-server@latest
# Or with pip installation
python -m nanobanana_mcp_server.server
🤖 模型选择
Nano Banana 支持三种 Gemini 模型,并可智能自动选择:
🍌 NB2 — Nano Banana 2(Gemini 3.1 Flash Image)⭐ 默认
Flash 级速度,Pro 级质量——兼得两全
- 质量:可用于生产环境的 4K 输出
- 分辨率:最高 4K(3840px)
- 速度:每张图片约 2-4 秒(Flash 级延迟)
- 特色功能:
- 🌐 Google 搜索增强:利用现实世界知识生成事实准确的图片
- 🎯 主体一致性:每个场景最多支持 5 个角色和 14 个物体
- ✍️ 精准文本渲染:在图片中清晰地放置文本
- 适用场景:几乎所有场景——生产素材、营销、摄影、文本叠加
- model_tier:
"nb2"(或"auto"——NB2 是自动模式的默认模型)
🏆 Pro 模型 — Nano Banana Pro(Gemini 3 Pro Image)
为要求最高的构图提供最深入的推理
- 质量:当前可用的最高质量
- 分辨率:最高 4K(3840px)
- 速度:每张图片约 5-8 秒
- 特色功能:
- 🧠 高级推理:可配置思考级别(LOW/HIGH)
- 🌐 Google 搜索增强:整合现实世界知识
- 📐 媒体分辨率控制:微调视觉处理细节
- 适用场景:复杂的叙事场景、精细的构图、需要最高推理能力的任务
- model_tier:
"pro"
⚡ Flash 模型(Gemini 2.5 Flash Image)
适用于高频快速迭代的旧版模型
- 速度:非常快(2-3 秒)
- 分辨率:最高 1024px
- 适用场景:高频生成,以及无需 4K 的快速草稿
- model_tier:
"flash"
🤖 自动选择(推荐)
默认情况下,服务使用 AUTO 模式,除非明确需要 Pro 更深入的推理,否则会选择 NB2:
选择 Pro 模型的情况:
- 强调质量的关键词:“4K”、“专业”、“生产”、“高分辨率”、“HD”
- 请求较高的思考级别:
thinking_level="HIGH" - 使用多张输入图片进行多图条件控制
选择 NB2 模型的情况(默认):
- 常规请求、日常图片生成
- 强调速度的关键词:“快速”、“草稿”、“素描”、“迅速”
- 高频批量生成(
n > 2)
使用示例
# Automatic selection (recommended) — routes to NB2 by default
"A cat sitting on a windowsill" # → NB2 (default)
"Quick sketch of a cat" # → NB2 (speed keyword, NB2 is fast enough)
"Professional 4K product photo" # → Pro (strong quality keywords)
# Explicit NB2 selection
generate_image(
prompt="Product photo on white background",
model_tier="nb2", # Nano Banana 2 (Flash speed + 4K)
resolution="4k",
enable_grounding=True
)
# Leverage Nano Banana Pro for complex reasoning
generate_image(
prompt="Cinematic scene: three characters in a tense standoff at dusk",
model_tier="pro", # Pro for deep reasoning
resolution="4k",
thinking_level="HIGH", # Enhanced reasoning
enable_grounding=True
)
# Legacy Flash for high-volume drafts
generate_image(
prompt="Simple icon",
model_tier="flash" # Fast 1024px generation
)
# 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 参数控制输出图像的尺寸:
支持的宽高比:
1:1- 正方形(Instagram、头像)4:3- 经典照片格式3:4- 纵向16:9- 宽屏(YouTube 缩略图、演示文稿)9:16- 手机纵向(手机壁纸、快拍)21:9- 超宽电影格式2:3、3:2、4:5、5:4- 多种照片格式
# 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
)
注意:宽高比同时适用于 Flash 和 Pro 模型。若要在高分辨率下使用特定宽高比并获得最佳效果,请使用 Pro 模型并设置 resolution="4k"。
📁 输出路径控制 ⭐ 全新!
使用 output_path 参数控制生成图像的保存位置:
三种操作模式:
- 指定文件路径 - 保存到确切的文件位置:
generate_image(
prompt="A beautiful sunset",
output_path="/path/to/sunset.png" # Exact file location
)
- 目录路径 - 在指定目录中使用自动生成的文件名:
generate_image(
prompt="Product photo",
output_path="/path/to/products/" # Trailing slash indicates directory
)
- 默认位置 - 使用 IMAGE_OUTPUT_DIR 或 ~/nanobanana-images:
generate_image(
prompt="Random image"
# output_path defaults to None
)
多张图像(n > 1): 使用文件路径生成多张图像时,图像会自动编号:
- 第一张图像:
/path/to/image.png - 第二张图像:
/path/to/image_2.png - 第三张图像:
/path/to/image_3.png
优先级规则:
output_path参数(若已提供)- 最高优先级IMAGE_OUTPUT_DIR环境变量~/nanobanana-images(默认回退路径)
仅当省略 output_path 时才会使用 IMAGE_OUTPUT_DIR。相对路径 output_path(例如 images/sunset.png)会相对于服务进程的工作目录解析,而不是相对于 IMAGE_OUTPUT_DIR。~/... 会展开为主目录。即使目录尚不存在,以斜杠结尾的路径也会启用目录模式(outputs/),服务会创建该目录并生成文件名。
# Save to specific location with Pro model
generate_image(
prompt="Professional headshot",
model_tier="pro",
output_path="/Users/me/photos/headshot.png"
)
# Save multiple images to a directory
generate_image(
prompt="Product variations",
n=4,
output_path="/path/to/products/" # Each gets unique filename
)
⚙️ 环境变量
配置选项:
# 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=global # Required for gemini-3-pro-image-preview and NB2; use "us-central1" only for legacy 2.5 Flash Image
# Model Selection (optional)
NANOBANANA_MODEL=auto # Options: flash, nb2, pro, auto (default: auto → nb2)
# Optional
IMAGE_OUTPUT_DIR=/path/to/image/directory # Default: ~/nanobanana-images
GEMINI_BASE_URL=https://custom-api.example.com # Custom API endpoint (for proxies/gateways)
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
LOG_FORMAT=standard # standard, json, detailed
🐛 故障排除
常见问题
“GEMINI_API_KEY 未设置”
- 在客户端的 MCP 服务配置中添加 API 密钥
- 在 Google AI Studio 获取免费 API 密钥
“服务启动失败”
- 确保使用的是最新版本:
uvx nanobanana-mcp-server@latest - 检查客户端是否支持 MCP(Claude Desktop 0.10.0+)
“权限被拒绝”错误
- 服务默认会在
~/nanobanana-images中创建图像 - 确保对主目录拥有写入权限
开发环境设置
本地开发:
# Clone repository
git clone https://github.com/zhongweili/nanobanana-mcp-server.git
cd nanobanana-mcp-server
# 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
📄 许可证
MIT 许可证 - 详情请参阅 LICENSE。
🆘 支持
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。