图像分析生成服务器

基于Google Gemini API的图像分析、生成和编辑的MCP服务器,适用于需要高效图像处理的开发场景。

  • by ikamman
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 ikamman/gemini-image-mcp

使用说明

Gemini映像MCP服务器

功能强大的MCP服务器,用于使用Google的Gemini API进行图像分析、生成和编辑

安装 • 用法 • api参考 • 例子

✨ 特性

  • 🖼️ 图像分析 -使用Gemini 2.5 Flash分析URL或本地文件中的图像
  • 🎨 图像生成 -根据文本提示生成高质量图像
  • ✏️ 图像编辑 -使用自然语言指令编辑现有图像
  • 🔍 自定义提示 -根据具体分析需求使用系统和用户提示
  • 🚀 高性能 -采用Rust构建,速度和可靠性高
  • 🛡️ 稳健的错误处理 -全面的错误处理和验证
  • 📡 MCP协议 -与MCP兼容客户端无缝集成
  • 🌐 多格式支持 -JPEG、PNG、GIF、WebP等

🚀 快速开始

使用npx(推荐)

npx @ikamman/gemini-image-mcp --gemini-api-key "your-api-key"

全球安装

npm install -g @ikamman/gemini-image-mcp
gemini-image-mcp --help

📦 安装

先决条件

  • Gemini API密钥: 在这里买一个
  • Node.js:14+(用于npm安装)
  • 锈:1.70+(用于从源代码构建)

选项1:通过npm安装(使用cargo dist自动安装)

npm install -g @ikamman/gemini-image-mcp

选项2:从源代码构建

git clone https://github.com/ikamman/gemini-image-mcp.git
cd gemini-image-mcp
cargo build --release

🔧 配置

使用以下方法之一设置Gemini API密钥:

环境变量

export GEMINI_API_KEY="your-api-key-here"

命令行参数

gemini-image-mcp --gemini-api-key "your-api-key"

使用.env文件

echo "GEMINI_API_KEY=your-api-key-here" > .env

📖 用法

作为MCP服务器

服务器通过stdio上的JSON-RPC进行通信:

gemini-image-mcp

与Claude Desktop集成

使用npx(无需安装)

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "gemini-image-mcp": {
      "command": "npx",
      "args": ["@ikamman/gemini-image-mcp"],
      "env": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

使用全局安装

首次全局安装:

npm install -g @ikamman/gemini-image-mcp

然后添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "gemini-image-mcp": {
      "command": "gemini-image-mcp",
      "env": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

替代方案:使用完整路径

为了提高可靠性,您可以使用完整的npx路径:

{
  "mcpServers": {
    "gemini-image-mcp": {
      "command": "/usr/local/bin/npx",
      "args": ["@ikamman/gemini-image-mcp"],
      "env": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

手动测试

# Test image analysis
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"analyze_image","arguments":{"image_source":"https://example.com/image.jpg","user_prompt":"What do you see?"}}}' | gemini-image-mcp

# Test image generation
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"generate_image","arguments":{"user_prompt":"A sunset over mountains","output_path":"./sunset.png"}}}' | gemini-image-mcp

🔗 api参考

🔍 analyze_image

使用谷歌的Gemini API分析图像。

参数:

  • image_source (必需)-图像URL或本地文件路径
  • system_prompt (可选)-分析系统说明
  • user_prompt (可选)-分析问题(默认:“为这张图片添加标题。”)

例子:

{
  "image_source": "https://example.com/photo.jpg",
  "system_prompt": "You are a professional photographer.",
  "user_prompt": "Analyze the composition and lighting of this image."
}

🎨 generate_image

根据文本描述生成图像。

参数:

  • user_prompt (必填)-要生成的图像的描述
  • output_path (必填)-图像应保存的路径
  • system_prompt (可选)-附加生成指南

例子:

{
  "user_prompt": "A cyberpunk cityscape at night with neon lights",
  "output_path": "./generated_city.png",
  "system_prompt": "Create a high-quality, detailed image."
}

✏️ edit_image

使用自然语言指令编辑现有图像。

参数:

  • image_source (必需)-源图像URL或文件路径
  • user_prompt (必填)-编辑说明
  • output_path (必填)-编辑图像的路径
  • system_prompt (可选)-其他编辑指南

例子:

{
  "image_source": "./my_photo.jpg",
  "user_prompt": "Add a vintage filter and increase the warmth",
  "output_path": "./edited_photo.jpg"
}

💡 例子

图像分析示例

# Analyze a webpage screenshot
gemini-image-mcp analyze "https://example.com/screenshot.png" "What UI elements do you see?"

# Analyze a local photo
gemini-image-mcp analyze "./vacation.jpg" "Describe the location and activities"

# Technical analysis
gemini-image-mcp analyze "./chart.png" "Extract the key data points and trends"

图像生成示例

# Generate artwork
gemini-image-mcp generate "Abstract watercolor painting of a forest" "./forest.png"

# Generate technical diagrams
gemini-image-mcp generate "Network architecture diagram showing microservices" "./diagram.png"

# Generate marketing assets
gemini-image-mcp generate "Modern logo for a tech startup, minimalist design" "./logo.png"

图像编辑示例

# Basic editing
gemini-image-mcp edit "./portrait.jpg" "Remove the background" "./portrait_nobg.png"

# Style changes
gemini-image-mcp edit "./photo.jpg" "Convert to black and white with high contrast" "./photo_bw.jpg"

# Object manipulation
gemini-image-mcp edit "./room.jpg" "Add a plant in the corner" "./room_with_plant.jpg"

🏗️ 支持的图像格式

格式 扩展 分析 生成 编辑
JPEG .jpg, .jpeg ✅ ✅ ✅
PNG .png ✅ ✅ ✅
GIF .gif ✅ ❌ ✅
WebP .webp ✅ ❌ ✅

⚡ 性能和限制

  • 图像大小:每张图像高达20MB
  • 并发请求:通过异步Rust运行时处理
  • 速率限制:遵循Gemini API费率限制
  • 响应时间:通常为2-10秒,具体取决于图像大小和复杂性

🛠️ 发展

从源头构建

git clone https://github.com/your-username/gemini-image-mcp.git
cd gemini-image-mcp
cargo build --release

运行测试

cargo test

使用样本图像进行测试

cargo test -- --nocapture

项目结构

gemini-image-mcp/
├── src/
│   ├── main.rs              # Application entry point
│   ├── jsonrpc.rs          # JSON-RPC handler
│   ├── gemini_client.rs    # Gemini API client
│   ├── image_service.rs    # Image processing service
│   ├── validation.rs       # Input validation
│   └── error.rs            # Error handling
├── test/                   # Sample images for testing
├── Cargo.toml              # Rust dependencies & cargo-dist config
└── .github/workflows/      # Automated CI/CD with cargo-dist

🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 了解详情。

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🆘 故障排除

常见问题

❌ “缺少GEMINI_API_KEY”

export GEMINI_API_KEY="your-api-key-here"

❌ URL的“找不到图像”

  • 确保URL可公开访问
  • 检查您的互联网连接
  • 验证是否支持图像格式

❌ 安装npm后“找不到二进制文件”

  • 尝试重新安装: npm uninstall -g @ikamman/gemini-image-mcp && npm install -g @ikamman/gemini-image-mcp
  • 二进制文件由货物分配系统自动管理

❌ 速率限制错误

  • 请稍候,然后重试
  • 考虑在客户机中实现指数回退

获取帮助

🙏 致谢


由以下材料制成❤️ 使用Rust和Google Gemini

⭐ 标记此回购 • 🐛 报告Bug • ✨ 请求功能