返回市场
图像生成MCP服务器

图像生成MCP服务器

作者:lansespirit43 星标更新:2025-10-10

项目介绍

技术文档摘要

图像生成MCP服务器

赋能通用图像生成能力给AI聊天机器人

传统的AI聊天机器人界面仅限于文本交互,无论其底层语言模型多么强大。图像生成MCP服务器通过标准化的模型上下文协议(MCP),弥合了这一差距,使任何基于LLM的聊天客户端都能生成专业级别的图像。

无论您使用的是Claude桌面版、自定义的ChatGPT界面、基于Llama的应用程序,还是其他支持MCP的LLM客户端,该服务器都提供了对多个AI图像生成模型的访问,包括OpenAI的gpt-image-1、dall-e-3、dall-e-2以及Google的Imagen系列(imagen-4、imagen-4-ultra、imagen-3),将纯文本对话转变为丰富的视觉体验。

📦 包管理器:此项目使用UV进行快速可靠的Python包管理。与传统的pip/venv工作流程相比,UV提供了更好的依赖解析、更快的安装速度和适当的环境隔离。

为什么这很重要

AI生态系统已经发展到包含来自多个供应商的强大语言模型(如OpenAI、Anthropic、Meta、Google等),但图像生成能力仍然分散且特定于平台。这造成了一个显著的差距:

  • 🚫 有限的访问:只有某些平台提供内置的图像生成功能
  • 🔒 厂商锁定:图像能力绑定到特定的LLM提供商
  • ⚡ 集成不佳:在文本工具和图像工具之间切换会中断工作流
  • 🛠️ 复杂的设置:每个客户端都需要定制集成

图像生成MCP服务器通过以下方式解决了这些问题:

  • 🌐 全面兼容性:适用于任何支持MCP的LLM客户端
  • 🔄 无缝集成:无需上下文切换或工作流中断
  • ⚡ 标准化协议:一台服务器,支持多种客户端
  • 🎨 多供应商支持:访问OpenAI和Google的最新图像生成模型
  • 🔧 统一接口:单一API用于多个AI提供商,并自动发现模型

视觉展示

实际应用

Claude桌面版使用图像生成MCP Claude桌面版通过MCP集成无缝生成图像

生成示例

<div align="center"> <img src="assets/images/img_20250708111322_9618bc559949.png" alt="生成图像示例1" width="400"/> <img src="assets/images/img_20250708111847_1c78e63ed4e0.png" alt="生成图像示例2" width="400"/> </div>

通过MCP服务器生成的高质量图像,展示了专业级输出

使用案例及应用场景

🎯 内容创作工作流

  • 博主及作家:在写作工具中直接生成自定义插图
  • 社交媒体经理:在聊天界面中创建特定平台的图形
  • 营销团队:在头脑风暴会议期间快速原型设计视觉概念
  • 教育者:按需生成教学材料和视觉辅助工具

🚀 开发与设计

  • UI/UX设计师:在设计讨论期间快速生成草图
  • 前端开发者:在开发环境中生成占位符和概念图像
  • 技术作家:为文档生成自定义图表和插图
  • 产品经理:在任何基于LLM的工具中进行视觉概念沟通

🏢 企业集成

  • 客户服务:生成视觉解释和指南
  • 销售团队:根据客户需求定制演示材料
  • 培训计划:在对话界面中创建视觉学习材料
  • 内部工具:将图像生成添加到现有的基于LLM的应用程序中

🎨 创意产业

  • 游戏开发者:概念艺术和资产构思
  • 电影与媒体:故事板和概念可视化
  • 建筑:快速视觉参考和情绪板
  • 广告:活动概念开发
  • 艺术家与插画师:带有清晰结构信息和构造指南的绘画参考
  • 艺术学生:姿势、轮廓、价值和形式研究的练习材料

关键优势:与特定平台的解决方案不同,这种通用方法意味着您的图像生成能力可以跨不同的工具和工作流移动,消除厂商锁定并最大化工作流效率。

功能

🎨 多供应商图像生成

  • 多个AI模型:支持OpenAI(gpt-image-1、dall-e-3、dall-e-2)和Google Gemini(imagen-4、imagen-4-ultra、imagen-3)
  • 文本转图像:从文本描述生成高质量图像
  • 图像编辑:用文本指令编辑现有图像(OpenAI模型)
  • 多种格式:支持PNG、JPEG和WebP输出格式
  • 质量控制:自动、高、中、低质量设置
  • 背景控制:透明、不透明或自动背景选项
  • 动态模型发现:运行时查询可用模型及其功能

🔗 MCP集成

  • FastMCP框架:使用最新的MCP Python SDK构建
  • 多种传输方式:支持STDIO、HTTP和SSE传输
  • 结构化输出:具有适当模式的有效工具响应
  • 资源访问:用于图像检索和管理的MCP资源
  • 提示模板:10多个内置模板以应对常见使用场景

💾 存储与缓存

  • 本地存储:带元数据的组织目录结构
  • 基于URL的访问:传输感知的图像URL生成
  • 双重访问:即时base64数据+持久资源URI
  • 智能缓存:内存缓存,支持TTL和Redis
  • 自动清理:可配置的文件保留策略

🚀 生产部署

  • Docker支持:生产就绪的Docker容器
  • 多传输方式:STDIO用于Claude桌面版,HTTP用于网络部署
  • 反向代理:带速率限制的Nginx配置
  • 监控:Grafana和Prometheus集成
  • SSL/TLS:使用Certbot自动证书管理

🛠️ 开发特性

  • 类型安全:完整的类型提示,使用Pydantic模型
  • 错误处理:全面的错误处理和日志记录
  • 配置:基于环境的配置管理
  • 测试:基于pytest的测试套件,支持异步
  • 开发工具:热重载、Redis Commander、调试日志

快速开始

先决条件

  • Python 3.10+
  • UV包管理器
  • OpenAI API密钥(用于OpenAI模型)
  • 具有Vertex AI访问权限的Google Cloud服务账户(用于Imagen模型,可选)

安装

  1. 克隆和设置

    git clone <repository-url>
    cd image-gen-mcp
    uv sync
    

    注意:此项目使用UV进行快速可靠的Python包管理。与pip相比,UV提供了更好的依赖解析和更快的安装速度。

  2. 配置环境

    cp .env.example .env
    # 编辑.env并添加您的凭据:
    # - PROVIDERS__OPENAI__API_KEY 用于OpenAI模型
    # - PROVIDERS__GEMINI__API_KEY 用于Imagen模型(指向服务账户JSON文件的路径)
    

    对于Imagen模型(Vertex AI设置)

    1. 转到Google Cloud控制台
    2. 为您的项目启用Vertex AI API
    3. 创建具有“Vertex AI用户”角色的服务账户
    4. 将JSON密钥文件下载到您的项目目录
    5. 设置PROVIDERS__GEMINI__API_KEY为您的JSON文件路径
  3. 测试设置

    uv run python scripts/dev.py setup
    uv run python scripts/dev.py test
    

运行服务器

开发模式

# HTTP传输用于网络开发和测试
./run.sh dev

# HTTP传输带开发工具(Redis Commander)
./run.sh dev --tools

# STDIO传输用于Claude桌面版集成
./run.sh stdio

# 带监控的生产部署
./run.sh prod

# 停止所有服务
./run.sh stop

手动执行

# STDIO传输(默认)-用于Claude桌面版
uv run python -m image_gen_mcp.server

# HTTP传输-用于网络部署
uv run python -m image_gen_mcp.server --transport streamable-http --port 3001

# SSE传输-用于实时应用程序
uv run python -m image_gen_mcp.server --transport sse --port  8080

# 带自定义配置
uv run python -m image_gen_mcp.server --config /path/to/.env --log-level DEBUG

# 启用CORS用于网络开发
uv run python -m image_gen_mcp.server --transport streamable-http --cors

命令行选项

uv run python -m image_gen_mcp.server --help

图像生成MCP服务器 - 使用OpenAI的gpt-image-1模型生成和编辑图像

选项:
  --config PATH         配置文件路径(.env格式)
  --log-level LEVEL     设置日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL)
  --transport TYPE      传输方法(stdio, sse, streamable-http)
  --port PORT           HTTP传输端口(默认:3001)
  --host HOST           HTTP传输主机地址(默认:127.0.0.1)
  --cors                为网络部署启用CORS
  --version             显示版本信息
  --help                显示帮助信息

示例:
  # Claude桌面版集成
  uv run python -m image_gen_mcp.server

  # 带Redis缓存的网络部署
  uv run python -m image_gen_mcp.server --transport streamable-http --port 3001

  # 带调试日志和工具的开发
  uv run python -m image_gen_mcp.server --log-level DEBUG --cors

MCP客户端集成

此服务器与任何支持MCP的聊天机器人客户端兼容。以下是配置示例:

Claude桌面版(Anthropic)
{
  "mcpServers": {
    "image-gen-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/image-gen-mcp",
        "run",
        "image-gen-mcp"
      ],
      "env": {
        "PROVIDERS__OPENAI__API_KEY": "your-api-key-here"
      }
    }
  }
}
Claude代码(Anthropic CLI)
# 首先,创建启动脚本(一次性设置)
# 此脚本已包含在仓库中作为start-mcp.sh

# 添加MCP服务器并附带API密钥
claude mcp add image-gen-mcp /path/to/image-gen-mcp/start-mcp.sh -e PROVIDERS__OPENAI__API_KEY=your-api-key-here

# 或者,如果API密钥已在您的.env文件中,则无需API密钥
claude mcp add image-gen-mcp /path/to/image-gen-mcp/start-mcp.sh

# 验证设置
claude mcp list
Continue.dev(VS Code扩展)
{
  "mcpServers": {
    "image-gen-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/image-gen-mcp", "run", "image-gen-mcp"],
      "env": {
        "PROVIDERS__OPENAI__API_KEY": "your-api-key-here"
      }
    }
  }
}
自定义MCP客户端

对于其他支持MCP的应用程序,使用标准的MCP STDIO传输:

uv run python -m image_gen_mcp.server

全面兼容性:此服务器遵循标准的MCP协议,确保与当前和未来支持MCP的客户端在整个AI生态系统中的兼容性。

使用示例

基础图像生成

# 通过MCP客户端使用
结果 = await session.call_tool(
    "generate_image",
    参数={
        "prompt": "一座美丽的落日山脉,数字艺术风格",
        "quality": "high",
        "size": "1536x1024",
        "style": "vivid"
    }
)

使用提示模板

# 获取优化的社交平台提示
提示结果 = await session.get_prompt(
    "social_media_prompt",
    参数={
        "platform": "instagram",
        "content_type": "产品公告",
        "brand_style": "现代极简主义"
    }
)

访问生成的图像

# 通过资源URI访问
图像数据 = await session.read_resource("generated-images://img_20250630143022_abc123")

# 查看最近的图像
历史记录 = await session.read_resource("image-history://recent?limit=5")

# 存储统计
统计 = await session.read_resource("storage-stats://overview")

可用工具

list_available_models

列出所有可用的图像生成模型及其功能。

返回:包含模型信息、能力和提供商详情的字典。

generate_image

使用任何支持的模型从文本描述生成图像。

参数

  • prompt(必需):所需图像的文本描述
  • model(可选):要使用的模型(例如,“gpt-image-1”,“dall-e-3”,“imagen-4”)
  • quality:“auto” | “high” | “medium” | “low”(默认:“auto”)
  • size:“1024x1024” | “1536x1024” | “1024x1536”(默认:“1536x1024”)
  • style:“vivid” | “natural”(默认:“vivid”)
  • output_format:“png” | “jpeg” | “webp”(默认:“png”)
  • background:“auto” | “transparent” | “opaque”(默认:“auto”)

注意:参数可用性取决于所选模型。使用list_available_models检查功能。

edit_image

使用文本指令编辑现有图像。

参数

  • image_data(必需):Base64编码的图像或数据URL
  • prompt(必需):编辑说明
  • mask_data:目标编辑的可选掩码
  • sizequalityoutput_format:与generate_image相同

可用资源

  • generated-images://{image_id} - 访问特定生成的图像
  • image-history://recent - 浏览最近的生成历史
  • storage-stats://overview - 存储使用情况和统计
  • model-info://gpt-image-1 - 模型能力和定价

提示模板

内置模板用于常见使用场景:

  • 创意图像:艺术图像生成
  • 产品摄影:商业产品图像
  • 社交媒体图形:平台优化的帖子
  • 博客标题:文章标题图像
  • OG图像:社交媒体预览图像
  • 英雄横幅:网站英雄部分
  • 电子邮件标题:新闻通讯标题
  • 视频缩略图:YouTube/视频缩略图
  • 信息图:数据可视化图像
  • 艺术风格:特定艺术运动风格
  • 绘画参考:铅笔绘画练习的结构参考
  • 姿态绘画:动作和姿态捕捉研究
  • 基本形状研究:几何形式构造练习
  • 轮廓绘画:边缘和形式观察练习
  • 值研究:光和阴影渲染练习

配置

通过环境变量或.env文件进行配置:

# =============================================================================
# 提供商配置
# =============================================================================
# OpenAI提供商(默认启用)
PROVIDERS__OPENAI__API_KEY=sk-your-openai-api-key-here
PROVIDERS__OPENAI__BASE_URL=https://api.openai.com/v1
PROVIDERS__OPENAI__ORGANIZATION=org-your-org-id
PROVIDERS__OPENAI__TIMEOUT=300.0
PROVIDERS__OPENAI__MAX_RETRIES=3
PROVIDERS__OPENAI__ENABLED=true

# Gemini提供商(需要Vertex AI设置)
# 对于Imagen模型,使用指向Google Cloud服务账户JSON文件的路径
PROVIDERS__GEMINI__API_KEY=/path/to/your/vertex-ai-key.json
PROVIDERS__GEMINI__BASE_URL=https://us-central1-aiplatform.googleapis.com/v1
PROVIDERS__GEMINI__TIMEOUT=300.0
PROVIDERS__GEMINI__MAX_RETRIES=3
PROVIDERS__GEMINI__ENABLED=false
PROVIDERS__GEMINI__DEFAULT_MODEL=imagen-4

# =============================================================================
# 图像生成设置
# =============================================================================
IMAGES__DEFAULT_MODEL=gpt-image-1
IMAGES__DEFAULT_QUALITY=auto
IMAGES__DEFAULT_SIZE=1536x1024
IMAGES__DEFAULT_STYLE=vivid
IMAGES__DEFAULT_MODERATION=auto
IMAGES__DEFAULT_OUTPUT_FORMAT=png
# 图像托管的基本URL(例如,https://cdn.example.com用于nginx/CDN)
IMAGES__BASE_HOST=

# =============================================================================
# 服务器配置
# =============================================================================
SERVER__NAME=图像生成MCP服务器
SERVER__VERSION=0.1.0
SERVER__PORT=3001
SERVER__HOST=127.0.0.1
SERVER__LOG_LEVEL=INFO
SERVER__RATE_LIMIT_RPM=50

# =============================================================================
# 存储配置
# =============================================================================
STORAGE__BASE_PATH=./