图像生成服务器

一个基于Google Gemini和Tongyi Wanxiang的模型上下文协议(MCP)服务器,用于图像生成和编辑,支持将生成的图像自动上传到S3兼容对象存储。

  • by adamydwang
  • Go
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 adamydwang/genai-mcp

使用说明

genai-mcp: GenAI MCP Server for Image Generation (e.g. Nano Banana)

GenAI MCP服务器

该项目实现了 模型上下文协议(MCP)服务器 用于图像生成和图像编辑 谷歌双子座, 同益万向,以及可选的自动上传生成的图像到 S3兼容对象存储 (AWS S3、阿里云OSS等)。

服务器暴露了一个 可流式传输的HTTP MCP端点 并为Gemini、Wan和APIMart提供工具。

供应商矩阵

提供者 支持的模型 配置 注意事项
谷歌 gemini-3-pro-image-preview
· gemini-2.5-flash-image
GENAI_PROVIDER=gemini
GENAI_BASE_URL=https://generativelanguage.googleapis.com
官方双子座
dmxapi · gemini-3-pro-image-preview
· gemini-2.5-flash-image
GENAI_PROVIDER=gemini
GENAI_BASE_URL=https://www.dmxapi.cn
Gemini兼容网关
阿里云 · wan2.5-i2i-preview
· wan2.5-t2i-preview
GENAI_PROVIDER=wan
GENAI_BASE_URL=https://dashscope.aliyuncs.com
同益万向
apimart gemini-3-pro-image-preview GENAI_PROVIDER=apimart
GENAI_BASE_URL=https://api.apimart.ai
APIMart Gemini包装机(经济高效)

1.先决条件

  • 去 1.21+ (推荐)
  • 有效的Gemini(或提供商)API密钥
  • 可选:用于存储图像的S3/OSS存储桶

2.配置(.env)

复制 env.example 到 .env,然后填写实际值。

GenAI配置

# GenAI provider:
# - gemini: Google Gemini / compatible backend
# - wan:    Ali Bailian Tongyi Wanxiang image APIs
# - apimart: APIMart (Gemini-wrapped async image APIs)
GENAI_PROVIDER=gemini

# Shared GenAI endpoint / key for all providers
GENAI_BASE_URL=https://generativelanguage.googleapis.com
GENAI_API_KEY=your_api_key_here

# Model names:
# - When GENAI_PROVIDER=gemini: Gemini model names, e.g. gemini-3-pro-image-preview
# - When GENAI_PROVIDER=wan:    Wanxiang model names, e.g. wan2.5-t2i-preview / wan2.5-i2i-preview
# - When GENAI_PROVIDER=apimart: Gemini image model name, e.g. gemini-3-pro-image-preview
GENAI_GEN_MODEL_NAME=gemini-3-pro-image-preview
GENAI_EDIT_MODEL_NAME=gemini-3-pro-image-preview

# Request timeout in seconds for each GenAI call (generate / edit)
GENAI_TIMEOUT_SECONDS=120

# Image output format:
# - base64: return image as data URI (base64 encoded)
# - url:    upload image to OSS and return plain URL
GENAI_IMAGE_FORMAT=base64

HTTP服务器

SERVER_ADDRESS=0.0.0.0
SERVER_PORT=8080

MCP端点:

http://SERVER_ADDRESS:SERVER_PORT/mcp

OSS/S3配置(可选,需要时 GENAI_IMAGE_FORMAT=url)

# For AWS S3: leave OSS_ENDPOINT empty or set to s3.amazonaws.com
# For Aliyun OSS: set to oss-cn-hangzhou.aliyuncs.com or your region
# For Tencent COS: set to cos.ap-guangzhou.myqcloud.com
# For MinIO: set to your MinIO endpoint
OSS_ENDPOINT=
OSS_REGION=us-east-1
OSS_ACCESS_KEY=your_access_key_here
OSS_SECRET_KEY=your_secret_key_here
OSS_BUCKET=your_bucket_name

当 GENAI_IMAGE_FORMAT=url:

  • 对于 阿里云OSS:确保 OSS_ENDPOINT 喜欢 oss-cn-beijing.aliyuncs.com bucket策略允许预期的读取访问。

3.运行MCP服务器

您可以在中运行MCP服务器 两种方式:

  1. 从源代码克隆和构建

    • 克隆此仓库并输入项目根目录

    • 复制 env.example 到 .env 并填写您的配置

    • 运行:

      go build .
      ./genai-mcp
      
  2. 下载发布二进制文件

    • 从发布页面下载相应的二进制文件

    • 将其放置在您选择的目录中

    • 复制 env.example (从回购或释放资产) .env 并更新配置

    • 运行(二进制名称可能因平台而异):

      ./genai-mcp
      

默认MCP HTTP端点:

http://127.0.0.1:8080/mcp

从任何支持流式HTTP传输的MCP兼容客户端连接。


4.MCP工具

Gemini工具(internal/tools/gemini.go)

  • gemini_generate_image

    • 输入: prompt (字符串,必填)
    • 输出:base 64数据类型或URL(可选OSS上传)
  • gemini_edit_image

    • 输入: prompt (必填), image_urls (必填,JSON数组)
    • 输出:base64数据URI或URL

当 GENAI_IMAGE_FORMAT=url,图像被下载/解码,然后上传到OSS/S3 images/yyyy-MM-dd/{uuid_timestamp_random}.ext.

万工具(internal/tools/wan.go)

  • wan_create_generate_image_task
  • wan_query_generate_image_task
  • wan_create_edit_image_task
  • wan_query_edit_image_task

Wan是异步的;创建一个任务,然后轮询完成情况。

APIMart工具(internal/tools/apimart.go)

  • apimart_create_generate_image_task
  • apimart_query_generate_image_task
  • apimart_create_edit_image_task
  • apimart_query_edit_image_task

APIMart是异步的;任务完成后,工具会返回最终图像(URL或base64)。


5.联系方式

  • 微信:扫描下面的二维码添加为好友

  • Discord 的中文翻译是“不和谐”或“纷争”。: 加入社区


明星历史