AI Image Generation Server with MCP Interface

AI Image Generation Server with MCP Interface

这个项目提供了一个 HTTP 服务器,用于使用 Stable Diffusion 生成图像,以及一个模型上下文协议 (MCP) 服务器,该服务器使 AI 代理能够请求图像生成。

aymec

研究与数据
访问服务器

README

基于 MCP 接口的 AI 图像生成服务器

本项目提供了一个使用 Stable Diffusion 进行图像生成的 HTTP 服务器,以及一个模型上下文协议 (MCP) 服务器,该服务器允许 AI 代理请求图像生成。

设置

  1. 创建一个虚拟环境:

    virtualenv myvirtualenv
    
  2. 激活虚拟环境:

    source myvirtualenv/bin/activate
    
  3. 使用 requirements.txt 安装所需的包:

    pip install -r requirements.txt
    
  4. 安装 MCP 包(用于 Goose 集成):

    pip install 'mcp[cli]>=1.6.0'  # 注意:需要引号来转义方括号
    pip install -e .
    

运行服务

图像生成服务器

实际生成图像的基础服务:

前台模式:

python generate_image.py

守护进程模式:

python generate_image.py --daemon

自定义端口:

python generate_image.py --port 5001

此服务默认在端口 5000 上运行。
在 MacOS 上,更改端口或尝试禁用“隔空播放接收器”服务,从“系统偏好设置” -> “通用” -> “隔空投送与接力”,因为它已经使用了端口 5000。

MCP 服务器

MCP 服务器为使用模型上下文协议 (MCP) 的 AI 代理提供了一个标准化的接口:

推荐的测试和开发方法:

source .venv/bin/activate  # 激活您的虚拟环境
mcp dev src/image_gen_mcp/server.py

这将启动带有 FastMCP Inspector 的 MCP 服务器,以便更轻松地进行调试和测试。

直接运行 FastMCP 服务器(生产环境):

source .venv/bin/activate  # 激活您的虚拟环境
image-gen-mcp

用法

直接 API 访问

通过向图像生成服务器发送 POST 请求来生成图像:

curl -X POST http://localhost:5000/generate \
  -H "Content-Type: application/json" \
  -d '{"prompt": "A futuristic cityscape at sunset"}'

响应将包括访问生成的图像的 URL 以及元数据:

{
  "filename": "123e4567-e89b-12d3-a456-426614174000.png",
  "filepath": "generated_images/123e4567-e89b-12d3-a456-426614174000.png",
  "image_url": "http://localhost:5000/images/123e4567-e89b-12d3-a456-426614174000.png",
  "content_type": "image/png",
  "width": 512,
  "height": 512,
  "prompt": "A futuristic cityscape at sunset"
}

您可以通过返回的 image_url 直接访问生成的图像。

AI 代理的 MCP 接口

AI 代理可以使用 MCP 协议与服务交互。 测试 MCP 服务器的推荐方法是使用 FastMCP Inspector:

运行 MCP Inspector:

source .venv/bin/activate  # 激活您的虚拟环境
mcp dev src/image_gen_mcp/server.py

这将启动带有 FastMCP Inspector 的 MCP 服务器,它提供:

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

使用 FastMCP Inspector:

  1. 在浏览器中打开 http://127.0.0.1:6274
  2. 使用交互式界面来:
    • 探索可用的工具及其文档
    • 使用您自己的提示测试 generate_image 工具
    • 查看请求/响应历史记录
    • 调试 MCP 服务器的任何问题

MCP 响应将包括一个结构化的图像对象,其中包含 URL 和元数据:

{
  "status": "success",
  "result": {
    "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"
  }
}

此格式与 Goose 等 MCP 工具兼容,这些工具可以通过提供的 URL 显示图像,而不是直接将其嵌入到对话上下文中。

文件组织

  • generate_image.py - 使用 Stable Diffusion 的主图像生成服务器
  • src/image_gen_mcp/ - 包含 fastMCP 实现的包目录
    • server.py - fastMCP 服务器实现
    • __init__.py - 包初始化和 CLI 入口点
    • __main__.py - 允许将包作为模块运行

与 Goose 集成

要将此 MCP 服务器作为 Goose 中的扩展添加:

  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
    

集成后,您可以通过要求 Goose 使用特定提示生成图像,从而在 Goose 中使用图像生成工具。

服务架构

  1. 图像生成服务器 (generate_image.py)

    • 使用 Stable Diffusion 处理实际的图像生成
    • 提供一个简单的 HTTP API 用于图像生成
    • 返回图像 URL、尺寸和元数据
    • 包括一个直接端点来提供生成的图像
    • 在端口 5000 上运行
  2. MCP 服务器 (image-gen-mcp 包)

    • 为 AI 代理提供标准化的 MCP 接口
    • 将请求转发到图像生成服务器
    • 返回一个格式正确的 MCP 图像对象,其中包含 URL 和元数据
    • 可以以两种模式运行:
      • 直接模式(通过 image-gen-mcp 命令)
      • 带有 FastMCP Inspector 的开发模式(通过 mcp dev 命令)
    • 开发模式在 http://127.0.0.1:6274 提供一个 Web 界面

停止服务

如果在守护进程模式下运行,请停止图像生成服务器:

kill $(cat logs/server.pid)

对于在前台模式下运行的服务,请使用 Ctrl+C。

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python