comfyui-mcp 是 stdio —— 它不能做成 compose 服務
comfyui-mcp 是一個 stdio MCP 伺服器。它沒有連接埠,也不在網路上暴露任何東西:
MCP 用戶端(Claude Code、Cursor、MCP 橋接……)會把它作為子行程拉起,透過
stdin/stdout 交談。
所以在 docker-compose.yml 里加一個 comfyui-mcp 服務是死衚衕 —— 它會啟動,沒人
跟它說話,然後退出。幾乎每個把 ComfyUI 接到 compose 的人都會踩這個坑,因為一份正確的
compose 檔案看起來像是「少」了一個服務。其實沒有:你 compose 的是 ComfyUI,MCP
伺服器跑在 MCP 用戶端所在的地方,透過普通 HTTP 用 COMFYUI_URL 到達 ComfyUI。
啟動伺服器的
npx 命令要求跑它的那台機器(或容器)上有 Node.js >= 22 ——
精簡基礎映像檔最容易踩的坑。兩種部署形態
本機 npx + 本機 ComfyUI
預設形態。ComfyUI 直接跑在你的機器上;MCP 用戶端拉起
npx -y comfyui-mcp@latest,它會自動偵測本機安裝和連接埠。不需要設定。請看
安裝。本機 npx + 容器化 / 遠端 ComfyUI
ComfyUI 跑在容器裡(或另一台主機上);MCP 用戶端仍然在本機拉起
comfyui-mcp,
用 COMFYUI_URL(或 --comfyui-url)指向它。非回送 URL 會讓伺服器進入
遠端模式:所有 HTTP 工具都能用 —— 包括透過 ComfyUI-Manager HTTP API 安裝
自訂節點。需要檔案系統或本機行程的工具(安裝 ComfyUI 本身、comfy-cli 操作、
讀記錄、刪除模型檔案)會回傳明確錯誤。範例:docker-compose 裡的 ComfyUI
儲存庫裡有一份開箱即用的例子,在docker/compose/
—— ComfyUI 作為一個服務(預設 NVIDIA,AMD/ROCm 變體在註釋裡),模型與輸出的繫結
掛載,以及寫在檔案頭註釋裡的用戶端設定:
localhost:
comfyui-mcp 的是橋接服務,所以它的映像檔必須帶 Node.js >= 22,並且能
透過 npx -y comfyui-mcp@latest 啟動伺服器。橋接是第三方軟體 —— 按它自己的文件設定;
範例 compose 檔案裡有一段註釋掉的草圖。
AMD / ROCm 注意事項
- 使用
yanwk/comfyui-boot:rocm映像檔標籤,並在範例裡取消註釋 ROCm 透傳 —— 人們常漏 的幾處:devices: [/dev/kfd, /dev/dri]、group_add: [video]、security_opt: [seccomp:unconfined]。 comfyui-mcp本身沒有 GPU/CUDA 相依 —— ROCm 主機完全支援。 代理面板 是一個 ComfyUI 擴充,不是服務;當你用外部前端當 介面時,它可以不裝。- 本儲存庫的
docker/runpod/是一份 面向 CUDA 的 RunPod 雲端映像檔(請看 雲端部署),不是通用 ComfyUI 映像檔 —— AMD 使用者不該從那裡起步。