项目简介
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定义的传输协议。
安装步骤
- 克隆仓库:
git clone https://github.com/ericwanghp/ComfyUI_MCP.git - 进入项目目录:
cd ComfyUI_MCP - 安装Python环境: 确保您的系统安装了Python 3.12 或更高版本。
- 安装依赖: 推荐使用 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客户端文档,以了解如何录入这些配置信息。
基本使用方法
- 启动ComfyUI: 确保您的ComfyUI实例正在运行,并其地址与 'config.ini' 中 '[comfyui_server]' 的配置一致。
- 启动MCP服务: 在项目根目录下,运行以下命令启动MCP服务(使用 uv):
服务将默认以 SSE 模式启动,并监听在 'config.ini' 中配置的地址和端口。uv run -m mcp_server.mcpserver - 连接客户端: 使用支持MCP协议的客户端(如MCP Inspector或兼容的LLM应用),通过配置中指定的地址(URI)、传输协议(Transport)、启动命令(Command)和参数(Args)连接到正在运行的MCP服务。
- 调用工具: 客户端连接成功后,可以发现MCP服务提供的工具列表(例如 'txt2img', 'img2img')。客户端可以通过JSON-RPC请求调用这些工具,并传递相应的参数(如绘图提示词、图片宽高、模型名称等)。
- 获取结果: MCP服务将接收请求,调用ComfyUI API执行任务,并将ComfyUI生成的结果(例如图片的Markdown格式链接)通过MCP协议返回给客户端。
信息
分类
AI与计算