是什么
ComfyTV 在你的 ComfyUI 服务器上开放 Model Context Protocol 端点POST /comfytv/mcp。任何支持 MCP 的 agent(Claude Code,或任何会说 streamable HTTP JSON-RPC 的客户端)都能连上来,把 ComfyTV 当成一套工具使用。
设计上有个关键点:画布的真相在浏览器 tab 里。读工具由服务器直接回答,写工具(加节点、设 prompt、跑渲染)则由打开着的 ComfyTV tab 执行 — 服务器通过 websocket 把命令转给它。没有开着的 tab → 写工具会以明确的超时信息失败。
启用
MCP 默认关闭。在 ComfyTV 侧边栏打开 设置 → Agent 与 MCP,开启启用 MCP 服务。(内嵌 Bot 还需要它自己的开关。)连接客户端
Claude Code:工具目录
读取与发现
搭建与运行
看见与评判
配置
富编辑器
关键套路
生产循环。stage_catalog → add_stage(prompt、工作流、asset_refs)→ connect_stages → run_stage → wait_stage → outputs → view_image 质检 → 迭代。
不轮询的等待。wait_stage 在服务器侧阻塞(单次默认 25 秒,上限 170 秒),结果一落地立即返回。超时返回 after_output_id — 带着它再调就继续等。总时长无上限,长渲染多续调几次而已。
@ 序数从 0 起。@image_0 / @video_0 这类 token 按类型寻址节点的可发送媒体,从 0 开始,槽位序(连线输入在前,asset_refs 在后)。越界 token 展开为空 — 工具结果会带警告提醒。
真视觉。view_image 是唯一返回像素的工具。视频质检:先 media_frame 抽帧,再 view_image 亲眼看。别靠文件名猜图。
给新 link 的工作流配绑定。workflow_get 看 API 图节点清单;workflow_edit 用 option:seed、computed:width / computed:height(尺寸引擎)、main_prompt、upstream_image:value[0]、literal:... 这些来源绑定。工作流需要 ComfyTV 没有默认键的参数时,先用 stage_params 建一个,再绑 option:<它的 key>。reset_to_preset 是后悔药。
多机。servers 列出配置的机器和实时负载;set_stage {server: <id>} 把某节点的运行路由过去,结果落回本机。
前置条件与行为说明
- 写工具需要开着的 ComfyTV tab;画布镜像在首次 MCP 调用后懒激活(刚连上时
get_canvas等 ~10 秒重试)。 - MCP 客户端会按会话缓存
tools/list— 服务器加了新工具后需重连。 - 客户端若有单次工具调用超时,给
wait_stage传更小的timeout_s分片续调。
另见
- ComfyTV Bot — 基于同一套工具的内嵌聊天代理
- 自定义工作流 — 绑定是什么、手工怎么配
- 侧边栏 — 带 MCP 开关的设置面板