README
🚀 基于MCP接口的AI图像生成服务器
本项目打造了一个集成稳定扩散(Stable Diffusion)图像生成功能的模型上下文协议(MCP)服务器,能让AI代理轻松请求并接收生成的图像。项目参考了Block's Goose自定义扩展教程里的示例。
🚀 快速开始
安装配置
-
创建虚拟环境,强制使用
.venv:virtualenv .venv -
激活虚拟环境:
source .venv/bin/activate -
安装MCP包(用于Goose集成):
pip install -e .
启动服务
MCP服务器集成了图像生成服务,可通过一条命令同时启动:
标准模式
source .venv/bin/activate # 激活你的虚拟环境
export IMAGE_GEN_DIR=/绝对路径/to/folder # 设置生成图像的目标文件夹
image-gen-mcp
开发模式(带FastMCP Inspector)
需打开两个终端:
终端1:
source .venv/bin/activate # 激活你的虚拟环境
export IMAGE_GEN_DIR=/绝对路径/to/folder # 设置生成图像的目标文件夹
image-gen-mcp # 启动图像生成服务(和一个我们不会使用的MCP服务器)
终端2:
source .venv/bin/activate # 激活你的虚拟环境
export IMAGE_GEN_DIR=/绝对路径/to/folder # 设置生成图像的目标文件夹
mcp dev src/image_gen_mcp/server.py # 使用Inspector启动MCP服务器
⚠️ 重要提示:仅在使用开发模式时,图像生成服务必须单独启动。
启动带有FastMCP Inspector的MCP服务器后,可提供以下功能:
- 一个Web界面 http://127.0.0.1:8000 进行调试
- 检查和调整图像生成设置
直接API访问
发送请求
使用curl命令或任何HTTP客户端向服务发送请求,例如:
curl -X POST "http://localhost:5000/api/generate" \
--data-raw '{"prompt": "一只飞翔的猫头鹰", "negative_prompt": ""}'
接收响应
{
"status": "success",
"message": "生成成功",
"data": {
"url": "http://localhost:5000/images/... png",
"dimensions": "1024x1024"
}
}
📦 安装指南
创建虚拟环境、激活虚拟环境以及安装MCP包的步骤,在上述“安装配置”部分已有详细说明。
💻 使用示例
基础用法
通过curl命令向服务发送请求:
curl -X POST "http://localhost:5000/api/generate" \
--data-raw '{"prompt": "一只飞翔的猫头鹰", "negative_prompt": ""}'
高级用法
在开发模式下,结合FastMCP Inspector进行调试和设置调整,可参考上述“启动服务 - 开发模式(带FastMCP Inspector)”部分的内容。
📚 详细文档
文件组织
项目文件结构如下:
.
├── src/
│ ├── image_gen_mcp/
│ │ ├── generator.py # 处理图像生成的主逻辑
│ │ └── server.py # 提供MCP接口的服务器
│ └── requirements.txt # 项目依赖项
└── README.md # 项目文档
与Goose集成
环境变量配置
在Goose中添加一个环境变量IMAGE_GEN_DIR,指定生成图像存储的位置。
使用方法
在Goose中,你可以通过请求生成图像并接收包含URL和元数据的MCP对象。
该服务支持本地运行,但建议使用OpenAI GPT - 4o以获得更快的响应速度。
服务架构
-
图像生成服务(src/image_gen_mcp/generator.py)
- 使用稳定扩散模型进行实际图像生成
- 提供简单的HTTP API接口
- 返回图像URL、维度和元数据
- 默认运行在5000端口(可自定义)
- 作为独立线程运行,与MCP服务器共存
-
MCP服务器(src/image_gen_mcp/server.py)
- 提供标准化的MCP接口供AI代理使用
- 将请求转发到集成的图像生成服务
- 返回包含URL和元数据的MCP对象
停止服务
按下Ctrl + C即可停止两者服务,因为它们现在运行在同一进程中。
Scan to contact