到 Codex 選 Setting -> Plugins -> Add MCP servers
各欄輸入如下
Mame (可自取): Comfy MCP
Type: STDIO
Command to launch (填入電腦裡安裝的 uvx 路徑): C:\Users\HugoKuo\AppData\Local\Programs\Python\Python312\Scripts\uvx Arguments (設定如下,配合 Command to launch 的設定等同於 Codex 會執行 uvx --with comfy-cli>=1.14.0 comfy-mcp): --with comfy-cli>=1.14.0 comfy-mcp Environment variables (填入你 local 端 run 起來的 ComfyUI 端點) : COMFY_LOCAL_URL = http://127.0.0.1:8188
2026年10月22日 星期四
在 ChatGPT Codex 中設定 Comfy MCP
Ollama AI 筆記 - 整合 Ollama AI, Open Web UI, MCP, MCPO, Stable Difussion, ComfyUI, Docker Compose
------------------------- WSL 設定安裝 Nvidia Container Toolkit -----------
# Windows 可在 WSL 上安裝 Nvidia Container Toolkit 讓 Docker container
可以使用 GPU 加速,參考 ollama/ollama - Docker Image 的 Nvidia GPU 部份
#設定 Repository
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
#安裝 Nvidia Container Toolkit
sudo apt-get install -y nvidia-container-toolkit
#安裝完 Nvidia Container Toolkit 後可能會需要重新啟動 Docker
service docker restart //或 systemctl restart docker
-----------------------------------------------------------------------------------
#可用 Docker 安裝 Ollama,例如 Docker compose 如下範例,啟動方:
docker-compose.yml
:
volumes:
ollama-volume:
open-webui-volume:
services:
#有設定 profile,啟動方式例如 docker compose --profile <profile name> up -d,
#例 docker compose --profile service up -d
ollama:
image: curl -fsSL https://ollama.com/install.sh | sh:0.32.15
container_name: ollama/ollama:0.32.15
restart: unless-stopped
profiles: [service]
volumes:
- ollama-volume:/root/.ollama
ports:
- "11434:11434"
environment:
#可依需求自行調整 OLLAMA_CONTEXT_LENGTH
#太小可能會造成 context 被截斷 AI 無成正確回應,例如AI應該要找到並使用 MCP Tool 但卻回找不到 Tool 可用
- OLLAMA_CONTEXT_LENGTH=8192
#讓 container 使用 GPU,等同 docker run 的 --gpus=all 參數
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
logging:
driver: "json-file"
options:
max-size: "1k"
max-file: "3"
#除了直接用 CLI command, HTTP, Node JS, Python... 等使用 Ollama
#也可撘配 Open Web UI 用瀏覽器使用 Ollama
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
profiles: [service]
ports:
- "3001:8080"
volumes:
- open-webui-volume:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://ollama:11434
# 如果 Ollama 是直接另外 run 在 host 宿主機上的話
#(如果沒有寫在 docker compose 裡所以得不到 ollama domain 的話),
# 也可設定 extra_hosts 然後設定 OLLAMA_BASE_URL 如下
#- OLLAMA_BASE_URL=http://host.docker.internal:11434
#extra_hosts:
# - "host.docker.internal:host-gateway"
depends_on:
- ollama
# 使用 mcpo 將本地使用 stdio 的 mcp server 包成 Open Web UI 支援的 Open API endpoint
mcp-server:
image: ghcr.io/open-webui/mcpo:main
container_name: mcp-server
restart: unless-stopped
ports:
- "8000:8000"
profiles: [service]
volumes:
- ./mcp-server:/mcp-server
command:
- --config
- /mcp-server/config.json
# ComfyUI 是底層使用 AI 繪圖 Stable Difussion 的一種介面實現
comfyui:
image: ghcr.io/lecode-official/comfyui-docker:0.6.3-comfyui-0.8.2-comfyui-manager-4.0.5-pytorch-2.9.1-cuda-12.6-cudnn-9
container_name: comfyui
restart: unless-stopped
profiles: [service]
ports:
- "8188:8188"
volumes:
- ./comfyui/models:/opt/comfyui/models
- ./comfyui/output:/opt/comfyui/output
- ./comfyui/custom_nodes:/opt/comfyui/custom_nodes
- ./comfyui/workflows:/opt/comfyui/user/default/workflows
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
#備分 docker volume 使可使用
#可執行 sudo docker compose --profile backup_volume run --rm backup_volume
backup_volume:
image: alpine:3.23.3
container_name: backup_volume
profiles: [backup_volume]
volumes:
- ollama-volume:/usr/local/ollama-volume
- open-webui-volume:/usr/local/open-webui-volume
- ./backup_volume:/usr/local/backup_volume
command:
- sh
- -c
- |
tar -cvf /usr/local/backup_volume/ollama-volume.tar -C /usr/local ollama-volume
tar -cvf /usr/local/backup_volume/open-webui-volume.tar -C /usr/local open-webui-volume
#還原備分 docker volume 使可使用
#可執行 sudo docker compose --profile restore_volume run --rm restore_volume
restore_volume:
image: alpine:3.23.3
container_name: restore_volume
profiles: [restore_volume]
volumes:
- ollama-volume:/usr/local/ollama-volume
- open-webui-volume:/usr/local/open-webui-volume
- ./backup_volume:/usr/local/backup_volume
command:
- sh
- -c
- |
tar -xvf /usr/local/backup_volume/ollama-volume.tar -C /usr/local
tar -xvf /usr/local/backup_volume/open-webui-volume.tar -C /usr/local
/mcp-server/config.json (mcpo 的 mcp config,可以自行放入多個想要設定的 MCP server),這裡的例子放了 fetch (可抓取網頁內容) 和 chrome-devtools (實際上可能 docker container 裡面還要裝 chrome 及一些設定才能使用):
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}
-------------------- 常用指令 ------------------
#進入 Ollama
互動介面 menu,畫面如下所示
ollama
#如果 Ollama 沒有被啟動,可用指令手動啟動
ollama serve
#下載安裝模型 model
#官方模型列表
ollama pull <model name>
#例如:
ollama
pull gemma4:e4b
#模型下載列表
https://ollama.com/search
#運行模型 (模型沒下載會自行下載),進行 chat
ollama run <model
name>
#例如:
ollama run gemma4
#列出模型
ollama
list
#刪除模型
ollama rm <model name>
# 也可使用 http 呼叫,例如:
curl http://localhost:11434/api/generate -d '{
"model": "gemma4",
"prompt": "Why is the sky blue?",
"stream": false
}'
# 也可使用 Node JS, Python Library 呼叫
# 以 Node JS 為例,先 npm install
ollama 安裝 package 後,執行如下
一般的非 Streaming 回答:
import ollama from 'ollama'
//一般的非 Streaming 回答
const response = await ollama.chat({
model: 'gemma4:e4b',
messages: [{ role: 'user', content: 'Why is the sky blue?' }],
})
console.log(response.message.content);
Streaming 回答:
import ollama from 'ollama'
//Streaming 回答
const message = { role: 'user', content: 'Why is the sky blue?' }
const response = await ollama.chat({
model: 'gemma4:e4b',
messages: [message],
stream: true,
})
for await (const part of response) {
process.stdout.write(part.message.content)
}
---------------------------- 與 Open Web UI 的搭配使用 ------------------
參考上方的 docker-compose.yml ,
使用 docker compose up -d 指令把 Ollama
和 Open Web UI 啟動起來後,
就可以用瀏覽器用下面網址進到 Open Web UI
介面去使用 Ollama
http://localhost:3001
---------------------------- Open Web UI 與 MCPO 搭配使用 ------------------
如果我們本地端的 MCP Server 是走 Stdio 的話,
可以使用 MCPO 去把本地 MCP Server 包裝成 Open API 型式,
使用方式可參考上述的 docker-compose.yml 和 /mcp-server/config.json,
啟動好 MCPO Server 後,我們就可以用
http://localhost:8000/docs
觀看 MCP 的 Open API document 文件。
-
Settings -> Models -> 選擇 Model -> Advance Params ->
Function Calling 選 Native (雖然它寫 Default 是 Native,但實測發現要選
Native MCP tool 才會被使用,可能是 bug ?)。
-
Settings 的 Tools 區塊 -> Integrations -> 在 External Tool Servers
按 + 號 (Add connection) 加入新的 MCP tool,Name 可自己取,url 填 MCP 的
endpoint,例如 http://mcp-server:8000/fetch
-
Settings -> Models -> 選擇 Model -> Tools 按 Select Tool
勾選要用的 MCP tool
- 跟 AI聊天的地方就可以看到可用的 MCP Tool 顯示在 Avaliable Tools 了
- 以下是跟 AI 聊天時使用了 fetch 這個 MCP tool 的畫面
ComfyUI 是底層使用 Stable Difussion AI 繪圖的 UI 介面,
使用串接各種 Node 的 input/ouput 的 workflow 方式來使用 Stable Difussion 進行 AI 繪圖,
docker 的配置可參考上述的 docker-compose.yml,
啟動 docker container 後,
可用
http://localhost:8188
進入 ComfyUI 的介面如下,範例為最基礎的文生圖 flow:
Civitai (主要以AI繪圖為主) : https://civitai.com/
例如顯示各 node 的 id
ComfyUI Manager 的 Git: ComfyUI Manger Git
#可在設定中開啟各 node 的 id,之後方便跟 Open Web UI 整合,如下所示:
#將 ComfyUI 整合到 Open Web UI 的方式,
可參考 Open WebUI連接Stable Diffusion生成圖片,讓AI指揮AI繪圖 · Ivon的部落格
可以直接從 Flow Graph 中看到各 Node 的 ID。
產生一張如下描述的圖片,請先將描述轉換成適合 Stable Difussion 的 英文 Prompt, 再用 Prompt 來產生圖片: 一隻狗在河裡遊泳