关于 AI Image Generation Server with MCP Interface
该项目将 Stable Diffusion 图像生成与 HTTP 服务和 MCP 服务结合,供需要请求生成图像并接收链接和元数据的 AI Agent 使用。
主要功能
- 01Stable Diffusion 图像生成
- 02HTTP 图像生成 API
- 03MCP generate_image 工具
- 04图像链接与元数据
- 05支持 FastMCP Inspector
适用场景
- 01让 AI Agent 请求生成图像
- 02根据文本提示词生成图像
- 03检查和调试 MCP 请求
MCP 相关
MCP 服务向 MCP 客户端提供 generate_image 工具,并返回包含链接和元数据的图像对象;它会将请求转发至集成的图像生成服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
具有 MCP 接口的 AI 图像生成服务
本项目提供了一个集成 Stable Diffusion 图像生成功能的 Model Context Protocol(MCP)服务,使 AI Agent 能够请求并接收生成的图像。
本项目基于 Block 的 Goose 自定义扩展教程中的示例。
设置
-
创建虚拟环境,必须使用
.venv:virtualenv .venv -
激活虚拟环境:
source .venv/bin/activate -
安装 MCP 包(用于 Goose 集成):
pip install -e .
运行服务
MCP 服务包含集成的图像生成服务。你可以使用一条命令启动两者:
标准模式:
source .venv/bin/activate # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
image-gen-mcp
使用 FastMCP Inspector 的开发模式: 打开两个终端:
终端 1
source .venv/bin/activate # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
image-gen-mcp # Start image generation service (and a MCP server we won't use)
终端 2
source .venv/bin/activate # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
mcp dev src/image_gen_mcp/server.py # Start MCP server with Inspector
注意:只有在开发模式下,才必须单独启动图像生成服务。
这将启动带有 FastMCP Inspector 的 MCP 服务,它提供:
- 用于测试和调试的 Web 界面:http://127.0.0.1:6274
- 用于转发 MCP 请求的代理服务,端口为 6277
使用 FastMCP Inspector:
- 在浏览器中打开 http://127.0.0.1:6274
- 使用交互界面来:
- 浏览可用工具及其文档
- 使用你自己的提示词测试
generate_image工具 - 查看请求/响应历史记录
- 调试 MCP 服务的任何问题
图像生成服务的自定义端口:
source .venv/bin/activate # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
image-gen-mcp --port 5001
直接访问 API
向图像生成服务发送 POST 请求以生成图像:
curl -X POST http://localhost:5000/generate \
-H "Content-Type: application/json" \
-d '{"prompt": "A futuristic cityscape at sunset"}'
响应将包含用于访问生成图像的 URL 以及元数据:
{
"type": "image",
"format": "png",
"url": "http://localhost:5000/images/123e4567-e89b-12d3-a456-426614174000.png",
"width": 512,
"height": 512,
"filename": "123e4567-e89b-12d3-a456-426614174000.png",
"filepath": "generated_images/123e4567-e89b-12d3-a456-426614174000.png",
"mime_type": "image/png",
"prompt": "A futuristic cityscape at sunset",
"alt_text": "AI-generated image of: A futuristic cityscape at sunset"
}
你可以通过返回的 image_url 直接访问生成的图像。
文件组织结构
src/image_gen_mcp/- 包含实现代码的包目录server.py- MCP 服务实现generator.py- 图像生成服务__init__.py- 包初始化和 CLI 入口点__main__.py- 支持将包作为模块运行
与 Goose 集成
要在 Goose 中将此 MCP 服务添加为扩展:
- 前往
Settings > Extensions > Add。 - 将
Type设为StandardIO。 - 设置 ID "image_generator"、名称 "Image Generator",并填写适当的描述。
- 在
Command字段中,提供可执行文件的绝对路径:uv run /full/path/to/your/project/.venv/bin/image-gen-mcp - 添加环境变量
IMAGE_GEN_DIR,并选择用于存储生成图像的文件夹
集成后,你可以在 Goose 中使用图像生成工具,让它根据指定的提示词生成图像。
使用 OpenAI GPT-4o 时可立即运行。
也可以通过 Ollama 完全在本地运行。尝试了几个模型后,唯一可用的是 mistral-small3.1。
即使使用高端 MacBookPro,mistral-small3.1 的响应速度也远慢于 OpenAI GPT-4o。
服务架构
两个服务集成在同一个应用程序中:
-
图像生成服务(src/image_gen_mcp/generator.py)
- 使用 Stable Diffusion 处理实际的图像生成
- 提供简单的 HTTP 图像生成 API
- 返回图像 URL、尺寸和元数据
- 包含用于提供生成图像的直接端点
- 默认运行在端口 5000(可通过 --port 自定义)
- 与 MCP 服务在同一进程中通过独立线程运行
-
MCP 服务(src/image_gen_mcp/server.py)
- 为 AI Agent 提供标准化的 MCP 接口
- 将请求转发到集成的图像生成服务
- 返回格式正确的 MCP 图像对象,包含 URL 和元数据
停止服务
使用 Ctrl+C 停止两个服务,因为它们现在在同一进程中运行。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。