Gemini Image MCP

项目简介

  • 这是一个完整的 MCP 服务端实现,负责与 LLM 客户端通过 MCP 协议进行通信,提供资源管理、工具调用和提示渲染等能力,并通过 Gemini API 生成与编辑图片。

主要功能点

  • MCP 服务器核心实现:实现 ListTools、CallTool、ListResources、ReadResource 等 MCP 请求/响应处理,遵循 MCP 协议。
  • 图像生成与编辑工具:generate_image 和 edit_image,调用 Google Gemini API 进行图片生成与编辑,输出结果包含可直接访问的文件路径和 URL。
  • 资源与工具暴露:将生成的图片作为 MCP 资源对外暴露,支持资源列表查询与资源读取。
  • 静态文件服务:将生成的图片通过 Express 提供本地 HTTP 访问,方便预览与集成。
  • 安全与配置:通过环境变量 GEMINI_API_KEY 进行 Gemini 访问控制,内置对输出路径、宽高比、分辨率等参数的校验与合理默认。

安装步骤

  • 克隆仓库并安装依赖
    • 克隆并进入项目
    • npm install
    • npm run build
  • 运行前提
    • 需要一个有效的 Google Gemini API Key,且设置环境变量 GEMINI_API_KEY
  • 启动与测试
    • 通过 MCP 客户端配置连接后,MCP 服务端会以 stdio 方式与客户端通信(适用于 Cursor/Claude 等工具的集成)。
    • 服务器会在指定端口(默认 3001)提供本地图片访问(http://localhost:3001/images/)。
  • 测试与调试
    • 使用 MCP Inspector(仓库内提供的 Testing 流程)进行工具调用、资源查看与请求/响应调试。

服务器配置(MCP 客户端需要提供的启动信息

  • 下面的配置示例用于帮助你在 MCP 客户端(如 Cursor、Claude Desktop)中启动并连接到 Gemini Image MCP 服务。请将路径替换为你本地实际的 dist/server.js 路径,并确保 GEMINI_API_KEY 放在环境变量中。 { "gemini-image": { "command": "node", "args": ["/path/to/gemini-image-mcp/dist/server.js"], "env": { "GEMINI_API_KEY": "your-api-key-here" } } } 上述配置中
  • gemini-image 为 MCP 服务的名称标识,客户端在连接时通过该名称识别服务;
  • command 为启动命令,通常为 node;
  • args 指向打包输出的 server.js 路径(dist/server.js);
  • env 可选地设定 GEMINI_API_KEY 用于 Gemini API 授权。请确保在实际使用时将 your-api-key-here 替换成你真实的 Gemini API Key。

基本使用方法

  • 客户端与服务端建立连接后,可以:
    • 调用 generate_image 工具来按文本提示生成图片,支持参考图、宽高比和分辨率设置;
    • 调用 edit_image 工具对现有图片进行编辑,提供源图片、输出路径以及可选的宽高比和分辨率;
    • 查询资源列表以获取已生成图片的元数据,或读取资源的二进制内容以进行进一步处理;
  • 交互流程要点
    • 在调用工具前,请客户端确定输出路径(outputPath)为绝对路径,确保用户项目中可直接访问到图片;
    • 解析 Gemini 的响应,提取生成的图片数据后,服务器会将图片同时保存到你指定的输出路径和 MCP 服务器的 images 目录,并对外暴露一个可访问的 URL;
    • 支持的宽高比预设:hero(16:9),square(1:1),portrait(3:4),landscape(4:3),banner(21:9),mobile(9:16),以及显式比例如 16:9、1:1、3:4 等;分辨率支持 1K、2K、4K。

服务器信息