关于 mcp-nano-banana
mcp-nano-banana 将 Google Gemini Nano Banana 图像生成能力提供给编码助手和其他 MCP 客户端。它支持文本生成、图像编辑与合成,并可控制分辨率、比例和输出格式。
主要功能
- 01根据文本生成图像
- 02按指令编辑现有图像
- 03合成最多 14 张参考图
- 04选择分辨率、宽高比和格式
- 05生成完整网站图标包
- 06限流时自动切换 Flash 模型
适用场景
- 01为项目生成插画或壁纸
- 02修改照片背景或内容
- 03组合人物与产品参考图
- 04为网站生成 favicon 文件包
MCP 相关
它作为 MCP 服务,通过 MCP 工具向客户端提供图像生成、编辑、合成和 favicon 生成能力。调用会使用 Google Gemini API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | enum | 否 | 使用的模型:gemini-2.5-flash-image(快速)或 gemini-3-pro-image-preview(高质量,默认)gemini-2.5-flash-image | gemini-3-pro-image-preview |
| prompt | string | 是 | 要生成的图像的文本描述,或用于编辑/组合参考图像的说明 |
| imagePaths | array | 否 | 可选的参考图像文件路径数组(最多 14 个)。支持 png、jpg、jpeg、webp、gif。 |
| outputPath | string | 否 | 用于保存生成图像的文件路径。如果未提供,则以内联形式返回图像数据。 |
| resolution | enum | 否 | 生成图像的分辨率。仅 gemini-3.1-flash-image-preview 支持 512。Nano Banana Pro 支持 1K、2K、4K。512 | 1K | 2K | 4K |
| aspectRatio | enum | 否 | 生成图像的宽高比。gemini-3.1-flash-image-preview 还支持其他比例(1:4、4:1、1:8、8:1)。1:1 | 16:9 | 9:16 | 4:3 | 3:4 | 2:3 | 3:2 | 4:5 | 5:4 | 21:9 | 1:4 | 4:1 | 1:8 | 8:1 |
| outputFormat | enum | 否 | 输出图像格式png | jpeg | webp |
详细介绍
mcp-nano-banana
用于通过 Google Gemini Nano Banana 模型生成 AI 图像的 MCP 服务。直接通过 AI 编码助手,根据文本提示词生成、编辑和组合图像。
功能
- 文本生成图像 — 根据自然语言描述创建图像
- 图像编辑 — 上传图像并通过文本指令进行修改
- 多图组合 — 将最多 14 张参考图像合成为一张图像
- 分辨率控制 — 以 512px、1K、2K 或 4K 分辨率生成
- 13 种以上宽高比 — 从正方形(1:1)到超宽(21:9)和高图(1:8)
- 自动回退 — Pro 模型在遇到速率限制(429/403/402)时回退到 Flash
- 文件输出 — 保存到指定路径或返回内嵌的 base64
- 网站图标生成 — 通过一条命令生成完整的网站图标包
- 多格式输出 — 支持 PNG、JPEG 和 WebP
快速开始
前置条件
- 获取 Gemini API 密钥,请访问 Google AI Studio
- 在 Google Cloud 项目中启用结算 — 图像生成需要付费套餐(NB2 标准分辨率下约为每张图像 $0.04-0.05)
安装
npm install -g mcp-nano-banana
设置 API 密钥:
export GEMINI_API_KEY=your-api-key
对于 MCP Registry 发布元数据,注册表名称为 io.github.codeFi/mcp-nano-banana。
MCP 配置
Codex
codex mcp add nano-banana --env GEMINI_API_KEY=your-api-key -- npx -y mcp-nano-banana@latest
或手动添加到 ~/.codex/config.toml:
[mcp_servers.nano-banana]
command = "npx"
args = ["-y", "mcp-nano-banana@latest"]
[mcp_servers.nano-banana.env]
GEMINI_API_KEY = "your-api-key"
Qwen Code
添加到 ~/.qwen/settings.json:
{
"mcpServers": {
"nano-banana": {
"command": "npx",
"args": ["-y", "mcp-nano-banana@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
Claude Code
claude mcp add nano-banana -e GEMINI_API_KEY=your-api-key -- npx -y mcp-nano-banana@latest
或手动添加到 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"nano-banana": {
"command": "npx",
"args": ["-y", "mcp-nano-banana@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
其他 MCP 客户端
对于使用标准 mcpServers JSON 格式的 CLI 和桌面客户端,请注册:
{
"mcpServers": {
"nano-banana": {
"command": "npx",
"args": ["-y", "mcp-nano-banana@latest"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
本地 / 开发构建
git clone https://github.com/codeFi/mcp-nano-banana.git
cd mcp-nano-banana
npm install
npm run build
然后在 MCP 客户端中注册:
{
"mcpServers": {
"nano-banana": {
"command": "node",
"args": ["/path/to/mcp-nano-banana/dist/index.js"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
模型
| 模型 | MCP 名称 | 描述 | 最大参考图像数 |
|---|---|---|---|
gemini-3-pro-image-preview | Nano Banana Pro | 高品质,思考模式,专业素材 | 6 张物体 + 5 张角色 |
gemini-3.1-flash-image-preview | Nano Banana 2 | 快速、高效,支持 1:4/4:1/1:8/8:1 宽高比 | 10 张物体 + 4 张角色 |
gemini-2.5-flash-image | Nano Banana | 速度最快,针对高用量任务进行了优化 | - |
服务默认使用 Nano Banana Pro 以获得最佳品质,并会在遇到速率限制时自动回退到 Flash。
可用参数
分辨率
| 值 | 约像素数 | 支持的模型 |
|---|---|---|
"512" | ~512px | 仅 Nano Banana 2 |
"1K" | ~1024px | 所有模型 |
"2K" | ~2048px | 所有模型 |
"4K" | ~4096px | 所有模型 |
默认值:"1K"
宽高比
| 值 | 1K 下的尺寸 | 常见用途 |
|---|---|---|
1:1 | 1024×1024 | 社交媒体帖子、图标 |
16:9 | 1344×768 | 页眉、演示文稿 |
9:16 | 768×1344 | 快拍、移动设备 |
4:3 | 1152×896 | 桌面、照片 |
3:4 | 896×1152 | 肖像 |
2:3 | ~896×1344 | 印刷品、杂志 |
3:2 | ~1344×896 | 照片 |
4:5 | ~896×1120 | Instagram 帖子 |
5:4 | ~1120×896 | Instagram 横向图片 |
21:9 | ~2048×878 | 超宽横幅 |
1:4 | ~512×2048 | 仅 Nano Banana 2 — 高长条图 |
4:1 | ~2048×512 | 仅 Nano Banana 2 — 宽长条图 |
1:8 | ~512×4096 | 仅 Nano Banana 2 — 超高图 |
8:1 | ~4096×512 | 仅 Nano Banana 2 — 超宽图 |
工具
generate_image
根据文本提示词生成或编辑图像。
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | ✅ Yes | — | 文本描述或编辑说明 |
imagePaths | string[] | No | — | 磁盘上的参考图像路径(最多 14 张) |
model | string | No | gemini-3-pro-image-preview | 使用的模型 |
aspectRatio | string | No | 1:1 | 所有可选项请参见上表 |
resolution | string | No | 1K | 512、1K、2K 或 4K |
outputFormat | string | No | png | png、jpeg、webp |
outputPath | string | No | — | 将图像保存到此文件路径 |
示例
根据文本生成:
{
"prompt": "A sunset over mountains with dramatic lighting",
"aspectRatio": "16:9",
"resolution": "2K",
"outputPath": "/Users/currentUser/Desktop/sunset.png"
}
编辑现有图像:
{
"prompt": "Change the background to a coffee shop interior",
"imagePaths": ["/Users/currentUser/photo.jpg"],
"outputPath": "/Users/currentUser/edited.png"
}
组合多张图像:
{
"prompt": "Put these glasses on this person's face",
"imagePaths": ["/path/to/face.jpg", "/path/to/glasses.jpg"],
"outputPath": "/path/to/result.png"
}
高清壁纸:
{
"prompt": "A futuristic cityscape at night with neon lights and rain",
"aspectRatio": "16:9",
"resolution": "4K",
"outputPath": "/path/to/wallpaper.png"
}
generate_favicons
根据提示词或现有图像生成完整的 favicon 套件。
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | No* | — | 图标描述(未设置 imagePath 时必填) |
imagePath | string | No* | — | 现有主图标图像的路径 |
model | string | No | gemini-3-pro-image-preview | 用于生成提示词的模型 |
outputDir | string | No | — | 单个 favicon 文件的目录 |
outputPath | string | No | — | 将 ZIP 套件保存到此路径 |
returnZipBase64 | boolean | No | false | 以 base64 文本形式返回 ZIP |
appName | string | No | My App | 清单中的 name |
shortName | string | No | App | 清单中的 short_name |
themeColor | string | No | #ffffff | 清单主题颜色 |
backgroundColor | string | No | #ffffff | 清单背景颜色 |
includeReadme | boolean | No | true | 在套件中包含 README.md |
示例
{
"prompt": "A minimalist banana icon with a soft gradient",
"outputDir": "/path/to/favicon",
"outputPath": "/path/to/favicon.zip",
"appName": "MyBrand",
"shortName": "Brand",
"themeColor": "#1a1a2e",
"backgroundColor": "#ffffff"
}
生成的文件:
favicon.ico— 多尺寸图标(16/32/48px)favicon-16x16.png— 浏览器标签页favicon-32x32.png— 更高清晰度的标签页apple-touch-icon.png— iOS 主屏幕android-chrome-192x192.png— Androidandroid-chrome-512x512.png— Android 高清版site.webmanifest— PWA 清单
HTML 代码片段(包含在响应中):
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
定价
图像生成需要付费的 Google AI Studio 账户。大致费用如下:
| Model | 1K | 2K | 4K |
|---|---|---|---|
| Nano Banana 2 | ~$0.04 | ~$0.08 | ~$0.15 |
| Nano Banana Pro | ~$0.06 | ~$0.13 | ~$0.24 |
只需为生成的内容付费——没有月度最低消费。
支持的图像格式
输入(参考图像): png、jpg、jpeg、webp、gif
输出: png、jpeg、webp
开发
# Build TypeScript
npm run build
# Watch mode
npm run dev
# Run tests
npm test
# Run the server directly
node dist/index.js
故障排除
| Issue | Solution |
|---|---|
GEMINI_API_KEY is not set | 导出该环境变量,或将其添加到 MCP 配置中 |
429 Too Many Requests | 服务会自动回退到 Flash 模型。请为账户添加结算信息。 |
403/402 Quota exceeded | 在 Google Cloud Console 中启用结算功能 |
503 Unavailable | 请求量较大,请稍后重试。4K 请求中较为常见。 |
| 编辑后图像未更新 | 确保已重新构建 TypeScript(npm run build) |
未找到 imagePaths | 请使用绝对路径。相对路径可能无法正确解析。 |
架构
AI Assistant (MCP Client)
│ (MCP Protocol over stdio)
▼
mcp-nano-banana Server
│ (HTTPS POST)
▼
Google Gemini API
│
▼
Generated Image → saved to outputPath (or returned inline base64)
许可证
作者
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。