本项目打造了一个集成稳定扩散(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
需打开两个终端:
终端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服务器后,可提供以下功能:
使用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中添加一个环境变量IMAGE_GEN_DIR
,指定生成图像存储的位置。
在Goose中,你可以通过请求生成图像并接收包含URL和元数据的MCP对象。
该服务支持本地运行,但建议使用OpenAI GPT - 4o以获得更快的响应速度。
图像生成服务(src/image_gen_mcp/generator.py)
MCP服务器(src/image_gen_mcp/server.py)
按下Ctrl + C即可停止两者服务,因为它们现在运行在同一进程中。