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。