mcpField
C
ComfyUI MCP Server

ComfyUI MCP Server

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

关于 ComfyUI MCP Server

ComfyUI MCP Server 是将 ComfyUI 接入 MCP 的服务实现,可让 MCP 客户端调用 ComfyUI 生成图片并运行工作流。使用前需要运行中的 ComfyUI 服务,适合希望通过 Agent 操作 ComfyUI 的用户。

主要功能

  1. 01文生图工具 text_to_image
  2. 02下载已生成图片的 download_image 工具
  3. 03通过 JSON 文件或数据运行工作流
  4. 04可添加自定义工作流作为新工具
  5. 05支持 Docker 部署与 SSE 传输

适用场景

  1. 01让 Agent 根据文字描述生成图片
  2. 02批量运行已保存的 ComfyUI 工作流
  3. 03在 Docker 环境中部署 ComfyUI 图像生成服务

MCP 相关

该服务向 MCP 客户端暴露 text_to_image、download_image、run_workflow_with_file 和 run_workflow_with_json 等工具,由它们调用 ComfyUI 服务。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

ComfyUI MCP 服务

1. 概述

  • 用于将 ComfyUI 集成到 MCP 的服务实现。
  • ⚠️ IMPORTANT:此服务需要运行中的 ComfyUI 服务。
    • 你必须自行托管 ComfyUI 服务,
    • 或拥有可访问的现有 ComfyUI 服务地址。
ComfyUI Server MCP server

2. 调试

2.1 ComfyUI 调试
python src/test_comfyui.py
2.2 MCP 调试
mcp dev src/server.py

3. 安装和配置

3.1 ComfyUI 配置
  • 编辑 src/.env,设置 ComfyUI 主机和端口:

    COMFYUI_HOST=localhost
    COMFYUI_PORT=8188
    
3.2 添加自定义工作流
  • 如需添加新工具,请将工作流 JSON 文件放入 workflows 目录,并在系统中将其声明为新工具。

4. 内置工具

  • text_to_image

    • 仅返回生成图像的 URL。
    • 如需获取实际图像:
      • 使用 download_image 工具,或
      • 在浏览器中直接访问该 URL。
  • download_image

    • 使用图像 URL 下载其他工具(如 text_to_image)生成的图像。
  • run_workflow_with_file

    • 提供工作流 JSON 文件的路径来运行工作流。

      # 你应当这样向 Agent 提出请求。
      Run comfyui workflow with text_to_image.json
      
    • CursorAI 示例图像 README 配图

  • run_workflow_with_json

    • 直接提供工作流 JSON 数据来运行工作流。

      # 你应当这样向 Agent 提出请求。
      Run comfyui workflow with this 
      {
        "3": {
            "inputs": {
                "seed": 156680208700286,
                "steps": 20,
          ... (workflow JSON example)
      }
      

5. 运行方式

5.1 使用 UV(推荐)
  • mcp.json 示例:

    {
      "mcpServers": {
        "comfyui": {
          "command": "uv",
          "args": [
            "--directory",
            "PATH/MCP/comfyui",
            "run",
            "--with",
            "mcp",
            "--with",
            "websocket-client",
            "--with",
            "python-dotenv",
            "mcp",
            "run",
            "src/server.py:mcp"
          ]
        }
      }
    }
    
5.2 使用 Docker
  • 使用 download_image 将图像下载到本地文件夹可能比较困难,因为 Docker 容器无法访问主机文件系统。
  • 使用 Docker 时,请考虑:
    1. 在 .env 中设置 RETURN_URL=false,以字节形式接收图像数据。
    2. 在 .env 中将 COMFYUI_HOST 设置为适当的地址(例如 host.docker.internal 或服务器的 IP)。
    3. 注意:使用二进制数据时,大型图像负载可能会超过响应限制。
5.2.1 构建 Docker 镜像
# First build image
docker image build -t mcp/comfyui .
{
  "mcpServers": {
    "comfyui": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p",
        "3001:3000",
        "mcp/comfyui"
      ]
    }
  }
}
5.2.2 使用现有镜像

也可以使用预构建镜像。

{
  "mcpServers": {
    "comfyui": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p",
        "3001:3000",
        "overseer66/mcp-comfyui"
      ]
    }
  }
}
5.2.3 使用 SSE 传输
  1. 使用 Docker 运行 SSE 服务:

    docker run -i --rm -p 8001:8000 overseer66/mcp-comfyui-sse
    
  2. 配置 mcp.json(如有需要,将 localhost 改为你的 IP 或域名):

    {
      "mcpServers": {
        "comfyui": {
          "url": "http://localhost:8001/sse" 
        }
      }
    }
    

NOTE:将新工作流添加为工具后,需要重新构建并部署 Docker 镜像,才能使用这些工作流。


评论

支持 Markdown

第一次接触 MCP?

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

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