mcpField
A
AI Image Generation Server with MCP Interface

AI Image Generation Server with MCP Interface

本地服务
github.com/aymec媒体与设计280 周前更新

关于 AI Image Generation Server with MCP Interface

AI Image Generation Server with MCP Interface 将 Stable Diffusion 图像生成与 HTTP 服务及 MCP 服务整合,供需要请求图像并获取图像 URL 和元数据的 AI Agent 使用。

主要功能

  1. 01使用 Stable Diffusion 生成图像
  2. 02通过 HTTP 提供图像生成
  3. 03返回图像 URL 和元数据
  4. 04提供生成的图像文件
  5. 05同时运行 MCP 和图像服务

适用场景

  1. 01让 AI Agent 请求生成图像
  2. 02根据文本提示词生成图像
  3. 03获取生成图像的 URL 和详情

MCP 相关

该 MCP 服务通过 `generate_image` 工具向 MCP 客户端提供图像生成,并返回包含 URL 和元数据的图像对象。它将请求转发到集成的图像生成服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

具有 MCP 接口的 AI 图像生成服务

本项目提供了一个集成 Stable Diffusion 图像生成功能的 Model Context Protocol(MCP)服务,使 AI Agent 能够请求并接收生成的图像。
本项目基于 Block 的 Goose 自定义扩展教程中的示例。

设置

  1. 创建虚拟环境,必须使用 .venv:

    virtualenv .venv
    
  2. 激活虚拟环境:

    source .venv/bin/activate
    
  3. 安装 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 服务,它提供:

  1. 用于测试和调试的 Web 界面:http://127.0.0.1:6274
  2. 用于转发 MCP 请求的代理服务,端口为 6277

使用 FastMCP Inspector:

  1. 在浏览器中打开 http://127.0.0.1:6274
  2. 使用交互界面来:
    • 浏览可用工具及其文档
    • 使用你自己的提示词测试 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 服务添加为扩展:

  1. 前往 Settings > Extensions > Add。
  2. 将 Type 设为 StandardIO。
  3. 设置 ID "image_generator"、名称 "Image Generator",并填写适当的描述。
  4. 在 Command 字段中,提供可执行文件的绝对路径:
    uv run /full/path/to/your/project/.venv/bin/image-gen-mcp
    
  5. 添加环境变量 IMAGE_GEN_DIR,并选择用于存储生成图像的文件夹

集成后,你可以在 Goose 中使用图像生成工具,让它根据指定的提示词生成图像。

使用 OpenAI GPT-4o 时可立即运行。
也可以通过 Ollama 完全在本地运行。尝试了几个模型后,唯一可用的是 mistral-small3.1。
即使使用高端 MacBookPro,mistral-small3.1 的响应速度也远慢于 OpenAI GPT-4o。

服务架构

两个服务集成在同一个应用程序中:

  1. 图像生成服务(src/image_gen_mcp/generator.py)

    • 使用 Stable Diffusion 处理实际的图像生成
    • 提供简单的 HTTP 图像生成 API
    • 返回图像 URL、尺寸和元数据
    • 包含用于提供生成图像的直接端点
    • 默认运行在端口 5000(可通过 --port 自定义)
    • 与 MCP 服务在同一进程中通过独立线程运行
  2. MCP 服务(src/image_gen_mcp/server.py)

    • 为 AI Agent 提供标准化的 MCP 接口
    • 将请求转发到集成的图像生成服务
    • 返回格式正确的 MCP 图像对象,包含 URL 和元数据

停止服务

使用 Ctrl+C 停止两个服务,因为它们现在在同一进程中运行。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。