在5分钟内部署 Nano Banana MCP Service:将 AI 图像生成集成到您的工作流

发布: (2025年12月5日 GMT+8 14:44)
5 min read
原文: Dev.to

Source: Dev.to

什么是 MCP,为什么你应该在意?

模型上下文协议 (Model Context Protocol, MCP) 是一种开放协议,能够让 AI 助手安全地访问外部工具和数据源。它为 AI 工具与您的服务之间的通信提供了标准化的方式。

genai-mcp 是一个开源的 MCP 服务器,它将 Google Gemini 及兼容的后端包装成统一的 HTTP 接口。它提供:

  • 根据文本提示生成图像
  • 使用自然语言指令编辑图像
  • 与 S3/OSS 集成,实现图像自动存储
  • 支持流式 HTTP 传输,兼容主流 MCP 客户端
  • 多后端支持(Google Gemini 官方 API、第三方 Gemini 兼容后端如 Nano Banana)
  • 多模型支持,包括 通义万象 2.5(更快且更具性价比)

前置条件

  • Go 1.21+(如果从源码构建)
  • Nano Banana API 密钥(或 Google Gemini API 密钥,或通义万象 API 密钥)
  • 可选:用于图像存储的 S3/OSS 桶

第一步:快速部署

选项 A:下载预编译二进制(推荐)

Releases 页面 下载对应平台的二进制文件:

# macOS (Apple Silicon)
wget https://github.com/adamydwang/genai-mcp/releases/download/release%2F0.2/genai-mcp.darwin.arm64
chmod +x genai-mcp.darwin.arm64
mv genai-mcp.darwin.arm64 genai-mcp

# Linux
wget https://github.com/adamydwang/genai-mcp/releases/download/release%2F0.2/genai-mcp.linux.amd64
chmod +x genai-mcp.linux.amd64
mv genai-mcp.linux.amd64 genai-mcp

创建配置文件:

# 克隆仓库以获取 env.example
git clone https://github.com/adamydwang/genai-mcp.git
cd genai-mcp
cp env.example .env

选项 B:从源码构建

git clone https://github.com/adamydwang/genai-mcp.git
cd genai-mcp
go build .

第二步:配置后端

genai-mcp 支持多种后端。根据需求选择一种。

选项 1:Nano Banana(第三方 Gemini 兼容后端)

编辑 .env 文件:

# 使用 Gemini 提供者(兼容 Nano Banana 等后端)
GENAI_PROVIDER=gemini

# 指向你的 Nano Banana 端点
GENAI_BASE_URL=https://your-nano-banana-endpoint.com

# 你的 Nano Banana API 密钥
GENAI_API_KEY=your_nano_banana_api_key_here

# 模型名称(根据你的 Nano Banana 设置进行调整)
GENAI_GEN_MODEL_NAME=gemini-3-pro-image-preview
GENAI_EDIT_MODEL_NAME=gemini-3-pro-image-preview

# 请求超时时间(秒)
GENAI_TIMEOUT_SECONDS=120

# 图像输出格式:'base64' 或 'url'
GENAI_IMAGE_FORMAT=url

选项 2:Google Gemini 官方 API

GENAI_PROVIDER=gemini
GENAI_BASE_URL=https://generativelanguage.googleapis.com
GENAI_API_KEY=your_google_gemini_api_key_here
GENAI_GEN_MODEL_NAME=gemini-3-pro-image-preview
GENAI_EDIT_MODEL_NAME=gemini-3-pro-image-preview
GENAI_TIMEOUT_SECONDS=120
GENAI_IMAGE_FORMAT=url

选项 3:通义万象 2.5(更快且更具性价比)

# 使用 Wan 提供者
GENAI_PROVIDER=wan

# 通义万象端点
GENAI_BASE_URL=https://dashscope.aliyuncs.com

# 你的 DashScope API 密钥
GENAI_API_KEY=your_dashscope_api_key_here

# 通义万象模型名称
GENAI_GEN_MODEL_NAME=wan2.5-t2i-preview
GENAI_EDIT_MODEL_NAME=wan2.5-i2i-preview

GENAI_TIMEOUT_SECONDS=120
GENAI_IMAGE_FORMAT=url

服务器与 OSS 配置

.env 中添加以下内容:

# 服务器配置
SERVER_ADDRESS=0.0.0.0
SERVER_PORT=8080

# OSS/S3 配置(如果 GENAI_IMAGE_FORMAT=url 则必填)
OSS_ENDPOINT=oss-cn-beijing.aliyuncs.com   # 或你的 S3 端点
OSS_REGION=us-east-1
OSS_ACCESS_KEY=your_access_key
OSS_SECRET_KEY=your_secret_key
OSS_BUCKET=your_bucket_name

第三步:启动服务器

./genai-mcp

你应该会看到类似以下的输出:

INFO Starting GenAI MCP Server
INFO Server configuration loaded
INFO MCP server starting address=0.0.0.0:8080/mcp

MCP 接口现已在 http://localhost:8080/mcp 可用。

第四步:测试服务器

项目自带 Python 测试脚本。首先安装依赖:

cd tests
pip install -r requirements.txt

测试连接:

# 列出可用工具
python test_list_tools.py

# 生成图像
python test_generate_image.py "A futuristic cityscape at sunset"

# 编辑图像
python test_edit_image.py "Make it more vibrant" "https://example.com/image.jpg"

第五步:集成到你的工作流工具

与 Cursor 集成

在 Cursor 设置中添加 MCP 服务器:

{
  "mcpServers": {
    "genai-mcp": {
      "url": "http://localhost:8080/mcp",
      "transport": "http"
    }
  }
}

与 Claude Desktop 集成

编辑 Claude Desktop 的配置文件(例如 macOS 上的 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "genai-mcp": {
      "command": "curl",
      "args": [
        "-X", "POST",
        "http://localhost:8080/mcp"
      ],
      "env": {}
    }
  }
}

与 Dify 集成

在 Dify 中添加自定义工具:

  • 名称: Gemini Image Generator
  • 方法: POST
  • URL: http://your-server:8080/mcp
  • Headers: Content-Type: application/json
  • Body:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "gemini_generate_image",
    "arguments": {
      "prompt": "{{prompt}}"
    }
  }
}

与 n8n 集成

创建一个 HTTP Request 节点:

  • Method: POST
  • URL: http://localhost:8080/mcp
  • Headers:
{
  "Content-Type": "application/json"
}
  • Body (JSON):
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "gemini_generate_image",
    "arguments": {
      "prompt": "{{ $json.prompt }}"
    }
  }
}

与自定义应用集成

简易 Python 示例:

import requests
import json

def generate_image(prompt: str, mcp_url: str = "http://localhost:8080/mcp"):
    """Generate an image using the MCP server."""
    payload = {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "tools/call",
        "params": {
            "name": "gemini_generate_image",
            "arguments": {"prompt": prompt}
        }
    }

    response = requests.post(mcp_url, json=payload)
    response.raise_for_status()
    return response.json()
Back to Blog

相关文章

阅读更多 »

三层 Terraform 架构

先决条件:Terraform ≥ 1.0;具备创建 S3 存储桶、DynamoDB 表、KMS 密钥、VPC、子网、IGW 和路由表的 AWS 权限。