项目简介

ComfyUI_MCP Server 是一个为ComfyUI设计的MCP服务端,旨在通过标准化的MCP协议,将ComfyUI的工作流(如文生图、图生图)封装成可供大型语言模型(LLM)或其他MCP客户端调用的工具,实现AI绘图等任务的自动化和集成。

主要功能点

  • 提供MCP标准接口: 通过Model Context Protocol (MCP) 标准与LLM或其他MCP客户端进行通信。
  • 封装ComfyUI工作流为工具: 将特定的ComfyUI工作流(如文生图、图生图)暴露为MCP工具(Tools),允许客户端通过调用这些工具来执行复杂的AI任务。
  • 配置驱动的工具扩展: 支持通过独立的配置文件(JSON)定义和扩展新工具的参数和行为,无需修改核心代码。
  • 自动注册工具: 服务器启动时自动发现并注册 'tools/' 目录下的工具模块。
  • 参数默认值与随机化: 工具参数支持在JSON配置中指定默认值,并可实现如随机种子等业务逻辑。
  • 支持多种传输协议: 项目使用'fastmcp'库,默认支持SSE(Server-Sent Events)等MCP定义的传输协议。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/ericwanghp/ComfyUI_MCP.git
  2. 进入项目目录:
    cd ComfyUI_MCP
  3. 安装Python环境: 确保您的系统安装了Python 3.12 或更高版本。
  4. 安装依赖: 推荐使用 uv 或 pdm 安装项目依赖('mcp'库、'httpx'等)。
    # 使用 uv (推荐)
    pip install uv
    uv pip install -r pyproject.toml
    
    # 或使用 pdm
    pip install pdm
    pdm install

服务器配置

您需要编辑 'mcp_server/mcp_server/config.ini' 文件,配置MCP服务自身监听的地址和端口,以及它将要调用的ComfyUI服务的地址和端口。例如:

[comfyui_server]
host = 127.0.0.1
port = 8188

[mcp_server]
host = 0.0.0.0
port = 8000
  • '[comfyui_server]': 指定您运行的ComfyUI实例的地址和端口。
  • '[mcp_server]': 指定此MCP服务将要监听的地址和端口,MCP客户端将连接到此处。

MCP客户端连接此服务时,需要指定启动此MCP服务的命令行及参数,以及连接地址。您需要在MCP客户端的配置中提供以下信息:

  • 服务器名称: 用于客户端界面显示(例如:"ComfyUI MCP Server")。
  • 启动命令 (Command): 用于启动MCP服务器进程的可执行文件或脚本路径(例如:'uv')。
  • 命令参数 (Args): 启动命令所需的参数列表(例如:'["run", "-m", "mcp_server.mcpserver"]')。
  • 连接地址 (URI): 服务器监听的地址和端口(例如:'http://127.0.0.1:8000'),请根据您在 'mcp_server/mcp_server/config.ini' 中 '[mcp_server]' 部分的配置进行修改。
  • 传输协议 (Transport): 与服务器通信的协议(例如:'sse'),本项目默认使用 SSE。

请查阅您使用的MCP客户端文档,以了解如何录入这些配置信息。

基本使用方法

  1. 启动ComfyUI: 确保您的ComfyUI实例正在运行,并其地址与 'config.ini' 中 '[comfyui_server]' 的配置一致。
  2. 启动MCP服务: 在项目根目录下,运行以下命令启动MCP服务(使用 uv):
    uv run -m mcp_server.mcpserver
    服务将默认以 SSE 模式启动,并监听在 'config.ini' 中配置的地址和端口。
  3. 连接客户端: 使用支持MCP协议的客户端(如MCP Inspector或兼容的LLM应用),通过配置中指定的地址(URI)、传输协议(Transport)、启动命令(Command)和参数(Args)连接到正在运行的MCP服务。
  4. 调用工具: 客户端连接成功后,可以发现MCP服务提供的工具列表(例如 'txt2img', 'img2img')。客户端可以通过JSON-RPC请求调用这些工具,并传递相应的参数(如绘图提示词、图片宽高、模型名称等)。
  5. 获取结果: MCP服务将接收请求,调用ComfyUI API执行任务,并将ComfyUI生成的结果(例如图片的Markdown格式链接)通过MCP协议返回给客户端。

信息

分类

AI与计算