赋能通用图像生成能力给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等),但图像生成能力仍然分散且特定于平台。这造成了一个显著的差距:
图像生成MCP服务器通过以下方式解决了这些问题:
Claude桌面版通过MCP集成无缝生成图像
通过MCP服务器生成的高质量图像,展示了专业级输出
关键优势:与特定平台的解决方案不同,这种通用方法意味着您的图像生成能力可以跨不同的工具和工作流移动,消除厂商锁定并最大化工作流效率。
克隆和设置:
git clone <repository-url>
cd image-gen-mcp
uv sync
注意:此项目使用UV进行快速可靠的Python包管理。与pip相比,UV提供了更好的依赖解析和更快的安装速度。
配置环境:
cp .env.example .env
# 编辑.env并添加您的凭据:
# - PROVIDERS__OPENAI__API_KEY 用于OpenAI模型
# - PROVIDERS__GEMINI__API_KEY 用于Imagen模型(指向服务账户JSON文件的路径)
对于Imagen模型(Vertex AI设置):
PROVIDERS__GEMINI__API_KEY为您的JSON文件路径测试设置:
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的聊天机器人客户端兼容。以下是配置示例:
{
"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"
}
}
}
}
# 首先,创建启动脚本(一次性设置)
# 此脚本已包含在仓库中作为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
{
"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 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编码的图像或数据URLprompt(必需):编辑说明mask_data:目标编辑的可选掩码size、quality、output_format:与generate_image相同generated-images://{image_id} - 访问特定生成的图像image-history://recent - 浏览最近的生成历史storage-stats://overview - 存储使用情况和统计model-info://gpt-image-1 - 模型能力和定价内置模板用于常见使用场景:
通过环境变量或.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=./