图像生成与编辑工具

一款基于Google Gemini API的图像生成与编辑工具,无需CLI即可使用,支持多种图像格式和批量处理。

  • by bartadaniel
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 bartadaniel/nano-banana-mcp

使用说明

纳米香蕉mcp

Nano Banana MCP服务器,用于使用Google Gemini生成和编辑图像。不需要Gemini CLI,只需要一个API密钥。

快速开始

  1. 从获取Gemini API密钥 谷歌AI工作室

  2. 添加到您的克劳德代码设置(~/.claude/settings.json)或Claude桌面配置:

{
  "mcpServers": {
    "nano-banana": {
      "command": "npx",
      "args": ["-y", "@daniel.barta/nano-banana-mcp"],
      "env": {
        "GEMINI_API_KEY": "your-api-key"
      }
    }
  }
}
  1. 重新启动Claude并要求它生成图像。

配置

环境变量 必填 默认 描述
GEMINI_API_KEY 是 -- 您的Google AI API密钥
GEMINI_MODEL 没有 gemini-3.1-flash-image-preview 用于图像生成/编辑的Gemini模型
GEMINI_DESCRIBE_MODEL 没有 gemini-2.5-flash 用于图像描述的Gemini模型(仅文本输出)
GEMINI_BASE_URL 否 -- Gemini API的自定义基础URL(代理支持)
OUTPUT_DIR 没有 ~/nano-banana-output 保存图像的目录

支持的型号

型号 备注
gemini-3.1-flash-image-preview 默认值。最新、最快
gemini-3-pro-image-preview 质量更高,速度更慢
gemini-2.5-flash-image 快速、经济高效

工具

generate_image

从文本提示生成图像。支持批量生成(最多4张图片)。响应包含缩略图预览;全分辨率图像保存到磁盘。

参数 类型 必填 说明
prompt string 是 图像的文本描述
aspectRatio string 否 纵横比(1:1, 1:4, 1:8, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 8:1, 9:16, 16:9, 21:9)
size string 否 图像大小(512px, 1K, 2K, 4K)
n number No 要生成的图像数量(1-4,默认1)
negativePrompt string 否 要从生成的图像中排除的内容
systemInstruction string 否 引导模型的系统指令

edit_image

根据文本指令编辑现有图像。支持多图像输入(最多10张图像)。响应包含缩略图预览;全分辨率图像保存到磁盘。

参数 类型 必填 说明
prompt string 是 要更改什么
filePath string 是 源映像的路径
additionalFilePaths string[] 否 用于多图像编辑的其他图像路径(最多9个)
aspectRatio string 否 纵横比(1:1, 1:4, 1:8, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 8:1, 9:16, 16:9, 21:9)
size string 否 图像大小(512px, 1K, 2K, 4K)
negativePrompt string 否 要从编辑的图像中排除的内容
systemInstruction string 否 引导模型的系统指令

describe_image

获取图像的文本描述。

参数 类型 必填 说明
filePath string 是 图像路径
question string 否 关于图像的具体问题
systemInstruction string 否 引导模型的系统指令

支持的输入格式

对于 edit_image 和 describe_image,支持以下图像格式:

JPEG、PNG、WebP、GIF、BMP、TIFF、SVG、HEIC/HAIF

文件路径解析

当您提供用于编辑或描述的文件路径时,服务器将按以下顺序搜索文件:

  1. 给定的绝对路径
  2. 相对于当前工作目录
  3. 相对于输出目录
  4. Basename仅在输出目录中

缩略图

为了避免达到Claude Code的会话文件大小限制,MCP响应包含 缩略图预览 (最大512px,JPEG质量80,~20-50KB)而不是全分辨率图像。全分辨率图像始终按照响应元数据中显示的路径保存到磁盘。

生成/编辑响应中的第一个内容块是JSON元数据对象:

{
  "model": "gemini-3.1-flash-image-preview",
  "count": 1,
  "images": [
    { "filePath": "/Users/you/nano-banana-output/a-cat-1234567890.png", "mimeType": "image/png" }
  ]
}

发展

git clone https://github.com/bartadaniel/nano-banana-mcp.git
cd nano-banana-mcp
npm install
npm run build

在配置中使用本地构建:

{
  "mcpServers": {
    "nano-banana": {
      "command": "node",
      "args": ["path/to/nano-banana-mcp/dist/index.js"],
      "env": {
        "GEMINI_API_KEY": "your-api-key"
      }
    }
  }
}

测试

npm test

使用Node.js内置测试运行器运行单元测试(node:test).测试包括错误类、所有记录的Gemini API响应代码(BlockedReason、FinishReason)、配置形状、图像提取边缘案例、文件操作、路径安全性和缩略图生成。

许可证

麻省理工学院