ComfyUI-MCP-Server
ComfyUI-MCP-Server - ComfyUI Model Context Protocol Integration
[!NOTE] ⭐ 如果您喜欢该项目或觉得有帮助,请给项目点一个 Star,您的支持是我们持续改进的动力!
ComfyUI-MCP-Server 是一个基于 MCP(Model Context Protocol / 模型上下文协议)的服务器实现,将 ComfyUI 中用户定义的工作流转化为参数可配置的 MCP 工具,供 AI 代理(Agents)直接使用。
本项目提供 Python 与 TypeScript 两个独立语言版本,功能基本对等,可按需选用:
![]()
注:Python 版本带有更多实验性功能,TypeScript 版本则更稳定。
📋 项目功能
通过本项目,您可以通过连接ComfyUI从而赋予 AI 助手(如 Claude Desktop、Trae、Dify 等)强大的多媒体生成能力:
能力 | 说明 |
图像/视频生成 | 通过使用用户自定义工作流,驱动 AI 助手生成图像、视频等多媒体文件;支持 AI 修改由用户公布的节点参数以微调结果。 |
自定义工作流导入 | 可手动将 ComfyUI API 格式的 JSON 文件导入服务器工作流目录,自动完成校验与挂载后即可使用。 |
生成资产管理 | 生成完成后,自动将多媒体文件下载并保存至本地指定目录。 |
高级自定义执行 | 支持由 AI 自行提供完整 API JSON 直接调度 ComfyUI(高级模式)。 |
素材导入 | 支持从本地路径或 HTTP URL 将图片/视频素材上传至 ComfyUI 输入目录,供工作流直接调用。 |
Related MCP server: ComfyUI-MCP-Server-Python
✨ 项目特色
🔌 工作流即工具:将 ComfyUI 的节点图抽象为可供 Agent 使用的工具。
自定义参数暴露:可在工作流中精确定义哪些参数对外可见:
🔧 零侵入接入:无需修改 ComfyUI 本体或安装任何必要插件:
📥 自定义工作流导入:可手动导入 API 格式的工作流 JSON 文件,通过校验后即可对 Agent 可用,无需重启服务。
📂 资产管理:支持从本地路径或网络 URL 自动上传资源至 ComfyUI。
流式与进度支持:支持生成进度报告(需 Client/HOST 支持)。
🌍 国际化双语支持:内置中英文(zh-CN/inter、en)国际化。
标准 MCP 适配:全面支持 {{COD} 与 Streamable HTTP 通信协议。
🔬 Skills 支持:包含项目技能手册 SKILL.md,针对支持 Skills 的 AI 助手通过 Skills 进行深度优化。
更多详情可查阅 为什么选择我们
🧰 可用工具集
AI 代理可以通过 MCP 协议调用以下内置工具:
工具 | 工具名称 | 描述 |
| 获取项目核心主要 | 【系统指引】核心协议与操作字典。初始化或调用其他工具前必须优先读取,获取最新参数填充策略与报错。 |
| 获取工作流目录 | 【目录检索】获取当前网络中的所有工作流清单。亲及生图的指令必须精确匹配此清单,严禁伪造或猜测工作流名称。 |
| 获取工作流详情 | 【工作流API】读取目标工作流的全量底层拓扑JSON。体积比较非常巨大,仅在执行 流程出现异常需排查最底层逻辑时调用,严禁在常规业务中使用防污染上下文。 |
| 挂载工作流 | 【参数挂载】提取目标生成任务的支持交互参数Schema(屏蔽连线详情)。提交工作流任务前,必须调用此接口获取正确的参数键表。 |
| 执行工作流任务 | 【任务提交】创建 Prompt。底层自动执行计算节点并向 Host 实时同步进度。必须确保所有键名已通过校验,严禁编造键。 |
| 执行自定义工作流 | 【高级模式】直接提交完整的原始 ComfyUI API Prompt JSON。仅在调试底层方案或直接写入用户指令时开放,常规任务严禁使用。 |
| 保存自定义工作流 | 【保存工作流】将自定义参数化成工作流保存到服务器的工作流目录中并随后自动执行语法校验和挂载。提交的 JSON 必须符合规范(至少包含一处符合挂载规则的 ==名称== 结点),否则对象被拒绝保存。 |
用上述自动保存。 | 保存生成资产 | 【保存资产】获取指定任务 (prompt_id) 的执行历史,并将产生的所有多媒体生成物 (图片、视频、GIF 等) 下载并保存到指定的本地目录中。 |
| 取消任务 | 【任务取消】取消特定 |
| 获取任务结果 | 【输出快照与资产】获取特定 Prompt 执行完成后的节点快照,提取生成的目标媒体文件(图片/视频链接)或回溯 Traceback 诊断错误。 |
| 获取系统状态 | 【系统监控】采集内存、显存及 Python 运行时指标,用于排查 OOM 或服务死锁等底层异常。 |
| 检索模型文件 | 【模型目录】轮询本地磁盘模型存放区。参数涉及具体模型文件,必须调动加利校正,严禁随意伪造。 |
| ComfyUI导入资产 | 将本地文件或网络 URL 上传至 ComfyUI 服务器的 input 目录,以便在 workflow 中直接使用。 |
🏆 为什么选择我们?
特性 | ComfyUI MCP Server | 其他类似项目 |
自定义参数暴露 | ✅ 支持 | ❌ 有限支持或不支持 |
无需修改 ComfyUI | ✅ 完全支持 | ❌ 通常需要修改或插件 |
自然语言交互 | ✅ 支持 | ❌ 通常需要 API 调用 |
实时进度通知 | ✅ 支持 | ❌ 有限支持 |
多传输方式 | ✅ STDIO + HTTP | ❌ 通常仅支持一种 |
国际化支持 | ✅ 内置 | ❌ 通常仅支持英文 |
会话管理 | ✅ 完善 | ❌ 基础或无 |
更详情可查阅 为什么选择我们
🎬 演示视频
默认方式方式
点击下方图片观看演示视频。
API_JSON 方式
点击下方图片观看演示视频。
🚀 快速开始
仅需两步,快速启动项目。
提醒:安装启动项目后,还需查阅[使用教程],否则无法使用工作流相关功能。
准备工作(必需)
在启动本项目之前,请确保您的系统中存在以下软件
第一步:安装项目与依赖
1. 克隆本项目 在终端中执行以下命令:
git clone https://github.com/MetaBrain-Labs/ComfyUI-MCP-Server-TypeScript.git2. 移动到项目目录
cd ComfyUI-MCP-Server-TypeScript3. 安装依赖
npm install第二步:配置环境与启动项目
1. 环境配置
进入项目根目录,根据实际环境修改 .env 文件中的配置。
详细配置说明请查阅环境变量。
2. 连接与运行
根据您的需求选择传输方式:
[!TIP] MCP 传输机制说明
MCP 协议支持两种标准的服务器通信传输:
STDIO
Streamable HTTP
本项目两者皆支持,请根据您的 MCP Client能力选择。
您有责任确保使用这些服务器符合相关条款,以及适用于您的任何相关、规则、规定、政策或标准。
模式一:STDIO 连接 (推荐用于 Claude Desktop 等本地客户端)
MCP 客户端配置: 复制下述 JSON 内容到您的 Client 的 MCP 配置中并修改。
带有 STEP 表示。 部分 MCP Client 配置 MCP Server 的方法请查阅:[示例 其他项目设置请在环境变量中修改,参数详情见 环境变量 如果 ComfyUI 在云端运行,请将 "SYNC_MODE" 设置为 "manual"> GXP4
终端启动:
# 终端连接启动方式无需配置json,直接在项目根目录下执行:
npm run dev模式二:StreamHTTP 连接(推荐用于网络化/分布式部署)
MCP 客户端配置: StreamHTTP 的项目设置通过
[.env](./.env)中的配置指定,无需在下述 JSON 中配置。
[!NOTE]
部分 MCP 客户端配置 MCP Server 的方法请查阅:[示例]
目前支持 StreamHTTP 的 MCP Client/Host 较少,请按需使用。
如果 ComfyUI 在云端运行,请在 [.env] 中将 "SYNC_MODE" 设置为 "manual" GXP6
终端启动:
# 启动 Streamable HTTP
npm run dev至此,项目部署并启动完成。若需调试工具,请继续阅读下文;否则直接跳转至[使用教程]。
调试工具(MCP Inspector)
Inspector 是 MCP 官方提供的 MCP 调试工具,推荐使用 StreamHTTP 作为 Inspector 的连接方式。
克隆项目
安装相关依赖
npm install启动 StreamHTTP 连接方式的 Server:
# 1. 在终端 A 启动 HTTP 服务 npm run dev启动 Inspector:
# 2. 在终端 B 启动 Inspector npm run inspector
启动完成后,控制台中出现类似以下地址,复制该地址到浏览器后即可开始调试:
# 每次启动MCP_PROXY_AUTH_TOKEN都不一样,因此每次启动后需要及时切换链接
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=d66fcf6cbbb3723c60bfef51f020e5e96811002a675e7162b065b44f2fe377f3inspector 启动成功后,浏览器页面配置参考:

📖 使用教程
本项目需要对 ComfyUI 工作流进行简单的特定标记,以便 AI Agent 能准确识别和调用,可以用以下两种方式添加可用工作流:
标记规则(必须了解)
无论使用哪种方式添加可用工作流,都必须在其工作流中加入以下标记节点:
1. 定义工具名称与功能描述(必须)
新建一个
PrimitiveNode(基础节点) 或PrimitiveStringMultiline(多行字符串),无需连线。双击标题栏,修改节点标题为
==您的工作流名称==(例:==生图-文生图==)。注意:这是 AI Agent 将看到的工具名,请确保唯一。在该节点的文本输入框中,写下这段工作流的功能描述(例:"这是一个基础文生图流程,适合生成二次元图片")。描述越清晰,AI 越能准确判断何时调用。
[!TIP] 自动过滤: 本项目会自动忽略没有
==Workflow Name==格式的操作,确保 AI 只在划定的安全范围内操作,避免幻觉。

2. 暴露可自主修改的参数(可选)
如果您希望 AI 可以动态修改部分节点属性(例如:正向提示词、宽高尺寸、随机种子),需要暴露其参数。
找到目标节点(如:
CLIP Text Encode (Prompt)节点)。双击标题栏,修改其标题为
=>参数描述(例:=>正向提示词或=>生成的图片宽度)。保存后,本服务器会自动将其解析为 MCP 工具的可变参数,AI 调用时可以按需填入值。

方式一:在 ComfyUI 画板中设置(推荐)
使用于正在运行 ComfyUI 且支持新版工作流保存机制:
在 ComfyUI 中按照上述标记规则整理好节点。
点击 ComfyUI 面板上的 Save (保存) 按钮。
建议在保存后先自行测试一次 Queue Prompt (运行),确保工作流能正常跑通。
工作流将被保存至 ComfyUI 的用户数据目录(通常为
userdata/workflows/)。工作流生效时间视
SYNC_MODE配置而定:timed模式(默认):MCP 服务器会在后台定时轮询,自动发现新保存的工作流,并在校验通过后立即挂载成 AI Agent 可用的工具。manual模式:仅当 AI Agent 尝试调用工具时才触发按需扫描。push模式(实验性功能):需配合 ComfyUI 插件,实现保存后实时主动推送到服务器。
方式二:手动导入 API 格式 JSON 文件
适用于自动导入工作流或直接编写纯 API 格式的工作流文件:
准备好包含 ComfyUI API 格式 JSON 的工作流文件。
用文本编辑器打开该 JSON 文件,添加以下内容以符合核心标记规则:
工具名称: 在任意位置添加以下内容:
"99": { "inputs": { "value": "**功能描述**" }, "class_type": "PrimitiveStringMultiline", "_meta": { "title": "==工作流名称==" } }"99" 仅为示例,实际请使用未占用的节点 ID。 添加后请检查 JSON 格式,节点间需要逗号分隔,否则无法使用。
暴露参数: 找到需要让 AI 修改的参数所在节点,添加或修改
_meta对象中的"title": "=>参数描述"。
将修改后的 JSON 文件直接放入本项目的
workflow/目录下(目录不存在请手动创建)。工作流生效机制与上述相同,依据
SYNC_MODE模式:timed模式(默认):MCP 服务器将定时扫描该目录,自动解析参数并完成挂载。manual/push模式:工作流将在 AI Agent 下次请求工作流或执行工具时按需加载生效。
[!NOTE]
关于任务队列中出现错误/失败任务的说明
在使用本项目期间,ComfyUI 任务队列中可能偶尔出现报错红框或显示失败的任务。这是因为本 MCP 服务器需要在后台通过 ComfyUI 引擎静默校验您的工作流拓扑及节点合法性,以验证是否适合供 AI 调用。这属于正常现象,不会影响其他绘图和 AI 的正常工作,请放心忽略。
⚙️ 环境配置
[!TIP] 注意
下列是本服务器的全部环境配置参数及介绍,请优先阅读此部分。
下列环境参数中部分还未正式启用,未启用部分以后续计划为准。
# =============================================================================
# ComfyUI MCP Server - Configuration
# 配置文件说明:
# [User Config] 用户配置 —— 根据您的部署环境修改此区块
# [System Config] 系统配置 —— 保持默认即可,无需修改
# =============================================================================
# =============================================================================
# [User Config] 用户配置
# Modify this section based on your deployment environment.
# 根据您的部署环境修改以下内容。
# =============================================================================
# Language for MCP tool descriptions.
# MCP 工具描述的显示语言。可选值:en(英文)| zh(中文)
LOCALE=en
# -----------------------------------------------------------------------------
# ComfyUI Server Connection / ComfyUI 服务器连接
# -----------------------------------------------------------------------------
# Full URL of your ComfyUI server. No trailing slash.
# ComfyUI 服务器的完整地址,末尾不加斜杠。
COMFY_UI_SERVER_IP="http://192.168.0.171:8188"
# Host (without protocol) and port. Used separately for WebSocket connections.
# 主机名(不含协议头)和端口号,WebSocket 连接时单独使用。
COMFY_UI_SERVER_HOST="192.168.0.171"
COMFY_UI_SERVER_PORT="8188"
# -----------------------------------------------------------------------------
# Sync Mode / 同步模式
# -----------------------------------------------------------------------------
# Controls how the server detects workflow updates from ComfyUI.
# 控制服务器检测 ComfyUI 工作流更新的方式。
#
# timed — Background loop polls ComfyUI at a fixed interval. (default)
# 后台循环以固定间隔轮询 ComfyUI。(默认)
#
# push — [Experiments] ComfyUI plugin sends real-time save events; long fallback poll as safety net.
# Requires COMFY_UI_INSTALL_PATH (must be on same machine as ComfyUI).
# [实验性功能] ComfyUI 插件实时推送保存事件;兜底长轮询作为安全网。
# 需要配置 COMFY_UI_INSTALL_PATH(需与 ComfyUI 同机部署)。
#
# manual — No background loop. Refresh only when tools are called
# (get_workflows_catalog / mount_workflow / queue_prompt).
# 无后台循环,仅在调用工具时按需刷新
# (get_workflows_catalog / mount_workflow / queue_prompt)。
#
SYNC_MODE=timed
# Polling interval in seconds for timed mode.
# timed 模式的轮询间隔(秒)。
SYNC_POLL_INTERVAL_SECONDS=3
# Fallback polling interval in seconds for push mode (safety net for missed events).
# push 模式的兜底轮询间隔(秒),用于捕捉遗漏的推送事件。
SYNC_EVENT_FALLBACK_INTERVAL_SECONDS=300
# Cooldown in seconds between manual mode refreshes.
# Prevents excessive ComfyUI API calls when tools are called in quick succession.
# manual 模式两次刷新之间的冷却时间(秒),防止工具短时间内连续调用时频繁请求 ComfyUI API。
ONDEMAND_REFRESH_COOLDOWN_SECONDS=30
# -----------------------------------------------------------------------------
# Push Mode Plugin / 推送模式插件(仅 SYNC_MODE=push 时需要)
# -----------------------------------------------------------------------------
# Absolute path to your LOCAL ComfyUI installation root directory.
# Required when SYNC_MODE=push: MCP Server will automatically deploy a lightweight
# backend plugin that pushes workflow save events in real-time.
# Leave blank if ComfyUI runs on a remote machine or if using timed/manual mode.
#
# 本地 ComfyUI 安装目录的绝对路径。
# 使用 SYNC_MODE=push 时必填:MCP Server 会自动部署一个超轻量推送插件,
# 实现工作流保存后的实时推送通知。
# 若 ComfyUI 部署在远端机器上,或使用 timed/manual 模式,请留空。
#
# Windows 示例 / Example: COMFY_UI_INSTALL_PATH=C:/ComfyUI
# Linux 示例 / Example: COMFY_UI_INSTALL_PATH=/home/user/ComfyUI
COMFY_UI_INSTALL_PATH=
# -----------------------------------------------------------------------------
# Workflow Marker Patterns / 工作流标识符正则表达式
# -----------------------------------------------------------------------------
# Regex identifying the workflow name node (title of a PrimitiveStringMultiline node).
# Must contain ONE capture group that extracts the MCP tool name.
# Default matches titles like "==my_workflow=="
# 工作流名称节点的标识正则(PrimitiveStringMultiline 节点的 title)。
# 必须含一个捕获组提取工具名,默认匹配 ==名称== 格式。
WORKFLOW_NAME_REGEX=^==(.+?)==$
# Regex identifying configurable parameter nodes.
# Must contain ONE capture group that extracts the parameter description.
# Default matches titles like "=>prompt text"
# 参数节点的标识正则,必须含一个捕获组提取参数描述,默认匹配 =>描述 格式。
WORKFLOW_PARAM_REGEX=^=>(.+)$
# =============================================================================
# [System Config] 系统配置
# Internal settings — change only if you know what you are doing.
# 内部运行参数,通常无需修改。
# =============================================================================
# -----------------------------------------------------------------------------
# MCP Server / MCP 服务地址
# -----------------------------------------------------------------------------
# MCP server bind address and listening port.
# MCP 服务器的监听地址和端口(MCP 客户端连接此处)。
MCP_SERVER_URL="http://192.168.0.192:8189/mcp"
MCP_SERVER_IP="192.168.0.192"
MCP_SERVER_PORT="8189"
# -----------------------------------------------------------------------------
# Logging / 日志配置
# -----------------------------------------------------------------------------
# Minimum log level written to stderr.
# 输出到 stderr 的最低日志级别。
# DEBUG | INFO | WARNING | ERROR (default: INFO)
LOG_LEVEL=INFO
# Optional absolute path for a log file.
# When set, logs are written to BOTH stderr and this file.
# Leave blank to disable file logging.
# 可选:日志文件的绝对路径。填写后同时输出到 stderr 和文件。留空则不开启文件日志。
# LOG_FILE=
# Log file rotation size. Default: 10 MB
# 日志文件切割大小,默认 10 MB。
# LOG_ROTATE=10 MB
# Number of rotated log files to retain. Default: 7
# 保留历史日志文件个数,默认 7。
# LOG_RETAIN=7示例
Claude Desktop
点击下方图片观看演示视频。
Trae
点击下方图片观看演示视频.
🛠️ 故障排除
常见问题
WebSocket 连接失败
确保 ComfyUI 正在运行
检查 ComfyUI 的 WebSocket 端口配置
检查
.env中的COMFY_UI_SERVER_HOST与PORT是否准确配置。
工作流执行失败
检查提交的参数类型是否与目标节点的要求(Schema)匹配。
检查 ComfyUI 控制台是否有缺失自定义节点(Custom Nodes)的报错。
查看 MCP Client/Host 的 MCP Server 日志以获取详细错误。
会话过期
默认 HTTP 会话超时时间为 30 分钟。若进行超长视频渲染,可通过修改代码中的
SESSION_TIMEOUT常量来延长。
🔬 技术细节
核心协议
MCP(Model Context Protocol)
What is the model context protocol (MCP)? - Model Context Protocol
JSON-RPC 2.0
WebSocket(WebSockets)
REST API
技术限制与安全考量
依赖合规性:强依赖 ComfyUI 标准 API 与 WebSocket,不支持非 ComfyUI 格式的图拓扑。
安全验证:当前版本未实现强鉴权(Token/Auth),请不要
对外暴露在公网环境。建议在生产环境部署 HTTPS 及额外的网关层防护。
资源消耗:高并发调用可能导致 ComfyUI 宿主机显存溢出(OOM),请在 AI 系统提示词中限制并发请求频率。
工作流校验准确性
本项目将工作流校验准确性分为三种模式:
通过任务:根据已执行完毕且执行结果为SUCCESS的历史任务校验。
此方式可确保在模型等核心不受影响的情况下,保证工作流执行的成功率。
仅通过初始工作流:根据无历史任务或历史任务的执行时间在其对应工作流最新修改时间之前的工作流校验。
此方式仅会针对工作流进行初步校验——确保结点间联通无异常,但不保证工作流完整流程运行成功。
为保证生成图片的成功率,可考虑手动运行相关工作流。工作流完整流程运行成功之后,历史任务中会产生对应的任务记录,后续AI工具即可识别为通过任务历史校验。
外部导入:AI/用户自行提供的 API JSON 文件,在执行工作流前,无任何校验,不保证工作流完整流程运行成功。
此方式不受任何校验,一切校验交由ComfyUI后端进行,如API JSON文件格式、结点以及参数范围有问题,ComfyUI后端会进行拦截,并返回相应的报错信息。
此方式为兜底生成图片方式,仅在上述历史任务生成图片、初始工作流生成图片方式都不可用时采用。
🗺️ 后续计划
[!NOTE] 提醒
我们正积极扩展项目功能,如果您有好的建议,欢迎提交 Issue!
增强工作流解析:支持更复杂的嵌套节点与动态参数提取。
云服务集成:适配主流 ComfyUI 云端托管平台(鉴权与 API 映射)。
连接优化:优化 StreamHTTP 下的断线重连机制与状态保持。
性能面板:增加可视化的资源占用与任务排队状态反馈。
ComfyUI 插件:开发 ComfyUI 插件,实现与 MCP 服务的无缝集成。
🤝 贡献
欢迎贡献!欢迎随时提交 Pull Request。
贡献指南
Fork 项目
创建功能分支
提交更改
推送到分支
打开 Pull Request
📄 许可证
本项目基于 MIT 许可证开源—详情请参阅 LICENSE 文件。
本项目为第三方社区开源项目,并非 ComfyUI 官方产品,由 MetaBrain-Labs 贡献孵化。
📬 联系方式
(注:由于工作原因,邮件可能回复不及时,请优先使用 GitHub Issues)
问题/需求提交
MetaBrain-Labs(metabrain0302@163.com)
贡献者
TypeScript 版本作者:
LaiFQZzr(lfq2376939781@gmail.com)
Python 版本作者:
OldDeer(q1498823915@outlook.com)
免责声明
[!WARNING] 免责声明
我们目前没有官方网站。您在网上看到的任何相关网站均为非官方性质,与本开源项目无关,请自行甄别风险。
并且我们不提供任何收费服务,请用户注意TOKEN使用情况,产生的任何损失与本组织无关。
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP for RunComfy: ComfyUI deployments, hosted models, LoRA training. 31 tools.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Create images & video from any MCP agent — 17 models, spend limits, one URL.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceDynamically loads ComfyUI workflows as MCP tools, enabling AI assistants to generate images, videos, and audio by executing workflows across categories like text-to-image, image-to-video, and text-to-audio with automatic parameter mapping and progress monitoring.19,914 npm3MIT
- AlicenseNot gradedqualityDmaintenanceConverts ComfyUI workflows into MCP tools for AI agents to generate images, videos, and other multimedia content.6MIT
- AlicenseNot gradedqualityDmaintenanceExposes ComfyUI workflows as callable MCP tools, enabling LLMs to run image generation workflows via API.75 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceMCP server that enables AI agents to control a local ComfyUI instance for image generation, allowing workflow understanding, parameter modification, execution, and model discovery.14 npm3Apache 2.0