关于 Comfyui Mcp
Comfyui Mcp 是面向 ComfyUI 用户的 MCP 服务及 Claude Code 插件,可让 Agent 编排工作流、生成媒体并管理模型和自定义节点。它支持本地、远程 ComfyUI 和多种模型,并提供工作流诊断与图形编辑能力。
主要功能
- 01创建、编辑并执行 ComfyUI 工作流
- 02生成图像、视频和音频
- 03管理模型与自定义节点
- 04检查队列、日志和工作流故障
- 05可视化工作流并比较差异
- 06控制显存并监测任务进度
适用场景
- 01通过自然语言生成并迭代图像
- 02诊断失败的 ComfyUI 工作流
- 03在本地或远程安装上管理模型与节点
- 04比较工作流版本并检查任务进度
MCP 相关
它通过 MCP 工具向客户端提供 ComfyUI 工作流创建、执行、模型与节点管理等能力。可使用 stdio 或 HTTP 传输连接本地或远程 ComfyUI。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
41收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | enum | 是 | 要执行的 comfy-cli 操作。类别:status;server_*(生命周期);jobs_*(列表/状态/等待/监视/取消);search_nodes;workflow_*(验证/运行);transfer_*(上传/下载);models_*(列出文件夹/列出文件夹内容/搜索/显示/下载/移除);skills_*(列表/显示/验证/安装/状态/卸载)。status | server_start | server_stop | server_restart | jobs_list | jobs_status | jobs_wait | jobs_watch | jobs_cancel | search_nodes | workflow_validate | workflow_run | transfer_upload | transfer_download | models_list_folders | models_list_folder | models_search | models_show | models_download | models_remove | skills_list | skills_show | skills_validate | skills_install | skills_status | skills_uninstall |
| detail | enum | 否 | action:"status" — 要执行的检查类型。version | which | env | discover |
| workspace | string | 否 | 可选的 ComfyUI 工作区覆盖项(comfy-cli 用于自定义节点/模型的数据/基础目录)。否则使用实时的 --base-directory / COMFYUI_PATH;CLI 可执行文件仍可能来自 COMFYUI_CODE_PATH 检出目录的 .venv。 |
| launchArgs | array | 否 | 适用于 actions "server_start"/"server_restart" 的额外 ComfyUI 启动参数,例如 ['--listen','0.0.0.0','--port','8188']。 |
| promptId | string | 否 | 单个提示 ID。"jobs_status"/"jobs_watch"/"jobs_cancel" 和 "transfer_download" 必填;"jobs_wait" 可接受此参数(会将其规范化为包含单个元素的 promptIds 列表)。 |
| promptIds | array | 否 | action:"jobs_wait" — 要等待的提示 ID。使用此参数、promptId 或 all=true。 |
| all | boolean | 否 | action:"jobs_wait" — 等待所有已知作业。 |
| limit | integer | 否 | "jobs_list"、"search_nodes" 和 "models_*" 列表/搜索操作的结果上限。 |
| timeoutSeconds | integer | 否 | 操作 "jobs_wait"/"jobs_watch"/"workflow_run" — 最长等待秒数。 |
| where | enum | 否 | jobs/search_nodes/workflow/transfer/models 操作的目标:"local"(默认)或 "cloud"(Comfy Cloud)。local | cloud |
| query | string | 否 | action:"search_nodes" — 模糊搜索文本。必填。 |
| objectInfoPath | string | 否 | action:"search_nodes" — 用于搜索的离线 object_info JSON 文件,而非实时目标。 |
| workflowPath | string | 否 | 操作 "workflow_validate"/"workflow_run" — API/UI 工作流 JSON 文件的路径。必填。 |
| wait | boolean | 否 | action:"workflow_run" — 提交后等待输出,而不是立即返回。 |
| files | array | 否 | action:"transfer_upload" — 要上传的输入文件。必填。 |
| outDir | string | 否 | action:"transfer_download" — 输出目录。 |
| overwrite | boolean | 否 | action:"transfer_upload" — 设置为 false 以传递 --no-overwrite。 |
| urlOnly | boolean | 否 | action:"transfer_download" — 打印 URL,而不是下载文件。 |
| folder | string | 否 | action:"models_list_folder" — 要列出的模型文件夹(必填)。action:"models_show" — 可选文件夹,用于在同名文件中进行选择。 |
| text | string | 否 | action:"models_search" — 搜索文本。 |
| type | string | 否 | action:"models_search" — 模型类型筛选条件(checkpoint、lora、vae、…)。action:"models_show" — 相同筛选条件,用于在同名文件中进行选择。 |
| name | string | 否 | 操作 "models_show"/"skills_show" — 模型或技能名称。对于 models_show,相对路径(例如 vae/qwen_image_vae.safetensors)可用于在同名文件中进行选择。 |
| url | string | 否 | action:"models_download" — 要下载的模型 URL。必填。 |
| relativePath | string | 否 | 操作 "models_download"/"models_remove" — 相对于工作区的模型目录(默认 models/checkpoints)。 |
| modelNames | array | 否 | action:"models_remove" — 要移除的模型文件名。必填。 |
| path | string | 否 | action:"skills_validate" — 要验证的技能路径。必填。 |
| scope | enum | 否 | actions "skills_install"/"skills_uninstall"/"skills_status" — 安装范围。user | project |
| projectDir | string | 否 | 项目级技能操作的工作目录。scope='project' 时必填。 |
| targets | array | 否 | actions "skills_install"/"skills_uninstall" — Agent 目标。 |
| skills | array | 否 | actions "skills_install"/"skills_uninstall" — 技能名称。 |
| apply | boolean | 否 | actions "skills_install"/"skills_uninstall" — 实际执行更改;默认 false = 试运行。 |
详细介绍
comfyui-mcp — 用任意 LLM 驱动 ComfyUI
Agent 面板端到端驱动 ComfyUI。它会读取本地安装的内容,
连接工作流图,释放 VRAM,并运行渲染。
观看 76 秒演示 →
面向本地优先、原生支持 Agent 的 ComfyUI 控制平面。 它由 MCP 服务和实时侧边栏 Agent 组成,可生成图像、视频和音频,创建并运行工作流,管理模型和自定义节点,还能通过自然语言编辑 ComfyUI 实时工作流图。使用你拥有的任意模型:订阅中的 Claude 或 ChatGPT、通过 Google 登录使用的 Gemini、通过 Ollama 使用的免费本地模型(完全离线),或通过一个 API 密钥调用任意托管模型(DeepSeek、GLM、MiMo、Kimi、GPT,以及通过 OpenRouter 调用 Claude)。所有套餐使用相同的工具和面板,内置的 LLM Arena 会根据真实的 ComfyUI 任务为每个模型评分,让你了解自己的模型能做什么。一份配置即可连接本地安装、LAN、VPS 或 Comfy Cloud。
一键创建 GPU Pod。 在你自己的 GPU 上运行开箱即用的 ComfyUI,预装本项目、Agent Panel 和 ComfyUI-Manager v2。无需设置。
支持 macOS、Linux 和 Windows。自动检测 ComfyUI 安装位置和端口。
遇到问题或有疑问?加入 Discord,获取帮助、模型建议和版本公告。
38 个 MCP 工具 | 42 个 AI 技能(Flux · WAN · LTX 2.3 视频 · MiniMax H3 · Qwen · Z-Image · Ideogram 4 · ERNIE · ANIMA · 模型注册表 · Civitai · 节点创建 · 启动/性能标志) | 56 个安装包 | 11 个斜杠命令 | 4 个自主 Agent | 3 个钩子
该插件附带的技能会随每次发布不断扩展:针对特定模型的生成指南(包含精选下载 URL)、工作流配方、故障排查和自定义节点创建指南。有了这些技能,Claude 无需反复试错,就能为每种架构选出合适的采样器、CFG、分辨率和模型文件。
现已推出:ComfyUI Agent Panel,可在 ComfyUI-Manager 和 Comfy Registry 中使用
在 ComfyUI 侧边栏中运行的自主 AI Agent,可使用 Claude、ChatGPT、Gemini 或任意本地/托管大模型(Ollama 和所有兼容 OpenAI 的端点)。使用订阅服务无需 API 密钥;使用本地模型则完全无需账户。选择一个提供方,它就能操控当前图形:编辑、空间布局、一键加载工作流/资源包、回退/撤销、待处理消息栏、活动卡片、多标签页。使用付费 API 点数前会先征求同意。 在 ComfyUI-Manager 中搜索
comfyui-agent-panel进行安装。了解更多 →
完整文档:comfyui-mcp.artokun.io/docs
快速入门
1. 安装 ComfyUI(如果尚未安装):ComfyUI Desktop 或从源代码安装
2. 将 MCP 服务添加到 Claude Code 配置(~/.claude/settings.json):
{
"mcpServers": {
"comfyui": {
"command": "npx",
"args": ["-y", "comfyui-mcp"],
"env": {
"CIVITAI_API_TOKEN": ""
}
}
}
}
**3. 开始使用。**运行 ComfyUI 后,让 Claude 生成一张图像:
> Generate an image of a sunset over mountains
Claude 会查找(或下载)一个检查点,构建工作流、执行该工作流并返回图像。
注意:该服务以独立 MCP 服务的形式运行,因此无需克隆此代码库。
npx会下载并运行它。
范围:本地、远程或 Comfy Cloud
comfyui-mcp 优先支持本地运行。主要目标是在 Mac/Linux/Windows 上自托管的 ComfyUI;通过同一份配置,同一个 Agent 也能连接远程安装(RunPod、VPS、局域网、反向代理)。优先本地运行,但不局限于本地。
**不只是桥接。**大多数 ComfyUI MCP 服务只是轻量级连接器:转发提示词并返回图像。comfyui-mcp 则是一个完整的控制平面。它逐个节点创建和编辑图形,运行并迭代工作流,管理模型和自定义节点,还提供针对特定模型的专业知识(采样器、CFG、分辨率、精选模型 URL),让 Agent 无需反复试错就能正确完成任务。如果你只需要一个精简的本地中继,轻量级服务就够了。如果你希望 Agent 实际操控 ComfyUI,那就选这个项目。
对于 Comfy Cloud 用户,Comfy-Org 提供了自己的 Agent 工具:Comfy Cloud MCP(公开测试版,托管于 Comfy Cloud GPU)、Comfy In-App Agent(内部 Alpha 版,位于 Comfy Cloud 内)和官方 Comfy Local MCP(内部测试,尚未公开),均由 Comfy 团队维护。如果你没有 GPU,或者希望完全免配置,这是更合适的选择;请直接使用它们。
该项目的不同之处在于,它运行在你自己的安装环境上,并使用你自己选择的模型,包括通过 Ollama 使用无需账户且完全不联网的免费本地模型。comfyui-mcp 还支持社区云模式(设置 COMFYUI_API_KEY,参见部署模式),因此单个 MCP 服务可通过一份配置适配三种部署形态。
本地 Agent 与 Comfy Cloud Agent 对比提供了逐项对比,包括 Comfy Cloud 适合何种情况。(以上状态截至 2026 年 7 月。Comfy-Org 更新迅速,请查阅其文档了解当前状态。)
远程 / 托管连接器(一条命令)
要在 Claude Desktop 的自定义连接器或任何远程客户端中使用 comfyui-mcp,例如 Comfy 自有的 cloud.comfy.org/mcp 连接器,请用一个标志将其作为经过身份验证且可公开访问的 Streamable-HTTP 服务运行:
npx -y comfyui-mcp@latest --tunnel
这会强制使用 HTTP 传输,生成身份验证令牌,开启
cloudflared 快速隧道,并输出可直接粘贴的 https://…/mcp URL、令牌以及 Claude Desktop 连接器片段。
身份验证支持 Authorization: Bearer <token> 或 X-API-Key: <token>(与 Comfy Cloud 的惯例一致)。完整操作步骤和无头使用说明,请参阅
远程 / 托管连接器指南。
身份验证默认关闭。未设置
COMFYUI_MCP_HTTP_TOKEN且未使用--tunnel时,默认的 stdio(以及在环回地址上使用普通--http)行为保持不变。服务仍保持开放且仅限本地访问。OAuth(Comfy 的浏览器登录流程)计划在后续推出。
Claude Code 插件
此软件包也作为 Claude Code 插件发布,在 MCP 工具的基础上添加斜杠命令、技能、Agent 和钩子。
作为插件安装
# In Claude Code
/plugin marketplace add artokun/comfyui-mcp
/plugin install comfy
斜杠命令
| 命令 | 描述 |
|---|---|
/comfy:gen <prompt> | 根据文本描述生成图像——自动选择检查点、构建工作流并返回图像 |
/comfy:viz <workflow> | 将工作流可视化为 Mermaid 图表,并按类别对节点分组 |
/comfy:node-skill <pack> | 根据 Registry ID 或 GitHub URL,为自定义节点包生成 Claude 技能 |
/comfy:debug [prompt_id] | 诊断工作流失败原因——读取历史记录和日志、追踪根本原因并建议修复方案 |
/comfy:batch <prompt, params> | 扫描 cfg、采样器、步数、种子等参数并批量生成 |
/comfy:convert <file> | 在 UI 格式和 API 格式的工作流之间进行转换 |
/comfy:install <pack> | 安装自定义节点包——git clone、pip install,可选择重启 |
/comfy:gallery [filter] | 浏览生成的输出及其元数据——按日期、数量或文件名筛选 |
/comfy:compare <a vs b> | 并排比较两个工作流——显示新增 / 移除的节点和已更改的参数 |
/comfy:recipe <name> <prompt> | 多步骤配方:portrait、hires-fix、style-transfer、product-shot |
内置技能
共 42 项技能:模型系列指南(Flux、WAN、LTX 2.3、MiniMax H3、Qwen、Z-Image、Ideogram 4、ERNIE、ANIMA,以及 anime / WAN / Z-Image LoRA 训练)、model-registry(精选下载 URL)、civitai 配对技能、节点编写、launch/performance-flags 矩阵,以及下面列出的四项核心技能。完整列表见插件文档页。
安装包。
packs/汇集了 13 个一键式 ComfyUI 配置:ANIMA、Ideogram 4、LTX-2.3、ERNIE、WAN(animate / longer-videos / transparent)、Qwen(image / image-edit)、Z-Image(turbo / base / xy-plot)和 artokun-flow(WAN Animate:replace / animate)。每个配置包都包含自定义节点、模型 URL 和工作流清单,可用于apply_manifest,并生成install-windows.bat/install-runpod.sh;CI 会验证每个模型链接和载荷大小。请参阅packs/README.md。
| 技能 | 描述 |
|---|---|
| comfyui-core | 工作流格式、节点类型、数据流模式、管线架构、MCP 工具使用指南 |
| prompt-engineering | CLIP 权重语法 (word:1.3)、BREAK 标记、嵌入,以及针对 SD1.5/SDXL/Flux/SD3 的模型专属提示词编写方法 |
| troubleshooting | 常见错误目录——OOM、dtype 不匹配、节点缺失、NaN 张量、黑图、CUDA 错误,并附每种模型的显存估算 |
| model-compatibility | 兼容性矩阵——按模型系列列出加载器、分辨率、CFG、采样器、ControlNet、LoRA 和 VAE(SD1.5/SDXL/Turbo/Lightning/Flux/SD3/LTXV) |
Agent
| Agent | 模型 | 描述 |
|---|---|---|
| comfy-explorer | Sonnet | 研究自定义节点包——阅读文档、查询 /object_info、生成技能文件 |
| comfy-debugger | Sonnet | 自主诊断工作流故障——收集日志和历史记录、识别故障节点、检查模型和自定义节点、提出并按需应用修复方案 |
| comfy-optimizer | Sonnet | 分析工作流性能——检测冗余节点、VRAM 浪费、模型系列对应的错误 CFG/步数、精度问题,并提出优化建议 |
| comfy-researcher | Sonnet | 针对指定的图像生成问题,发现并筛选 ComfyUI 自定义节点包 |
钩子
| 事件 | 触发条件 | 操作 |
|---|---|---|
| PreToolUse | enqueue_workflow | VRAM 看门狗 — 通过 /system_stats 检查 GPU 内存,并在执行前发现可用内存 < 1GB 时发出警告 |
| PreToolUse | restart_comfyui(操作 stop/restart) | 保存警告 — 停止 ComfyUI 前提示用户保存未保存的工作流更改 |
| PostToolUse | 任意 comfyui 工具 | 任务完成通知 — 检查已完成的任务,并将完成摘要注入对话 |
后台脚本
| 脚本 | 描述 |
|---|---|
monitor-progress.mjs | 进度监视器 — 连接到 ComfyUI 的 WebSocket,实时报告步骤进度(例如,step 5/14 (36%))。将工作流加入队列后,作为后台 Bash 任务运行。报告完成情况及输出文件名,并报告包含节点详情的错误。替代循环轮询 queue(action:"status")。 |
面板 Agent(Claude · ChatGPT · Gemini · 任意本地/托管大模型)
除了无头 MCP 服务,此软件包还附带面板编排器,为 ComfyUI Agent Panel 提供支持。它是嵌入 ComfyUI 侧边栏的自主 Agent,可操控实时画布。它使用你自己的订阅(Claude 或 ChatGPT)在后台运行,并由面板的 Connect 按钮按需启动:
npx -y comfyui-mcp@latest connect
从自己的机器操控远程 ComfyUI(connect)
当 ComfyUI 运行在没有 Node 或 Agent 的环境中(例如 RunPod Pod 或云主机),你仍可在自己的机器上运行 Agent,并操控该远程 ComfyUI。云主机上无需登录 Agent,也无需在远程安装或配置任何内容:
npx -y comfyui-mcp@latest connect https://abcd1234-3000.proxy.runpod.net
这相当于使用 --panel-orchestrator,并根据 URL 设置 COMFYUI_URL。编排器在本地使用你的 Claude/ChatGPT 登录凭据运行,并通过其公共代理 URL 连接远程 ComfyUI。对于远程 HTTPS Pod,connect 会打开一个经 Cloudflare 的、由令牌保护的 wss:// 隧道,连接到本地 Agent 桥接服务,并将该 URL 交给 Pod 的面板,这样 Pod 的 HTTPS 页面就能在任何浏览器中连接到你的机器,而无需浏览器提示。由于混合内容和专用网络访问规则,安全页面无法通过普通 ws:// 套接字连接到你的机器。对于本地 ComfyUI,则使用普通的 ws://127.0.0.1:9199 环回桥接服务。添加 --insecure-bridge 可强制远程 Pod 使用该环回桥接服务,然后自行安排连接路径,例如使用 SSH 端口转发。无论哪种方式,面板 JS 都在本地浏览器中运行,Agent 和你的登录凭据也只在你的机器上运行,因此无需远程安装任何内容。
要完成连接,请保持 connect 在你的机器上运行,在浏览器中打开远程 ComfyUI,然后点击 Agent 面板中的 Connect。该面板是纯前端扩展。它会连接到 connect 进程已在提供服务的桥接端,而不是要求 ComfyUI 主机启动其无法运行的编排器。
多提供方,完全对等。 编排器依赖与提供方无关的 AgentBackend 接口(依赖注入),并配有两个适配器:
ClaudeBackend封装了 Claude Agent SDK (@anthropic-ai/claude-agent-sdk),通过 claude.ai 订阅提供持久化流式会话 (OAuth,无需密钥)。CodexBackend通过codex app-serverJSON-RPC 协议(@openai/codex)封装 OpenAI Codex,使用 ChatGPT 订阅(codex login,无需密钥)。
更多适配器遵循相同接口:Gemini CLI(ACP)、Antigravity
(agy,Google AI Pro/Ultra 订阅路径;从
antigravity.google 安装并运行一次 agy 以
登录)、Grok、Kimi、GLM、Ollama/LM Studio/llama.cpp(本地)、OpenRouter,以及
任何兼容 OpenAI 的端点。完整列表见
docs/backends。
两者都是可选依赖,面板选择的是提供方,而非接口。每个后端都在各自的回环桥接端口上运行自己的编排器。功能矩阵会告知面板每个后端支持哪些功能(例如,目前只有 Claude 支持对话回滚,因为 Codex app-server 只能恢复整个对话线程)。
所有提供方的实时画布工具和模型知识完全相同。 panel_* 工具定义存放在同一个共享列表中,并注册到进程内的 Claude SDK MCP 服务,以及编排器为 Codex 托管的、基于回环可流式传输的 HTTP MCP 服务(Codex 只能托管通过配置声明的 MCP 服务)。无头 comfyui MCP 同样会注入两者:对 Claude 在进程内注入,对 ChatGPT 则通过 codex app-server -c mcp_servers 声明。因此,各处的生成、模型和工作流工具都相同。
新增工具让所有后端拥有相同的专业知识,并提供成本保护:
| 工具 | 描述 |
|---|---|
list_packs(action: "skill_list" / "skill_read") | 发现并读取随附的模型系列和工作流技能——Claude 原生加载的知识,现已开放给任何 MCP 客户端(例如 Codex 后端) |
list_packs(action: "list" / "read_workflow") | 列出一键安装包(自定义节点 + 权重 + 就绪工作流;均使用本地 GPU / 免费),并读取安装包的图结构 |
list_packs(action: "list_templates") | 列出已连接的 ComfyUI 中由自定义节点提供的工作流模板 |
list_packs(action: "check_runtime") | 将工作流归类为 本地(使用你的 GPU,免费)或 api / mixed / unknown(托管 API 节点会消耗付费额度),以便 Agent 在使用付费 API 额度前征求同意 |
list_packs(action: "extract_deps" / "install_deps") | 确定工作流所需的自定义节点包,并通过 ComfyUI-Manager 安装缺少的包 |
panel_load_workflow | (面板工具)一次性将完整工作流加载到实时画布上——可按随附的 pack 名称(在服务器端读取,不会通过聊天传输)或图结构 JSON 加载 |
panel_strip_workflow / panel_slice_workflow | (面板工具)将纠缠的图结构反虚拟化(Get/Set 总线、Reroute、子图、旁路 → 实际连接),或从大型图中裁剪出一个由 rgthree 切换的流水线——可使用 pack、服务器端 path 或内联图;用于理解/重建专家工作流,无需手动追踪 |
MCP 工具
涵盖工作流执行、生成、迭代、组合、模型等的 38 个工具:
图像生成(高级)
| 工具 | 描述 |
|---|---|
generate_image action: "image" | 根据文本提示词生成图像——构建 txt2img 工作流,使用默认值填充未指定的参数,并自动选择检查点 |
generate_image action: "controlnet" | 根据 ControlNet 图像(姿势/深度/canny/法线)和提示词进行条件生成 |
generate_image action: "ip_adapter" | 通过 IP-Adapter 根据参考图像的风格/主体进行引导生成(需要 ComfyUI_IPAdapter_plus) |
generate_image action: "video" / "3d" | 从同一个单行入口生成短视频片段(LTX-2.3,本地 GPU)或 3D 模型(托管合作伙伴 API 节点) |
generate_image action: "upscale" | 使用 ESRGAN 超分辨率对上传或暂存的图像进行后期处理 |
| generate_image (action:"remove_background") | 将上传或暂存的图像后期处理为透明的 BiRefNet 抠图 |
音频生成(高级)
| 工具 | 描述 |
|---|---|
generate_image action: "audio" | 根据文本提示词生成音频——支持 ACE Step 1.5(带歌词/结构的音乐)和 Stable Audio 3(音乐、乐器、音效);自动选择本地模型 |
素材与迭代
| 工具 | 描述 |
|---|---|
get_image (action:"view") | 将生成素材的字节作为内嵌图像返回,以便 Agent 查看结果 |
get_image (action:"analyze_color") | 分析生成图像的调色板/对比度/颜色统计数据(主色、平均值和亮度统计、对比度检查),让 Agent 无需视觉往返即可推理颜色 |
| generate_image (action:"regenerate") | 使用可选的参数覆盖,重新运行生成 asset_id 的工作流 |
get_image (action:"list_assets") | 按 asset_id 浏览最近生成的素材(最新的排在前面) |
get_image (action:"asset_metadata") | 查看素材的完整溯源信息,包括其来源工作流 |
默认值
| 工具 | 描述 |
|---|---|
get_defaults action:"get" | 显示合并后的生成默认值及各来源的归属信息 |
get_defaults action:"set" | 更新运行时默认值;persist: true 会写入配置文件 |
get_defaults action:"get_ui" / "set_ui" | 读取/写入 ComfyUI 自己的前端 UI 设置(Comfy.* ID)——与上述生成默认值分开存储 |
工作流执行
| 工具 | 描述 |
|---|---|
enqueue_workflow action: "enqueue" | 提交工作流(API 格式的 JSON)——立即返回 prompt_id,不阻塞 |
enqueue_workflow action: "rerun" / "run_url" / "template_schema" | 重新运行过去的生成,或从 URL 读取/运行共享工作流,或检查内置模板中可覆盖的插槽 |
| enqueue_workflow (action:"run_template") | 一步完成:解析内置资源包的专家图,将 <nodeId>.<widget> 覆盖项应用到图中,并将其加入队列 |
queue | 用于执行队列的单个动作参数化工具:list(运行中和待处理任务)、status(按提示 ID 查询单个任务)、get_workflow(获取待处理任务的完整负载)、move/edit(将待处理任务重新排入队列前端/后端,可打补丁或替换,并生成新的提示 ID)、cancel(中断运行中的任务——依次执行 interrupt → verify → /free;若任务无法终止,则报告 WEDGED;clear_pending: true 还会删除所有待处理任务)、cancel_queued、clear |
get_system_stats | 获取系统信息——GPU、VRAM、Python 版本、操作系统 |
工作流可视化
| 工具 | 描述 |
|---|---|
visualize_workflow | 用于渲染和转换所传入工作流的单个动作参数化工具:render(Mermaid 流程图,按类别对节点分组)、render_hierarchical(将同一图表分节展示——概览、单节详细信息、列表或面向 AI 的摘要)、mermaid(将 Mermaid 图表转换回可执行的工作流 JSON)、to_dsl/from_dsl(紧凑且可无损往返的创作 DSL) |
工作流编排
| 工具 | 描述 |
|---|---|
create_workflow | 一个按操作参数化的工具,用于编写工作流:create(基于模板:txt2img、img2img、upscale、inpaint、controlnet、ip_adapter、ace_step_15、stable_audio_3)、modify(操作:set_input、add_node、remove_node、connect、insert_between)、validate(试运行——检查缺失节点、断开的连接、无效的输出索引、缺失的模型文件)、node_info(从 ComfyUI 的 /object_info 端点查询可用的节点类型) |
工作流库
| 工具 | 描述 |
|---|---|
get_workflow | 一个按操作参数化的工具,用于读取已保存的工作流文件:list(用户库,包含子文件夹)、get(按文件名获取单个工作流的 JSON)、analyze(返回结构化摘要,而非原始 JSON)、query(筛选/遍历/汇总大型图,不必完整输出)、strip(去虚拟化任意工作流,来源可以是绝对路径、库文件名或内联图——将 GetNode/SetNode 总线、Reroutes、子图定义和旁路节点解析为实际连接,并返回扁平图;可在服务端读取任意路径,因此能加载缓存库无法读取的临时/专家工作流)、slice(取消分块切换模板的整体工作流——将一个由 rgthree Fast-Groups-Bypass 切换的流水线拆分为独立的已激活图;搭配 strip 可进一步扁平化总线)、from_image(ComfyUI 嵌入 PNG 中的工作流)、prompt_director(Prompt Director 清理后的运行时状态) |
save_workflow | 一个按操作参数化的工具,用于写入库:save(保存工作流——覆盖同名文件)、lock(记录来源锁定信息:每个模型的 SHA-256、每个节点包的 git 提交)、verify_lock(报告与该锁定信息的偏差) |
图像管理
| 工具 | 描述 |
|---|---|
upload_image | 将本地图像复制到 ComfyUI 的 input/ 目录,以供 img2img、inpaint 或 ControlNet 使用 |
get_image (action:"list_outputs") | 浏览输出目录中最近生成的图像和视频,按最新优先排序——递归搜索子文件夹(例如 SaveVideo 的 output/video/…),并返回每个结果的 subfolder |
模型管理
| 工具 | 描述 |
|---|---|
download_model | 查找并获取模型权重,并跟踪传输状态。action:download(从 URL 下载到 ComfyUI 对应的子目录)、status、cancel、search(HuggingFace)、search_civitai、search_creators、download_civitai、resolve_missing |
list_local_models | 查看已安装的模型及 ComfyUI 的搜索位置。action:list(按类型列出已安装的模型:checkpoints、loras、vae、upscale_models、controlnet、embeddings、clip、unet、diffusion_models、text_encoders)、remove(删除模型文件)、embeddings、list_paths、add_path、remove_path(后三项用于查看/编辑额外搜索路径的 YAML 文件) |
内存管理
| 工具 | 描述 |
|---|---|
clear_vram | 通过卸载缓存的模型释放 GPU VRAM——调用 ComfyUI 的 /free 端点,并报告操作前后的统计信息 |
注册表与发现
| 工具 | 描述 |
|---|---|
search_custom_nodes | 按关键词搜索 ComfyUI Registry 中的节点包(action: "search"),或获取单个节点包的完整详情(action: "details") |
list_packs(action: "generate_skill") | 根据 Registry ID 或 GitHub URL 生成 Claude skill .md 文件 |
comfy_cli | 通过官方 comfy nodes search 搜索实际已加载的节点类(action:"search_nodes") |
官方 comfy-cli
安装 comfy-cli 1.11.1 或更高版本,以启用官方的 JSON 支持工具。MCP 会从 COMFY_CLI_PATH、PATH 或所选工作区的 .venv/venv 中解析 comfy。本地自定义节点操作会优先使用 comfy node(如果有受支持的 CLI),否则回退到 Manager HTTP;远程目标仍使用 Manager HTTP。
| 工具 | 描述 |
|---|---|
comfy_cli | 一个通过操作参数支持整个官方 CLI 的工具:status、server_start/server_stop/server_restart、jobs_list/jobs_status/jobs_wait/jobs_watch/jobs_cancel、search_nodes、workflow_validate/workflow_run、transfer_upload/transfer_download、models_*(list/search/show/download/remove)、skills_*(list/show/validate/install/status/uninstall) |
诊断
| 工具 | 描述 |
|---|---|
get_system_stats (action:"logs") | 获取 ComfyUI 服务日志,可选关键词筛选(例如 error、warning、节点名称) |
kitchen | 查看 comfy-kitchen 在此 GPU 上能做什么(status)、找出图中未能充分利用它的地方(assess),并应用更快的路径(apply)——探测失败意味着未知,绝不代表否定 |
get_history action: "list" | 获取执行历史记录,包含完整错误详情、Python 回溯、耗时和缓存的节点信息 |
get_history action: "diagnose" | 一次调用即可说明 FAILED 运行的情况——失败节点和回溯,以及缺失的模型(文件 + 控件)和缺失的节点类型 |
进程控制
| 工具 | 描述 |
|---|---|
restart_comfyui action:"restart" | 停止并重启 ComfyUI,同时保留所有启动参数 |
restart_comfyui action:"stop" | 停止正在运行的 ComfyUI 进程(保存 PID 和启动参数以便重启;在 Windows 上,action:"start" 无法重新启动它) |
restart_comfyui action:"start" | 使用上次停止时保存的信息启动 ComfyUI(macOS/Linux;Windows 上会拒绝执行) |
restart_comfyui action:"status" | 只读:查看此时执行 start/stop/restart 会发生什么,以及此工具能否撤销 stop。请在执行 stop 前调用 |
生成追踪器
| 工具 | 描述 |
|---|---|
get_history action: "suggest" | 根据本地生成历史记录推荐经过验证的采样器/调度器/步数/CFG 设置——可按模型系列、LoRA 哈希或文本搜索查询 |
get_history action: "stats" | 显示本地生成追踪统计信息——运行总数、唯一组合数、按模型系列划分的明细 |
每次调用 enqueue_workflow 都会将设置记录到本地 SQLite 数据库(generations.db)。重复的设置组合会增加 reuse_count,而不是创建重复行,因此该计数可作为受欢迎程度指标。追踪器通过内容哈希(AutoV2 / SHA256)识别模型和 LoRA,而非文件名,因此重命名后的文件仍会归为一组。
# View local stats from the CLI
npm run generations:stats
示例
生成图像
> /comfy:gen a cyberpunk city at night with neon lights
Claude 将会:
- 检查已安装的检查点(如有需要则下载一个)
- 使用你的提示词构建 txt2img 工作流
- 在 ComfyUI 上执行
- 返回生成的图像
可视化工作流
> /comfy:viz ~/workflows/my-workflow.json
生成 Mermaid 图表,并按类别对节点分组:
flowchart LR
subgraph Loaders
1["CheckpointLoaderSimple"]
end
subgraph Conditioning
2(["Positive Prompt"])
3(["Negative Prompt"])
end
subgraph Sampling
5{{"KSampler<br/>steps:20 cfg:8"}}
end
1 -->|MODEL| 5
2 -->|CONDITIONING| 5
3 -->|CONDITIONING| 5
调试失败的工作流
> /comfy:debug
读取最近的执行历史记录和日志,确定失败节点,检查是否缺少模型或节点包,并提出修复建议。
> /comfy:debug abc123-def456
按提示 ID 诊断特定执行。
参数扫描
> /comfy:batch a cat in a field, cfg:5-10:2, sampler:euler,dpmpp_2m
生成涵盖所有参数组合的图像网格,并提供包含结果的汇总表。
支持的扫描参数:cfg、steps、sampler、scheduler、seed、denoise、width、height。
多步配方
> /comfy:recipe hires-fix a dramatic fantasy landscape with castles
分两步运行:先以 512x768 执行 txt2img,再通过 img2img 放大至 1024x1536 并增加细节。
可用配方:
| 配方 | 描述 |
|---|---|
portrait | 以 1024x1024 生成,然后放大 2x 至 2048x2048 |
hires-fix | 低分辨率生成 → 使用 0.4-0.5 的去噪强度通过 img2img 放大 |
style-transfer | 通过 img2img 将风格提示词应用到现有图像 |
product-shot | 使用纯白背景生成产品图像 |
转换工作流格式
> /comfy:convert ~/workflows/my-ui-workflow.json
在 ComfyUI 的 UI 格式(节点 + links 数组)和 API 格式(节点 ID → {class_type, inputs})之间转换。
安装自定义节点包
> /comfy:install comfyui-impact-pack
搜索注册表、显示详情、将仓库克隆到 custom_nodes/、安装依赖,并提供重启 ComfyUI 的选项。
浏览输出图库
> /comfy:gallery last 5
> /comfy:gallery today
列出最近的输出,并显示每张图像嵌入的元数据:checkpoint、提示词、seed、steps、CFG 和 sampler。
比较工作流
> /comfy:compare workflow-a.json vs workflow-b.json
显示新增/移除的节点、已更改的参数(旧值 → 新值),并可选择使用 Mermaid 图表进行直观比较。
运行前验证
> Validate this workflow before I run it
检查缺失的节点类型、损坏的连接、无效的输出索引和缺失的模型文件,但不执行工作流。
管理模型
> What checkpoints do I have installed?
> Search HuggingFace for SDXL turbo models
> Download this model to my checkpoints folder
管理 VRAM
> Free my VRAM
> What embeddings do I have?
从图像提取工作流
> Extract the workflow from this image: ~/outputs/ComfyUI_00042_.png
读取 PNG 元数据块,以恢复用于生成图像的确切工作流和提示词。
探索自定义节点
> /comfy:node-skill comfyui-impact-pack
生成技能文件,记录每个节点及其输入/输出和使用模式。
进程控制
> Restart ComfyUI
> Stop ComfyUI
> Start ComfyUI back up
配置
服务会自动检测 ComfyUI 的安装位置和端口。如有需要,可使用环境变量覆盖。
密钥和覆盖项的配置位置:
- 面板用户。 使用 API Keys 卡片(“connected”旁边的 ▾ 菜单)。密钥存储在
~/.comfyui-mcp/panel-secrets.json中,无需重启即可生效。 - 仅使用 MCP 的配置(Claude Desktop、Claude Code 等)。使用 MCP 客户端配置中的
env区块,如上方设置示例所示。 - 实际环境变量的优先级始终高于已存储的密钥。开发时,服务还会将
~/.comfyui-mcp/.env作为覆盖文件加载;常规安装通常不需要该文件。
部署模式
comfyui-mcp 会根据环境自动选择以下三种模式之一:
| 模式 | 触发条件 | 本地 FS / 进程工具? |
|---|---|---|
| 本地 | 默认 | 是 |
| 远程 | --comfyui-url / COMFYUI_URL 指向非环回主机,或设置了 --force-remote | 否 — 服务会跳过 COMFYUI_PATH 自动检测,以免过时的本地安装意外接收上传内容 |
| 云端 | 设置了 COMFYUI_API_KEY(目标为 Comfy Cloud) | 否 — HTTP 基础操作通过 X-API-Key 路由至 cloud.comfy.org;WebSocket 和仅限本地的工具会抛出 CLOUD_UNSUPPORTED |
某些配置(例如使用 dstack 在 RunPod 上运行 ComfyUI)会将远程 ComfyUI 端口转发回 localhost:8188,因此上述环回检查会将其误判为本地安装。添加 --comfyui-url/COMFYUI_URL,并传入 --force-remote(或设置 COMFYUI_MCP_FORCE_REMOTE=1),即可无论主机名如何都强制使用远程模式:
npx -y comfyui-mcp@latest --comfyui-url http://localhost:8188 --force-remote
| 变量 | 默认值 | 说明 |
|---|---|---|
COMFYUI_URL | 完整的 ComfyUI URL,例如 https://comfy.example.com:8443 — 覆盖 COMFYUI_HOST/PORT/SSL,并跳过自动检测。路径前缀会保留(例如 https://host/comfyapi),适用于通过反向代理的实例。非环回主机将启用远程模式。 | |
COMFYUI_MCP_FORCE_REMOTE | 设置为 1/true(或传入 --force-remote),即可强制启用远程模式,即使 COMFYUI_URL/--comfyui-url 解析为环回主机也不例外 — 适用于可通过 localhost 访问的端口转发远程安装(例如 dstack/RunPod)。未设置 COMFYUI_URL/--comfyui-url 时无效。 | |
COMFYUI_HOST | 127.0.0.1 | ComfyUI 服务地址 |
COMFYUI_PORT | (自动检测) | ComfyUI 服务端口(先尝试 8188,再尝试 8000) |
COMFYUI_PATH | (自动检测) | ComfyUI 数据/基础目录的路径,用于存放模型、输入/输出和用户状态。在常规安装中,这也是代码检出目录。远程/云模式下不执行自动检测。 |
COMFYUI_CODE_PATH | COMFYUI_PATH | ComfyUI 代码检出目录的可选路径(包含 main.py、.venv、核心 Git),适用于代码和数据位于不同根目录的情况。Pip、venv 和核心更新使用此代码检出目录(核心更新优先使用从已连接的本地服务获取的代码检出目录,并以此路径作为回退)。Pack 读写 — custom_nodes、comfy-cli --workspace、apply_manifest 克隆/检出、workflow-lock pack 提交 — 仍使用实时的 --base-directory / COMFYUI_PATH 数据根目录(#1770)。 |
COMFY_CLI_PATH | (自动检测) | 官方 comfy 可执行文件(comfy-cli >=1.11.1)的路径。解析时也会检查 PATH 和所选工作区的 .venv/venv。 |
COMFYUI_PYTHON | python | 旧版 Git 克隆依赖回退方案使用的 Python 解释器。必要时将其指向 ComfyUI 虚拟环境中的 Python。 |
COMFYUI_MCP_BRIDGE_HOST | 127.0.0.1 | 面板桥接的绑定主机。设置为 0.0.0.0(或 LAN IP),即可在 24/7 运行的服务上运行编排器,并从其他设备连接面板 — 必须提供令牌(见下文);编排器会输出可直接粘贴的 ws://…/?token=… 桥接 URL。 |
COMFYUI_MCP_BRIDGE_TOKEN | (需要时生成) | 用于限制所有桥接连接的共享密钥(在 WS 升级时以恒定时间进行校验)。COMFYUI_MCP_BRIDGE_HOST 非环回时必须设置;固定此令牌可确保桥接 URL 在重启后仍然有效。除启动横幅外,绝不会记录此令牌。 |
COMFYUI_MCP_DATA_DIR | ~/.comfyui-mcp | 当不存在本地 COMFYUI_PATH(远程/云/未检测到)时,用于存放每个实例数据的基础目录(get_history action: "suggest" 使用的 generations.db)。按目标存放于 instances/<host_port>/ 下。 |
COMFYUI_API_KEY | Comfy Cloud API 密钥。设置后将启用云模式,服务会与 cloud.comfy.org 通信。绝不会记录此密钥。 | |
COMFYUI_CLOUD_URL | https://cloud.comfy.org | 覆盖 Comfy Cloud 端点(用于测试/预发布)。 |
COMFYUI_AUTH_TOKEN | 用于位于反向代理/API 网关之后的可自托管 ComfyUI的通用认证令牌(不同于 Comfy Cloud)。设置后,会将其附加到每个 ComfyUI 请求中。绝不会记录此令牌。 | |
COMFYUI_AUTH_HEADER | Authorization | COMFYUI_AUTH_TOKEN 的标头名称(例如 X-API-Key)。 |
COMFYUI_AUTH_SCHEME | Authorization 对应 Bearer,否则无 | 令牌值的方案前缀(例如 Bearer、Token)。 |
CIVITAI_API_TOKEN | 用于下载模型的 CivitAI API 令牌 | |
HUGGINGFACE_TOKEN | 用于提高 API 速率限制的 HuggingFace 令牌 | |
COMFYUI_DOWNLOAD_PROXY | 仅用于模型下载流量的可选 HTTP/HTTPS 代理;也支持标准代理环境变量和静态 Windows WinINet 设置 | |
GITHUB_TOKEN | 用于生成技能的 GitHub 令牌(可避免速率限制) | |
REGISTRY_ACCESS_TOKEN | 用于 node_pack(action: "publish")的 Comfy Registry API 密钥(仅从环境变量读取,绝不会记录) | |
COMFYUI_DOWNLOAD_CACHE_DIR | ~/.comfyui-mcp/cache | 基于内容寻址的模型下载缓存(去重 + 并发合并) |
COMFYUI_LRU_CACHE_SIZE_GB | 0 | 以 GB 为单位限制下载缓存大小;0 表示禁用 LRU 淘汰 |
COMFYUI_STARTUP_CHECK_INTERVAL_S / …_MAX_TRIES | 1 / 60 | 启动本地 ComfyUI 时的就绪探测间隔和最大尝试次数 |
COMFYUI_ALWAYS_RESTART | false | 自动重启崩溃的本地 ComfyUI(受 COMFYUI_RESTART_MAX_ATTEMPTS / COMFYUI_RESTART_WINDOW_S 限制) |
COMFYUI_MCP_STALL_S | 180 | 渲染卡死监视器:采样器步骤重复报告相同进度的秒数;超过后会在 Agent 的下一轮消息前添加 STALL/BACKLOG 提示(限制为 15–3600 秒;可从面板实时调整) |
COMFYUI_MCP_INTERRUPT_S | 30 | queue(action:"cancel")等待中断实际停止任务的秒数;超时后会升级为 /free,并报告任务卡死 |
LOG_LEVEL | info | 日志详细程度:debug、info、warn、error |
传输方式
服务默认使用 stdio,这是 Claude Code、Claude Desktop 和 MCP Inspector 所要求的,因此无需设置任何标志。对于 MCP 网关、远程/托管环境或基于 fetch 的客户端,可选择使用 streamable-HTTP:
# stdio (default)
npx -y comfyui-mcp@latest
# streamable-HTTP on http://127.0.0.1:9100/mcp
npx -y comfyui-mcp@latest --http
npx -y comfyui-mcp@latest --http --host 0.0.0.0 --port 9100 # bind/port overrides
| 标志 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
--http / --transport http | MCP_TRANSPORT=http | stdio | 在 /mcp 上提供 streamable-HTTP 服务,而非 stdio |
--host <h> | MCP_HOST | 127.0.0.1 | HTTP 绑定主机(使用 0.0.0.0 可对外开放) |
--port <n> | MCP_PORT | 9100 | HTTP 端口 |
--comfyui-url <url> | COMFYUI_URL | (自动检测) | 指定目标 ComfyUI(包括远程 ComfyUI) |
--force-remote | COMFYUI_MCP_FORCE_REMOTE | false | 对环回地址的 --comfyui-url 强制启用远程模式(例如,dstack/RunPod 将端口转发到 localhost) |
其他 Agent 和本地大模型(Hermes、OpenClaw、Copilot CLI、Ollama)
comfyui-mcp 支持非 Claude 的运行环境。运行一条命令,即可将服务入口 写入运行环境自身的配置文件(会合并到现有文件,而非覆盖文件):
npx -y comfyui-mcp setup hermes # → ~/.hermes/config.yaml (compact by default)
npx -y comfyui-mcp setup openclaw # → ~/.openclaw/openclaw.json (compact by default)
npx -y comfyui-mcp setup copilot # → ~/.copilot/mcp-config.json (full by default)
# flags: --compact | --full, --comfyui-url <url>, --dry-run
模型要求。 工具调用是硬性要求;不支持工具调用的模型无法使用。建议支持思考和视觉能力。没有 思考能力时,多步工具链的效果会下降;没有视觉能力时,Agent 可以生成内容,却无法查看自己的输出。
精简工具模式。 --compact /
COMFYUI_MCP_TOOL_MODE=compact 会注册 3 个元工具(list_tools →
describe_tool → call_tool),而非直接注册完整工具集;这样会逐个将工具架构载入上下文。这更适合小型本地模型。
默认使用直接工具集,适用于前沿模型运行环境。
使用我们的微调模型免费在本地运行。 ollama pull artokun/gemma4-comfyui-mcp:e4b
(还可选择适用于约 2 GB VRAM 的 :e2b,以及适用于约 8 GB VRAM 的 :12b)会拉取 Gemma 4。该模型使用完整 comfyui-mcp 工具集上的 1,055 条经服务器验证的轨迹进行 QLoRA 训练,也是面板的 Ollama 默认模型。原版 gemma4:*/qwen3:4b 也已通过端到端验证
(npm run test:local-llm);gemma3 不支持原生工具调用,因此不受支持。完整指南涵盖托管模型建议(DeepSeek/MiMo/GLM 类)、各运行环境的设置方法和故障排除,详见
本地大模型与其他 Agent。
| 标志 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
setup <agent> | 将 comfyui 入口写入 hermes / openclaw / copilot 配置,然后退出 | ||
--compact / --tool-mode compact | COMFYUI_MCP_TOOL_MODE=compact | full | 选择注册 3 个元工具(list_tools / describe_tool / call_tool),而非直接注册完整工具集 — 建议小型本地模型使用。仍接受 --full,但现在不会执行任何操作 |
远程 ComfyUI
将服务指向任意位置运行的 ComfyUI;无需本地安装:
npx -y comfyui-mcp@latest --comfyui-url http://192.168.1.50:8188
npx -y comfyui-mcp@latest --http --comfyui-url https://comfy.example.com:8443
位于反向代理/API 网关后方(路径前缀 + 身份验证标头)。对于通过带前缀的路由公开、并带有自身身份验证层的可自托管 ComfyUI(这不是 Comfy Cloud,Comfy Cloud 使用 COMFYUI_API_KEY):
COMFYUI_URL=https://gateway.example.com/comfyapi \
COMFYUI_AUTH_TOKEN=your-token \
npx -y comfyui-mcp@latest --http # → Authorization: Bearer your-token, requests under /comfyapi
# custom header / scheme:
COMFYUI_URL=https://gateway.example.com/comfyapi \
COMFYUI_AUTH_HEADER=X-API-Key COMFYUI_AUTH_TOKEN=your-token \
npx -y comfyui-mcp@latest --http # → X-API-Key: your-token
自动检测
端口:通过 /system_stats 先探测 8188(CLI 默认值),再探测 8000(桌面应用默认值)。
路径:按顺序检查常见位置:
~/Documents/ComfyUI(macOS/Windows 桌面应用数据目录)~/Library/Application Support/ComfyUI(macOS)~/AppData/Local/Programs/ComfyUI/resources/ComfyUI(Windows 桌面应用安装目录)~/AppData/Local/ComfyUI(Windows)~/ComfyUI、~/code/ComfyUI、~/projects/ComfyUI、~/src/ComfyUI/opt/ComfyUI、~/.local/share/ComfyUI(Linux)- 扫描
~/Documents和~/My Documents,查找名称中包含 "ComfyUI" 的目录
设置 COMFYUI_PATH 可跳过检测并使用显式路径。
工作原理
服务器通过 ComfyUI 的 REST API 和 WebSocket 接口与其通信:
- WebSocket。 将工作流加入队列,接收实时进度更新(通过后台监控脚本逐步获取),获取执行结果
- REST API。 系统统计信息、节点定义(
/object_info)、日志、历史记录、队列管理、工作流库、VRAM 控制(/free)、嵌入 - 文件系统。 读写模型目录,检测安装路径,上传图像,提取 PNG 元数据,浏览输出
- 外部 API。 HuggingFace(模型搜索)、ComfyUI Registry(自定义节点发现)、GitHub(技能生成)、CivitAI(模型下载)
与 MCP 客户端(Claude Code)的所有通信都通过 stdio 使用 Model Context Protocol 进行。日志会输出到 stderr,因此不会与协议流混在一起。
开发
先决条件
设置
git clone https://github.com/artokun/comfyui-mcp.git
cd comfyui-mcp
npm install
脚本
| 脚本 | 说明 |
|---|---|
npm run dev | 使用 tsx 从源代码运行(热重载) |
npm run build | 将 TypeScript 编译到 dist/ |
npm start | 运行编译后的输出 |
npm test | 运行单元测试(vitest) |
npm run test:integration | 运行集成测试(需要 ComfyUI 正在运行) |
npm run lint | 仅进行类型检查,不生成输出 |
npm run generations:stats | 显示本地生成跟踪统计信息 |
npm run sync-agents | 将 Claude 技能/命令/钩子同步到 Google Antigravity、OpenCode 和其他支持 .agents 文件的 AI IDE 格式 |
使用 Claude Code 进行本地测试
让 Claude Code 使用本地构建,而不是 npm 包:
{
"mcpServers": {
"comfyui": {
"command": "node",
"args": ["/path/to/comfyui-mcp/dist/index.js"],
"env": {}
}
}
}
或者直接测试插件:
claude --plugin-dir ./plugin
项目结构
scripts/
generation-stats.mjs # CLI: npm run generations:stats
src/
index.ts # MCP server entry point (stdio transport)
config.ts # Auto-detection & environment config
comfyui/
client.ts # ComfyUI WebSocket/HTTP client wrapper
types.ts # TypeScript interfaces
services/
workflow-executor.ts # Execute workflows, handle images & errors
workflow-composer.ts # Templates (txt2img, img2img, upscale, inpaint)
workflow-validator.ts # Dry-run validation (missing nodes, models, connections)
image-management.ts # Upload images, extract PNG metadata, list outputs
mermaid-converter.ts # Workflow → Mermaid diagram
workflow-converter.ts # UI → API: de-virtualize Get/Set buses + Reroutes, expand subgraphs, resolve bypass (powers get_workflow's strip action)
workflow-slicer.ts # sliceWorkflow() — rgthree Fast-Groups-Bypass pipeline un-chunker (shared by the CLI + get_workflow's slice action)
mermaid-parser.ts # Mermaid diagram → Workflow
model-resolver.ts # HuggingFace search, local models, downloads
generation-tracker.ts # SQLite generation log, settings dedup, stats
file-hasher.ts # SHA256 hashing of .safetensors with cache
workflow-settings-extractor.ts # Extract settings from workflow JSON
process-control.ts # Stop, start, restart ComfyUI process
registry-client.ts # ComfyUI Registry API
skill-generator.ts # Generate node pack skill docs
tools/ # MCP tool registration (one file per group)
workflow-execute.ts # enqueue_workflow, get_system_stats
workflow-visualize.ts # visualize_workflow (render/render_hierarchical/mermaid/to_dsl/from_dsl)
workflow-compose.ts # create_workflow (create/modify/validate/node_info)
workflow-validate.ts # the validate action's body
workflow-library.ts # get_workflow (8 read actions), save_workflow (save/lock/verify_lock)
image-management.ts # get_image (7 read actions), upload_image (5 write actions)
model-management.ts # download_model, list_local_models (the two consolidated model tools)
memory-management.ts # clear_vram
registry-search.ts # search_custom_nodes (search/details)
node-management.ts # install_custom_node (install/update/fix/uninstall/enable/disable/list/…)
node-pack.ts # node_pack (scaffold/verify/publish/read/write/patch/git/…)
generation-tracker.ts # the get_history suggest/stats jobs
diagnostics.ts # get_system_stats (action:"logs"), get_history
process-control.ts # restart_comfyui (restart/start/stop)
index.ts # Registers all tool groups
utils/
errors.ts # Custom error hierarchy with MCP integration
logger.ts # stderr-only logging (safe for stdio transport)
image.ts # Base64 encoding utilities
plugin/
.claude-plugin/ # Plugin manifest
.mcp.json # MCP server config for plugin
commands/ # Slash commands
gen.md # /comfy:gen — image generation
viz.md # /comfy:viz — workflow visualization
node-skill.md # /comfy:node-skill — skill generation
debug.md # /comfy:debug — failure diagnosis
batch.md # /comfy:batch — parameter sweeps
convert.md # /comfy:convert — format conversion
install.md # /comfy:install — node pack installation
gallery.md # /comfy:gallery — output browser
compare.md # /comfy:compare — workflow diff
recipe.md # /comfy:recipe — multi-step pipelines
skills/ # Knowledge bases
comfyui-core/ # Workflow format, node types, pipeline patterns
prompt-engineering/ # CLIP syntax, model-specific prompting
troubleshooting/ # Error catalog with patterns and fixes
model-compatibility/ # Compatibility matrix per model family
agents/ # Autonomous agents
explorer.md # Research custom node packs, generate skills
debugger.md # Diagnose workflow failures
optimizer.md # Analyze and optimize workflows
hooks/ # Pre/post tool-use hooks
hooks.json # Hook configuration
vram-check.mjs # VRAM watchdog before execution
save-warning.mjs # Save prompt before stop/restart
job-complete-notify.mjs # Job completion notification via temp files
scripts/ # Background scripts
monitor-progress.mjs # Real-time WebSocket progress monitor
launch-server.mjs # MCP server launcher — global install if present, else npx with a
# cold-start handshake rescue so a first run cannot time out (#1447)
故障排除
“未在端口 8188、8000 上检测到 ComfyUI”
请确保 ComfyUI 正在运行。桌面应用默认使用端口 8000;CLI 使用 8188。如果使用自定义端口,请设置 COMFYUI_PORT。
“未配置 COMFYUI_PATH”
自动检测未能找到 ComfyUI 数据目录。请将 COMFYUI_PATH 设置为包含 models/ 文件夹的目录(例如 ~/Documents/ComfyUI)。
“检测到多个 ComfyUI 安装”
这只是提示信息。服务器会使用找到的第一个安装。设置 COMFYUI_PATH 可指定某个安装。
模型下载失败
对于 HuggingFace 受限模型,请设置 HUGGINGFACE_TOKEN。对于 CivitAI,请设置 CIVITAI_API_TOKEN。
工作流执行错误
使用 /comfy:debug 诊断故障。也可以直接调用 get_history(action: "diagnose")或 get_system_stats (action:"logs"),查看完整错误消息,包括来自 ComfyUI 的 Python 回溯。
内存不足(OOM)
运行大型工作流前,使用 clear_vram 释放 GPU 内存。VRAM 监控钩子会在工作流运行前,当可用空间不足 1GB 时发出警告。有关特定模型的 VRAM 估算,请参阅故障排除技能。
缺少自定义节点
使用 /comfy:install <pack> 从注册表安装缺失的节点包。调试命令会检测缺失的包并提供建议。
贡献
欢迎贡献。有关开发环境设置、项目约定、如何添加 MCP 工具以及发布流程,请参阅 CONTRIBUTING.md。
简要步骤:派生仓库 → 创建分支(feat/my-feature)→ 进行更改(确保 npm run build 和
npm test 通过;如果修改了工具,请运行 npm run docs:gen)→ 提交 PR。
维护者
由 @artokun 构建并维护。TA 是 Comfy-Org 生态中的常驻贡献者:
- Comfy-Org/ComfyUI_frontend. 合并了 10 个 PR,主要涉及 v2 图形渲染器:子图渲染、提升控件的接入、视口持久化,以及向
cloud/1.41、cloud/1.42、core/1.41和core/1.42回移。 - Comfy-Org/ComfyUI(核心)。修复了 Python 后端视频/音频保存流程中的崩溃问题(#12683、#12550)。
如果你在 Comfy-Org 工作(或正在 ComfyUI 生态中招聘),欢迎联系我。请发邮件至 [email protected]。
许可证
MIT。详情请参阅 LICENSE。
更新日志
完整、结构化的版本历史请参阅 CHANGELOG.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。