图像生成MCP服务器旨在为AI聊天机器人赋能,实现通用的图像生成功能。传统的AI聊天机器人界面,无论其底层语言模型多么强大,通常都局限于纯文本交互。而本服务器通过标准化的模型上下文协议(MCP),使任何基于大语言模型(LLM)的聊天机器人客户端都能生成专业品质的图像。
git clone
cd image-gen-mcp
uv sync
注意:本项目使用UV进行快速、可靠的Python包管理。与传统的pip/venv工作流相比,UV提供了更好的依赖解析、更快的安装速度和更完善的环境隔离。
cp .env.example .env
# 编辑.env文件并添加你的API密钥:
# - PROVIDERS__OPENAI__API_KEY用于OpenAI模型
# - PROVIDERS__GEMINI__API_KEY用于Gemini模型(可选)
uv run python scripts/dev.py setup
uv run python scripts/dev.py test
# 用于Web开发和测试的HTTP传输
./run.sh dev
# 带有开发工具(Redis Commander)的HTTP传输
./run.sh dev --tools
# 用于Claude Desktop集成的STDIO传输
./run.sh stdio
# 带有监控的生产部署
./run.sh prod
# STDIO传输(默认) - 用于Claude Desktop
uv run python -m gpt_image_mcp.server
# HTTP传输 - 用于Web部署
uv run python -m gpt_image_mcp.server --transport streamable-http --port 3001
# SSE传输 - 用于实时应用程序
uv run python -m gpt_image_mcp.server --transport sse --port 8080
# 自定义配置
uv run python -m gpt_image_mcp.server --config /path/to/.env --log-level DEBUG
# 为Web开发启用CORS
uv run python -m gpt_image_mcp.server --transport streamable-http --cors
uv run python -m gpt_image_mcp.server --help
Image Gen MCP Server - 使用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 为Web部署启用CORS
--version 显示版本信息
--help 显示帮助信息
示例:
# Claude Desktop集成
uv run python -m gpt_image_mcp.server
# 带有Redis缓存的Web部署
uv run python -m gpt_image_mcp.server --transport streamable-http --port 3001
# 带有调试日志和工具的开发模式
uv run python -m gpt_image_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": {
"OPENAI_API_KEY": "your-api-key-here"
}
}
}
}
{
"mcpServers": {
"gpt-image": {
"command": "uv",
"args": ["--directory", "/path/to/image-gen-mcp", "run", "image-gen-mcp"],
"env": {
"OPENAI_API_KEY": "your-api-key-here"
}
}
}
}
对于其他支持MCP的应用程序,使用标准的MCP STDIO传输:
uv run python -m gpt_image_mcp.server
通用兼容性:本服务器遵循标准的MCP协议,确保与当前和未来支持MCP的客户端在整个AI生态系统中兼容。
git clone
cd image-gen-mcp
uv sync
cp .env.example .env
# 编辑.env文件并添加API密钥
uv run python scripts/dev.py setup
uv run python scripts/dev.py test
# 通过MCP客户端使用
result = await session.call_tool(
"generate_image",
arguments={
"prompt": "A beautiful sunset over mountains, digital art style",
"quality": "high",
"size": "1536x1024",
"style": "vivid"
}
)
# 获取针对社交媒体优化的提示
prompt_result = await session.get_prompt(
"social_media_prompt",
arguments={
"platform": "instagram",
"content_type": "product announcement",
"brand_style": "modern minimalist"
}
)
# 通过资源URI访问
image_data = await session.read_resource("generated-images://img_20250630143022_abc123")
# 查看最近的图像
history = await session.read_resource("image-history://recent?limit=5")
# 存储统计信息
stats = 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
:可选的掩码,用于有针对性的编辑。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供应商(默认禁用)
PROVIDERS__GEMINI__API_KEY=your-gemini-api-key-here
PROVIDERS__GEMINI__BASE_URL=https://generativelanguage.googleapis.com/v1beta/
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=Image Gen MCP Server
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=./storage
STORAGE__RETENTION_DAYS=30
STORAGE__MAX_SIZE_GB=10.0
STORAGE__CLEANUP_INTERVAL_HOURS=24
# =============================================================================
# 缓存配置
# =============================================================================
CACHE__ENABLED=true
CACHE__TTL_HOURS=24
CACHE__BACKEND=memory
CACHE__MAX_SIZE_MB=500
# CACHE__REDIS_URL=redis://localhost:6379
服务器支持使用Docker、监控和反向代理进行生产部署:
# 快速生产部署
./run.sh prod
# 手动使用Docker Compose部署
docker-compose -f docker-compose.prod.yml up -d
生产环境栈包括:
访问点:
http://localhost:3001
(通过代理)http://localhost:3000
http://localhost:9090
(仅本地访问)对于使用SSL、监控和生产加固的VPS部署:
# 下载部署脚本
wget https://raw.githubusercontent.com/your-repo/image-gen-mcp/main/deploy/vps-setup.sh
chmod +x vps-setup.sh
./vps-setup.sh
包括的功能:
详细说明请参阅VPS部署指南。
可用的Docker Compose配置文件:
# 使用HTTP传输的开发模式
docker-compose -f docker-compose.dev.yml up
# 带有Redis Commander的开发模式
docker-compose -f docker-compose.dev.yml --profile tools up
# 用于桌面集成的STDIO传输
docker-compose -f docker-compose.dev.yml --profile stdio up
# 带有监控的生产模式
docker-compose -f docker-compose.prod.yml up -d
本服务器采用模块化、适用于生产环境的架构:
核心组件:
server.py
):基于FastMCP的MCP服务器,支持多种传输方式。config/
):基于环境变量的设置管理,并进行验证。tools/
):提供图像生成和编辑功能。resources/
):用于数据访问和模型注册的MCP资源。storage/
):有组织的本地图像存储,并支持清理功能。utils/cache.py
):基于内存和Redis的缓存系统。多供应商架构:
providers/registry.py
):集中管理供应商和模型。providers/base.py
):所有供应商的抽象基类。providers/openai.py
):集成OpenAI API,并具备重试逻辑。providers/gemini.py
):集成Google Gemini API。types/
):使用Pydantic模型确保类型安全。utils/validators.py
):输入验证和清理。基础设施:
prompts/
):用于优化提示的模板系统。部署:
服务器提供操作成本估算:
全面的错误处理包括:
安全功能包括:
本项目采用MIT许可证,详情请参阅LICENSE文件。
如果遇到问题或有疑问:
Claude Desktop通过MCP集成无缝生成图像