comfyui-mcp
The comfyui-mcp server is a comprehensive MCP control plane for ComfyUI, enabling LLMs and AI agents to generate images/audio, author and manage workflows, handle models and custom nodes, and control the ComfyUI process — all through natural language.
Image & Audio Generation
Generate images from text prompts (
generate_imageauto-selects models and builds workflows)Generate with ControlNet conditioning (pose, depth, canny, normal maps)
Generate with IP-Adapter for style/subject transfer from reference images
Generate audio from text prompts
Workflow Execution & Management
Submit workflows for async execution (
enqueue_workflow) and track status (get_job_status)View, cancel, and clear the execution queue; cancel individual running or pending jobs
Retrieve full execution history with error details and Python tracebacks
Workflow Authoring & Editing
Create workflows from templates (
txt2img,img2img,upscale,inpaint,controlnet,ip_adapter)Modify workflows by adding/removing nodes, setting inputs, or connecting nodes
Validate workflows before execution (checks missing nodes, broken connections, missing models)
Convert workflows to/from a compact human-readable DSL format
Workflow Visualization & Analysis
Convert workflows to Mermaid flowchart diagrams (flat or hierarchical views)
Convert Mermaid diagrams back to executable workflow JSON
Analyze saved workflows with structured summaries optimized for AI reasoning
Workflow Library
List, load, and save workflows from/to the ComfyUI user library
Query available node types via ComfyUI's
/object_infoendpoint
Image & Asset Management
Upload local images, list recent output images, fetch and view generated images inline
Extract embedded workflow metadata from ComfyUI-generated PNGs
List, inspect, and regenerate assets with parameter overrides
Analyze image color palettes and statistics
Model Management
Search HuggingFace for compatible models (checkpoints, LoRAs, VAEs, etc.) and download them
List all locally installed models by type and list textual inversion embeddings
Clear GPU VRAM by unloading cached models
Generation Intelligence
Suggest proven sampler/scheduler/steps/CFG settings from local generation history
Get and set generation defaults (checkpoint, resolution, steps, CFG, sampler, etc.)
View generation statistics broken down by model family
Custom Node Discovery
Search the ComfyUI Registry for custom node packs and get detailed pack info
Auto-generate skill documentation for custom node packs
Diagnostics & Debugging
Retrieve ComfyUI server logs (with keyword filtering) and system stats (GPU, VRAM, Python, OS)
Get full execution history with error details and tracebacks
Process Control
Stop, start, and restart the ComfyUI process (preserving launch arguments across restarts)
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@comfyui-mcp Generate a sunset over mountains"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
comfyui-mcp — drive ComfyUI with ANY LLM
The local-first, agent-native control plane for ComfyUI — an MCP server + live sidebar agent that generates images, video and audio, authors and runs workflows, manages models and custom nodes, and edits your live ComfyUI graph in natural language. Bring whatever model you have: Claude or ChatGPT on your subscription, Gemini on your Google login, a free local model via Ollama (fully offline), or any hosted model over one API key (DeepSeek, GLM, MiMo, Kimi, GPT, Claude via OpenRouter). Same tools, same panel, every tier — and the built-in LLM Arena scores them all on real ComfyUI tasks so you know exactly what your model can do. One config targets local installs, LAN, VPS, or Comfy Cloud.
One-click GPU pod — a ready-to-run ComfyUI with this project + Agent Panel + ComfyUI-Manager v2 preinstalled, on your own GPU. No setup.
Works on macOS, Linux, and Windows. Auto-detects your ComfyUI installation and port.
108 MCP tools | 32 AI skills (Flux · WAN · LTX 2.3 video · Qwen · Z-Image · Ideogram 4 · ERNIE · ANIMA · model registry · Civitai · node authoring · launch/perf flags) | 13 installer packs | 11 slash commands | 4 autonomous agents | 4 hooks
The plugin ships expert skills that grow with every release — model-specific generation guides with curated download URLs, workflow recipes, troubleshooting, and custom-node authoring — so Claude knows the right sampler, CFG, resolution, and model files for each architecture without trial and error.
✅ Now available: the ComfyUI Agent Panel on ComfyUI-Manager & the Comfy Registry
An autonomous AI agent in your ComfyUI sidebar — on Claude, ChatGPT, Gemini, or ANY local/hosted LLM (Ollama and every OpenAI-compatible endpoint). Subscriptions work with no API key; local models work with no account at all. Pick a provider and it drives your live graph: edits, spatial layout, one-shot workflow/pack loads, rewind/rollback, a pending-message tray, activity cards, multi-tab — and it asks before spending paid API credits. Search
comfyui-agent-panelin ComfyUI-Manager to install. Read more →
📖 Full documentation: comfyui-mcp.artokun.io/docs
Quick Start
1. Install ComfyUI (if you haven't already): ComfyUI Desktop or from source
2. Add the MCP server to your Claude Code config (~/.claude/settings.json):
{
"mcpServers": {
"comfyui": {
"command": "npx",
"args": ["-y", "comfyui-mcp"],
"env": {
"CIVITAI_API_TOKEN": ""
}
}
}
}3. Start using it. With ComfyUI running, ask Claude to generate an image:
> Generate an image of a sunset over mountainsClaude will find (or download) a checkpoint, build a workflow, execute it, and return the image.
Note: This runs as a standalone MCP server — no need to clone this repo.
npxwill download and run it automatically.
Scope: local, remote, or Comfy Cloud
comfyui-mcp is local-first: a self-hosted ComfyUI on Mac/Linux/Windows is the primary target, with the same agent reaching remote installs (RunPod, VPS, LAN, reverse-proxied) from one config. Local-first, not local-only.
More than a bridge. Most ComfyUI MCP servers are thin connectors — they forward a prompt and hand back an image. comfyui-mcp is a full control plane: it authors and edits the graph node-by-node, runs and iterates on workflows, manages models and custom nodes, and ships model-specific expertise (samplers, CFG, resolutions, curated model URLs) so the agent gets it right without trial and error. If you want a minimal local relay, a lightweight server is fine; if you want an agent that actually operates ComfyUI, that's this project.
For Comfy Cloud users, Comfy-Org ships an official Comfy Cloud MCP (currently invite-only beta) which is cloud-exclusive and maintained by the Comfy team. comfyui-mcp also includes a community cloud-mode (set COMFYUI_API_KEY — see Deployment modes) so a single MCP can target all three deployment shapes from one config; pick whichever fits your workflow.
Remote / hosted connector (one command)
Want to use comfyui-mcp from Claude Desktop's Custom Connectors or any remote
client — like Comfy's own cloud.comfy.org/mcp connector? Run it as an
authenticated, publicly-reachable Streamable-HTTP server with one flag:
npx -y comfyui-mcp@latest --tunnelThis forces the HTTP transport, generates an auth token, opens a
cloudflared quick tunnel, and prints
a ready-to-paste https://…/mcp URL + token + Claude Desktop connector snippet.
Auth accepts Authorization: Bearer <token> or X-API-Key: <token> (matching
Comfy Cloud's convention). See the
Remote / hosted connector guide
for the full walkthrough and headless usage.
Auth is opt-in: with no
COMFYUI_MCP_HTTP_TOKENset and no--tunnel, the default stdio (and plain--httpon loopback) behavior is unchanged — open and local. OAuth (Comfy's browser sign-in flow) is a planned follow-up.
Related MCP server: ComfyUI MCP
Claude Code Plugin
This package also ships as a Claude Code plugin, providing slash commands, skills, agents, and hooks on top of the MCP tools.
Install as a plugin
# In Claude Code
/plugin marketplace add artokun/comfyui-mcp
/plugin install comfySlash commands
Command | Description |
| Generate an image from a text description — auto-selects checkpoint, builds workflow, returns image |
| Visualize a workflow as a Mermaid diagram with nodes grouped by category |
| Generate a Claude skill for a custom node pack from Registry ID or GitHub URL |
| Diagnose why a workflow failed — reads history, logs, traces root cause, suggests fixes |
| Parameter sweep generation across cfg, sampler, steps, seed, etc. |
| Convert between UI format and API format workflows |
| Install a custom node pack — git clone, pip install, optional restart |
| Browse generated outputs with metadata — filter by date, count, or filename |
| Diff two workflows side by side — shows added/removed nodes and changed parameters |
| Multi-step recipes: |
Built-in skills
32 skills total — model-family guides (Flux, WAN, LTX 2.3, Qwen, Z-Image, Ideogram 4, ERNIE, ANIMA + anime / WAN / Z-Image LoRA training), the model-registry (curated download URLs), the civitai pairing skill, node authoring, the launch/performance-flags matrix, and the core four below. Full list on the plugin docs page.
Installer packs.
packs/bundles 13 one-command ComfyUI setups — ANIMA, Ideogram 4, LTX-2.3, ERNIE, WAN (animate / longer-videos / transparent), Qwen (image / image-edit), Z-Image (turbo / base / xy-plot) and artokun-flow (WAN Animate — replace / animate). Each is a manifest of custom nodes + model URLs + workflow that drives bothapply_manifestand generatedinstall-windows.bat/install-runpod.sh, with CI that validates every model link + payload size. Seepacks/README.md.
Skill | Description |
comfyui-core | Workflow format, node types, data flow patterns, pipeline architecture, MCP tool usage guide |
prompt-engineering | CLIP weight syntax |
troubleshooting | Common error catalog — OOM, dtype mismatches, missing nodes, NaN tensors, black images, CUDA errors, with VRAM estimates per model |
model-compatibility | Compatibility matrix — loaders, resolutions, CFG, samplers, ControlNets, LoRAs, and VAEs per model family (SD1.5/SDXL/Turbo/Lightning/Flux/SD3/LTXV) |
Agents
Agent | Model | Description |
comfy-explorer | Sonnet | Researches custom node packs — reads docs, queries |
comfy-debugger | Sonnet | Autonomously diagnoses workflow failures — gathers logs + history, identifies failing node, checks models + custom nodes, proposes and optionally applies fixes |
comfy-optimizer | Sonnet | Analyzes workflows for performance — detects redundant nodes, VRAM waste, wrong CFG/steps for model family, precision issues, suggests optimizations |
Hooks
Event | Trigger | Action |
PreToolUse |
| VRAM watchdog — checks GPU memory via |
PreToolUse |
| Save warning — prompts user to save unsaved workflow changes before stopping ComfyUI |
PostToolUse | Any comfyui tool | Job completion notify — checks for completed jobs and injects completion summaries into the conversation |
Background Scripts
Script | Description |
| Progress monitor — connects to ComfyUI's WebSocket for real-time step progress (e.g., |
Panel agent (Claude · ChatGPT · Gemini · any local/hosted LLM)
Beyond the headless MCP server, this package ships the panel orchestrator that powers the ComfyUI Agent Panel — an autonomous agent embedded in ComfyUI's sidebar that drives the live canvas. It runs in the background on your own subscription (Claude or ChatGPT), started on demand by the panel's Connect button:
npx -y comfyui-mcp@latest connectDrive a REMOTE ComfyUI from your own machine (connect)
When ComfyUI runs somewhere with no Node/agent (a RunPod pod, a cloud box) you can still run the agent on your machine and drive that remote ComfyUI — no agent login on the box, nothing to install or configure remotely:
npx -y comfyui-mcp@latest connect https://abcd1234-8188.proxy.runpod.netThis is sugar for --panel-orchestrator with COMFYUI_URL set from the URL: the
orchestrator runs locally on your Claude/ChatGPT login and reaches the remote
ComfyUI over its public proxy URL. For a remote HTTPS pod, connect
automatically opens a secure, token-gated wss:// tunnel (via Cloudflare) to
the local agent bridge and hands the pod's panel that URL — so the pod's HTTPS page
reaches your machine with no browser prompt, in any browser (a secure page
can't open a plain ws:// socket to your box — mixed content / Private Network
Access). A local ComfyUI uses the plain ws://127.0.0.1:9180 loopback bridge;
add --insecure-bridge to force that loopback for a remote pod (then arrange
your own path to it, e.g. an SSH port-forward). Either way the panel JS runs in
your local browser and the agent — and your login — run only on your
machine, so nothing is installed remotely.
To finish: open the remote ComfyUI in your browser, turn on Settings → General → "Use external/local orchestrator (advanced)" in the Agent panel, then click Connect. (In that mode the panel connects straight to the local bridge instead of asking the ComfyUI host to spawn an orchestrator it can't run.)
Multi-provider, full parity. The orchestrator depends on a provider-neutral
AgentBackend port (dependency injection), with two adapters:
ClaudeBackend— the Claude Agent SDK (@anthropic-ai/claude-agent-sdk), a persistent streaming session over the claude.ai subscription (OAuth, no key).CodexBackend— OpenAI Codex over thecodex app-serverJSON-RPC protocol (@openai/codex), on the ChatGPT subscription (codex login, no key).
Both are optional dependencies, and the panel picks a provider, not a port — each backend runs its own orchestrator on its own loopback bridge port. A capability matrix lets the panel degrade gracefully (e.g. conversation-rollback is Claude-only today, since the Codex app-server resumes whole threads only).
The live-canvas tools and model knowledge are identical across providers. The
panel_* tool definitions live in one shared list, registered onto both the
in-process Claude SDK MCP server and a @modelcontextprotocol/sdk server over a
loopback streamable-HTTP MCP that the orchestrator hosts for Codex (which can
only host config-declared MCP servers). The headless comfyui MCP is likewise
injected into both — in-process for Claude, declared via codex app-server -c mcp_servers for ChatGPT — so generation, models, and workflow tools are the same
everywhere.
New tools that give every backend the same expertise and a cost guardrail:
Tool | Description |
| Discover and read bundled model-family + workflow skills — the knowledge Claude loads natively, exposed to any MCP client (e.g. the Codex backend) |
| List one-command installer packs (custom nodes + weights + ready workflow; all local-GPU / free) and read a pack's graph |
| List the connected ComfyUI's official workflow templates (the templates package + custom-node-provided templates) |
| Classify a workflow as local (your GPU, free) or api / mixed / unknown (hosted API nodes = paid credits) so the agent asks before spending paid API credits |
| (panel tool) Load a full workflow onto the live canvas in one shot — by bundled |
| (panel tools) De-virtualize a tangled graph (Get/Set buses, Reroutes, subgraphs, bypass → real connections) or carve one rgthree-toggled pipeline out of a monolith — by |
See the design doc — docs/design/agent-backend-injection.md — for the port, the capability matrix, and the per-provider "clink" points, and the panel docs for the full sidebar UX.
MCP Tools
108 tools across workflow execution, generation, iteration, composition, models, and more:
Image Generation (high-level)
Tool | Description |
| Generate from a text prompt — builds a txt2img workflow, fills unspecified params from your defaults, auto-selects a checkpoint |
| Generate conditioned by a ControlNet image (pose/depth/canny/normal) + prompt |
| Generate guided by a reference image's style/subject via IP-Adapter (needs ComfyUI_IPAdapter_plus) |
Audio Generation (high-level)
Tool | Description |
| Generate audio from a text prompt — supports ACE Step 1.5 (music with lyrics/structure) and Stable Audio 3 (music, instruments, SFX); auto-selects local models |
Assets & Iteration
Tool | Description |
| Return a generated asset's bytes as an inline image so the agent can see the result |
| Palette / contrast / color statistics for a generated image (dominant colors, average + luminance stats, contrast checks) so the agent can reason about color without a vision round-trip |
| Re-run the workflow that produced an |
| Browse recently generated assets (newest-first) by |
| Full provenance for an asset, including the originating workflow |
Defaults
Tool | Description |
| Show merged generation defaults with per-source attribution |
| Update runtime defaults; |
Workflow Execution
Tool | Description |
| Submit a workflow (API format JSON) — returns |
| Check execution status of a job by prompt ID |
| View the current execution queue (running + pending) |
| Inspect the full workflow payload for one pending queue item |
| Move a pending job to the front/back by requeueing it with a new prompt ID |
| Patch or replace a pending queued workflow and requeue it with a new prompt ID |
| Interrupt the currently running job — escalates (interrupt → verify → |
| Get system info — GPU, VRAM, Python version, OS |
Workflow Visualization
Tool | Description |
| Convert a workflow to a Mermaid flowchart with nodes grouped by category |
| Convert a Mermaid diagram back to executable workflow JSON |
Workflow Composition
Tool | Description |
| Generate a workflow from templates: |
| Apply operations: |
| Query available node types from ComfyUI's |
Workflow Validation
Tool | Description |
| Dry-run validation — checks missing nodes, broken connections, invalid output indices, missing model files |
Workflow Library
Tool | Description |
| List saved workflows from ComfyUI's user library |
| Load a specific saved workflow by filename |
| De-virtualize any workflow (absolute path, library filename, or inline graph) — resolve GetNode/SetNode buses, Reroutes, subgraph defs, and bypassed nodes into real connections and return the flat graph. Reads ANY path server-side, so it loads ad-hoc/expert workflows the cached library can't. |
| Un-chunk a toggle-template monolith — slice ONE rgthree Fast-Groups-Bypass-toggled pipeline out into a standalone activated graph (seed from the named groups' output nodes, backward-closure, un-bypass). Pair with |
| Save a workflow to the ComfyUI user library |
Image Management
Tool | Description |
| Copy a local image into ComfyUI's |
| Extract embedded workflow metadata from a ComfyUI-generated PNG (reads |
| Browse recently generated images and videos from the output directory, sorted newest-first — recurses into subfolders (e.g. SaveVideo's |
Model Management
Tool | Description |
| Search HuggingFace for compatible models (checkpoints, LoRAs, VAEs, etc.) |
| Download a model from a URL to the correct ComfyUI subdirectory |
| List installed models by type: checkpoints, loras, vae, upscale_models, controlnet, embeddings, clip, unet, diffusion_models, text_encoders |
| View standalone or Desktop ComfyUI extra search-path config |
| Add a model/custom_nodes search path to the extra paths YAML |
| Remove a stored extra search path from the extra paths YAML |
Memory Management
Tool | Description |
| Free GPU VRAM by unloading cached models — calls ComfyUI's |
| List installed textual inversion embeddings |
Registry & Discovery
Tool | Description |
| Search the ComfyUI Registry for custom node packs by keyword |
| Get full details of a custom node pack (description, author, nodes, install info) |
| Generate a Claude skill |
Diagnostics
Tool | Description |
| Get ComfyUI server logs with optional keyword filter (e.g., |
| Get execution history with full error details, Python tracebacks, timing, and cached node info |
Process Control
Tool | Description |
| Stop the running ComfyUI process (saves PID and launch args for restart) |
| Start ComfyUI using info saved from a previous stop |
| Stop and restart ComfyUI, preserving all launch arguments |
Generation Tracker
Tool | Description |
| Suggest proven sampler/scheduler/steps/CFG settings from local generation history — query by model family, LoRA hash, or text search |
| Show local generation tracking statistics — total runs, unique combos, breakdown by model family |
Every enqueue_workflow call automatically logs settings to a local SQLite database (generations.db). Same settings combos get a reuse_count bump instead of duplicates, creating a natural popularity signal. Models and LoRAs are identified by content hash (AutoV2 / SHA256), not filenames — so renamed files still group together.
# View local stats from the CLI
npm run generations:statsModel Settings
Community-maintained preset library (model-settings.json) with research-backed sampler, scheduler, steps, and CFG values for 10+ model families. User overrides in model-settings.user.jsonc (auto-created from template on install, gitignored).
Examples
Generate an image
> /comfy:gen a cyberpunk city at night with neon lightsClaude will:
Check installed checkpoints (download one if needed)
Build a txt2img workflow with your prompt
Execute it on ComfyUI
Return the generated image
Visualize a workflow
> /comfy:viz ~/workflows/my-workflow.jsonProduces a Mermaid diagram with nodes grouped by category:
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| 5Debug a failed workflow
> /comfy:debugAutomatically reads the last execution history and logs, identifies the failing node, checks for missing models or node packs, and suggests a fix.
> /comfy:debug abc123-def456Diagnose a specific execution by prompt ID.
Parameter sweep
> /comfy:batch a cat in a field, cfg:5-10:2, sampler:euler,dpmpp_2mGenerates a grid of images across all parameter combinations and presents a summary table with results.
Supported sweep parameters: cfg, steps, sampler, scheduler, seed, denoise, width, height.
Multi-step recipes
> /comfy:recipe hires-fix a dramatic fantasy landscape with castlesRuns a two-pass pipeline: txt2img at 512x768, then img2img upscale to 1024x1536 with detail enhancement.
Available recipes:
Recipe | Description |
| Generate at 1024x1024, then 2x upscale to 2048x2048 |
| Low-res generation → img2img upscale with denoise 0.4-0.5 |
| Apply a style prompt to an existing image via img2img |
| Product image with clean white background |
Convert workflow format
> /comfy:convert ~/workflows/my-ui-workflow.jsonConverts between ComfyUI's UI format (nodes + links arrays) and API format (node IDs → {class_type, inputs}).
Install a custom node pack
> /comfy:install comfyui-impact-packSearches the registry, shows details, clones the repo to custom_nodes/, installs dependencies, and offers to restart ComfyUI.
Browse output gallery
> /comfy:gallery last 5
> /comfy:gallery todayLists recent outputs with embedded metadata — shows checkpoint, prompt, seed, steps, CFG, sampler for each image.
Compare workflows
> /comfy:compare workflow-a.json vs workflow-b.jsonShows added/removed nodes, changed parameters (old → new values), and optional Mermaid diagrams for visual comparison.
Validate before running
> Validate this workflow before I run itChecks for missing node types, broken connections, invalid output indices, and missing model files — without executing.
Manage models
> What checkpoints do I have installed?
> Search HuggingFace for SDXL turbo models
> Download this model to my checkpoints folderManage VRAM
> Free my VRAM
> What embeddings do I have?Extract workflow from an image
> Extract the workflow from this image: ~/outputs/ComfyUI_00042_.pngReads the PNG metadata chunks to recover the exact workflow and prompt used to generate the image.
Explore custom nodes
> /comfy:node-skill comfyui-impact-packGenerates a comprehensive skill file documenting every node, its inputs/outputs, and usage patterns.
Process control
> Restart ComfyUI
> Stop ComfyUI
> Start ComfyUI back upConfiguration
The server auto-detects your ComfyUI installation and port. Override with environment variables if needed:
Deployment modes
comfyui-mcp operates in one of three modes, auto-selected from the environment:
Mode | Trigger | Local FS / process tools? |
Local | default | yes |
Remote |
| no — server skips |
Cloud |
| no — HTTP primitives route via |
Some setups (e.g. dstack driving ComfyUI on RunPod) port-forward
a remote ComfyUI back to localhost:8188, so the loopback check above gets it
wrong — the install isn't actually local. Pass --force-remote (or set
COMFYUI_MCP_FORCE_REMOTE=1) alongside --comfyui-url/COMFYUI_URL to force
remote mode regardless of hostname:
npx -y comfyui-mcp@latest --comfyui-url http://localhost:8188 --force-remoteVariable | Default | Description |
| Full ComfyUI URL, e.g. | |
| Set to | |
|
| ComfyUI server address |
| (auto-detect) | ComfyUI server port (tries 8188, then 8000) |
| (auto-detect) | Path to ComfyUI data directory. Auto-detection suppressed in remote/cloud modes. |
|
| Python interpreter for cm-cli subprocess operations ( |
|
| Panel-bridge bind host. Set |
| (generated when needed) | Shared secret gating every bridge connection (checked constant-time on the WS upgrade). Mandatory for a non-loopback |
|
| Base dir for per-instance data (the |
| Comfy Cloud API key. When set, cloud mode is active and the server talks to | |
|
| Override the Comfy Cloud endpoint (testing/staging). |
| Generic auth token for a self-hosted ComfyUI behind a reverse proxy / API gateway (distinct from Comfy Cloud). When set, attached to every ComfyUI request. Never logged. | |
|
| Header name for |
|
| Scheme prefix on the token value (e.g. |
| CivitAI API token for model downloads | |
| HuggingFace token for higher API rate limits | |
| GitHub token for skill generation (avoids rate limits) | |
| Comfy Registry API key for | |
|
| Content-addressed model-download cache (dedup + concurrent coalescing) |
|
| Cap the download cache in GB; |
|
| Readiness-probe interval + max tries when starting a local ComfyUI |
|
| Auto-restart a crashed local ComfyUI (bounded by |
|
| Render-wedge watchdog: seconds a sampler step can re-emit the same progress before a STALL/BACKLOG note is prepended to the agent's next turn (clamped 15–3600s; live-tunable from the panel) |
|
| Seconds |
|
| Logging verbosity: |
Transports
The server speaks stdio by default (what Claude Code, Claude Desktop, and the MCP Inspector expect — no flags needed). For MCP gateways, remote/hosted setups, or fetch-based clients, opt into 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 overridesFlag | Env | Default | Description |
|
|
| Serve streamable-HTTP at |
|
|
| HTTP bind host (use |
|
|
| HTTP port |
|
| (auto-detect) | Target a specific (incl. remote) ComfyUI |
|
|
| Force remote mode for a loopback |
Other agents & local LLMs (Hermes, OpenClaw, Copilot CLI, Ollama)
comfyui-mcp has first-class support for non-Claude harnesses. One command writes the server entry into the harness's own config (merging, not clobbering):
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-runModel requirements: tool calling is a hard requirement (no tool calling = doesn't work). Thinking and vision are strongly recommended — without thinking, multi-step tool chains degrade; without vision the agent can generate but can't see its own outputs.
For small/local models, compact tool mode (--compact /
COMFYUI_MCP_TOOL_MODE=compact) registers 3 meta-tools
(list_tools → describe_tool → call_tool) instead of the full ~200-schema
surface, pulling schemas into context one tool at a time. Validated
end-to-end via Ollama with gemma4:e4b, gemma4:e2b, and qwen3:4b
(npm run test:local-llm); gemma3 has no native tool calling and is
unsupported. Full guide — hosted-model guidance (DeepSeek/MiMo/GLM class),
per-harness setup, troubleshooting:
Local LLMs & other agents.
Flag | Env | Default | Description |
| Write the comfyui entry into hermes / openclaw / copilot config, then exit | ||
|
|
| Register 3 meta-tools instead of the full ~200-schema surface |
Other agents & local LLMs (Hermes, OpenClaw, Copilot CLI, Ollama)
comfyui-mcp has first-class support for non-Claude harnesses. One command writes the server entry into the harness's own config (merging, not clobbering):
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-runModel requirements: tool calling is a hard requirement (no tool calling = doesn't work). Thinking and vision are strongly recommended — without thinking, multi-step tool chains degrade; without vision the agent can generate but can't see its own outputs.
For small/local models, compact tool mode (--compact /
COMFYUI_MCP_TOOL_MODE=compact) registers 3 meta-tools
(list_tools → describe_tool → call_tool) instead of the full ~200-schema
surface, pulling schemas into context one tool at a time. Validated
end-to-end via Ollama with gemma4:e4b, gemma4:e2b, and qwen3:4b
(npm run test:local-llm); gemma3 has no native tool calling and is
unsupported. Full guide — hosted-model guidance (DeepSeek/MiMo/GLM class),
per-harness setup, troubleshooting:
Local LLMs & other agents.
Flag | Env | Default | Description |
| Write the comfyui entry into hermes / openclaw / copilot config, then exit | ||
|
|
| Register 3 meta-tools instead of the full ~200-schema surface |
Remote ComfyUI
Point the server at a ComfyUI running anywhere — no local install required:
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:8443Behind a reverse proxy / API gateway (path prefix + auth header) — for a
self-hosted ComfyUI exposed under a prefixed route with its own auth layer (this
is not Comfy Cloud, which is 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-tokenAuto-detection
Port: Probes 8188 (CLI default) then 8000 (Desktop app default) via /system_stats.
Path: Checks common locations in order:
~/Documents/ComfyUI(macOS/Windows Desktop app data directory)~/Library/Application Support/ComfyUI(macOS)~/AppData/Local/Programs/ComfyUI/resources/ComfyUI(Windows Desktop app install)~/AppData/Local/ComfyUI(Windows)~/ComfyUI,~/code/ComfyUI,~/projects/ComfyUI,~/src/ComfyUI/opt/ComfyUI,~/.local/share/ComfyUI(Linux)Scans
~/Documentsand~/My Documentsfor any directory containing "ComfyUI"
Set COMFYUI_PATH to skip detection and use an explicit path.
How It Works
The server communicates with ComfyUI through its REST API and WebSocket interface:
WebSocket — enqueue workflows, receive real-time progress updates (step-by-step via background monitor script), get execution results
REST API — system stats, node definitions (
/object_info), logs, history, queue management, workflow library, VRAM control (/free), embeddingsFile system — read/write models directory, detect installation paths, upload images, extract PNG metadata, browse outputs
External APIs — HuggingFace (model search), ComfyUI Registry (custom node discovery), GitHub (skill generation), CivitAI (model downloads)
All communication with the MCP client (Claude Code) happens over stdio using the Model Context Protocol. Logs go to stderr to avoid polluting the protocol stream.
Development
Prerequisites
Setup
git clone https://github.com/artokun/comfyui-mcp.git
cd comfyui-mcp
npm installScripts
Script | Description |
| Run from source with tsx (hot reload) |
| Compile TypeScript to |
| Run compiled output |
| Run unit tests (vitest) |
| Run integration tests (requires running ComfyUI) |
| Type-check without emitting |
| Show local generation tracking statistics |
| Sync Claude skills/commands/hooks to Google Antigravity, OpenCode, and other AI IDE formats that supports .agents files |
Local testing with Claude Code
Point Claude Code at your local build instead of the npm package:
{
"mcpServers": {
"comfyui": {
"command": "node",
"args": ["/path/to/comfyui-mcp/dist/index.js"],
"env": {}
}
}
}Or test the plugin directly:
claude --plugin-dir ./pluginProject structure
model-settings.json # Community-maintained model presets (shipped)
model-settings.user.jsonc.example # User override template (copied on install)
scripts/
postinstall.mjs # Auto-creates user config from template
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 strip_workflow)
workflow-slicer.ts # sliceWorkflow() — rgthree Fast-Groups-Bypass pipeline un-chunker (shared by the CLI + slice_workflow)
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
civitai-lookup.ts # CivitAI API lookup by content hash
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, mermaid_to_workflow
workflow-compose.ts # create_workflow, modify_workflow, get_node_info
workflow-validate.ts # validate_workflow
workflow-library.ts # list_workflows, get_workflow, strip_workflow, slice_workflow, save_workflow
image-management.ts # upload_image, workflow_from_image, list_output_images
model-management.ts # search_models, download_model, list_local_models
memory-management.ts # clear_vram, get_embeddings
registry-search.ts # search_custom_nodes, get_node_pack_details
skill-generator.ts # generate_node_skill
generation-tracker.ts # suggest_settings, generation_stats
diagnostics.ts # get_logs, get_history
process-control.ts # stop_comfyui, start_comfyui, restart_comfyui
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 monitorTroubleshooting
"ComfyUI not detected on ports 8188, 8000"
Make sure ComfyUI is running. The Desktop app uses port 8000 by default; the CLI uses 8188. Set COMFYUI_PORT if you're using a custom port.
"COMFYUI_PATH is not configured"
The auto-detection couldn't find your ComfyUI data directory. Set COMFYUI_PATH to the directory containing your models/ folder (e.g., ~/Documents/ComfyUI).
"Multiple ComfyUI installations detected"
This is informational — the server uses the first one found. Set COMFYUI_PATH to pick a specific installation.
Model downloads fail
For HuggingFace gated models, set HUGGINGFACE_TOKEN. For CivitAI, set CIVITAI_API_TOKEN.
Workflow execution errors
Use /comfy:debug to automatically diagnose failures. Or use get_history / get_logs directly to see detailed error messages including Python tracebacks from ComfyUI.
Out of memory (OOM)
Use clear_vram to free GPU memory before running large workflows. The VRAM watchdog hook will warn you automatically if memory is critically low. See the troubleshooting skill for model-specific VRAM estimates.
Missing custom nodes
Use /comfy:install <pack> to install missing node packs from the registry. The debug command will detect and suggest missing packs automatically.
Contributing
Contributions are welcome! See CONTRIBUTING.md for the dev setup, project conventions, how to add an MCP tool, and the release process.
Quick version: fork → branch (feat/my-feature) → make changes (ensure npm run build and
npm test pass; run npm run docs:gen if you touched tools) → open a PR.
Maintainer
Built and maintained by @artokun — a regular contributor across the Comfy-Org ecosystem:
Comfy-Org/ComfyUI_frontend — 10 merged PRs, mostly on the v2 graph renderer: subgraph rendering, promoted-widget plumbing, viewport persistence, with backports across
cloud/1.41,cloud/1.42,core/1.41, andcore/1.42.Comfy-Org/ComfyUI (core) — crash fixes in the Python backend's video/audio save path (#12683, #12550).
Comfy-Org folks (or anyone hiring around the ComfyUI ecosystem): I'd genuinely love to chat — art.longbottom.jr@gmail.com.
License
MIT — see LICENSE for details.
Changelog
See CHANGELOG.md for the full, structured release history.
Available Tools
48 toolsanalyze_workflowA
Load a saved workflow and return a structured analysis — sections, node settings, connections, and data flow. Use this to understand any workflow before modifying or executing it. Returns a concise text summary (not raw JSON) optimized for AI reasoning. Prefer this over get_workflow unless you need the raw JSON for enqueue_workflow or modify_workflow.
Inputs: filename (required), view, section.
cancel_jobA
Interrupt/cancel the currently running ComfyUI job. Optionally target a specific running job by prompt_id.
Inputs: prompt_id.
cancel_queued_jobA
Remove a specific pending job from the ComfyUI queue by prompt_id. Does not affect running jobs.
Inputs: prompt_id (required).
clear_queueA
Clear all pending jobs from the ComfyUI queue. Does not affect the currently running job.
Inputs: no named parameters.
clear_vramA
Free GPU VRAM by unloading cached models from ComfyUI. Use this between generation runs with different model families (e.g. switching from SDXL to Flux) or when running low on VRAM. Optionally unload only models or only memory.
Inputs: free_memory, unload_models.
create_workflowA
Create a ComfyUI workflow from a named template. Available templates: txt2img, img2img, upscale, inpaint, controlnet, ip_adapter. Returns the complete workflow JSON ready for execution or further modification.
Inputs: template (required), params.
download_modelA
Download a model file to the ComfyUI models directory from a URL (HuggingFace or direct link)
Inputs: url (required), target_subfolder (required), filename.
dsl_to_workflowA
Convert the compact workflow DSL (see workflow_to_dsl) back into executable ComfyUI API-format JSON. Useful for authoring/editing workflows in the legible DSL, then converting to run with enqueue_workflow. (Experimental.)
Inputs: dsl (required).
enqueue_workflowA
Submit a ComfyUI workflow for execution and return immediately with the prompt_id and queue position. Does not wait for completion. Use get_job_status to check progress later, or get_history to retrieve results and images after completion.
Inputs: workflow (required), disable_random_seed.
generate_imageA
Generate an image from a text prompt — the high-level entry point. Builds a txt2img workflow, filling any unspecified parameter from your configured defaults (set_defaults / COMFYUI_DEFAULT_* / config file), auto-selecting a local checkpoint when none is given. Returns the prompt_id immediately; the resulting asset_id arrives in the completion notification and can be passed to view_image or regenerate. For full control over the node graph, use create_workflow + enqueue_workflow instead.
Inputs: prompt (required), cfg, seed, steps, +7 more.
generate_node_skillA
Analyze a ComfyUI custom node pack and generate a Claude skill (.md) file describing all its nodes, inputs/outputs, and usage examples. Accepts a ComfyUI Registry ID or a GitHub repository URL as the source.
Inputs: source (required), install_in.
generate_with_controlnetA
Generate an image conditioned by a ControlNet preprocessed image (pose skeleton, depth, canny, normal, etc.) plus a text prompt. Upload the control image first with upload_image, then pass its filename as control_image. Unspecified params fall back to your defaults; checkpoint and controlnet_model auto-resolve from local models. Returns prompt_id immediately; asset_id arrives in the completion notification.
Inputs: prompt (required), control_image (required), cfg, seed, +9 more.
generate_with_ip_adapterA
Generate an image guided by a reference image's style/subject via IP-Adapter, plus a text prompt. Requires the ComfyUI_IPAdapter_plus custom nodes. Upload the reference first with upload_image, then pass its filename as reference_image. Unspecified params fall back to your defaults; checkpoint auto-resolves. Returns prompt_id immediately; asset_id arrives in the completion notification.
Inputs: prompt (required), reference_image (required), cfg, seed, +9 more.
generation_statsA
Show local generation tracking statistics — total runs, unique combos, breakdown by model family.
Inputs: model_family.
get_asset_metadataA
Get full provenance for a registered asset including the workflow snapshot that produced it. Use this to inspect the parameters that generated an image before calling regenerate with overrides.
Inputs: asset_id (required).
get_defaultsA
Return the merged view of generation defaults with per-source attribution. Precedence (lowest → highest): config file → COMFYUI_DEFAULT_* env vars → runtime overrides via set_defaults. Per-call MCP tool args always win over these defaults when consumed by a workflow-construction tool.
Inputs: no named parameters.
get_embeddingsA
List installed textual inversion embeddings. These can be used in prompts with the syntax embedding:name (e.g. embedding:easynegative).
Inputs: no named parameters.
get_historyA
Get execution history for a ComfyUI prompt. Returns status, timing, cached nodes, output details, and full error information including Python tracebacks. Use after a failed enqueue_workflow to diagnose what went wrong.
Inputs: prompt_id.
get_imageA
Fetch a generated image from ComfyUI and return it as an inline image. Works with remote ComfyUI instances — does not require COMFYUI_PATH. Use get_history first to obtain the filename.
Inputs: filename (required), type, save_dir, subfolder.
get_job_statusA
Check the execution status of a ComfyUI prompt/job by its ID.
Inputs: prompt_id (required).
get_logsB
Get ComfyUI server runtime logs. Useful for debugging execution errors, model loading issues, missing nodes, and Python tracebacks.
Inputs: keyword, max_lines.
get_node_infoA
Query ComfyUI's /object_info endpoint to get available node type definitions. Optionally filter by node type name (substring match). Returns node inputs, outputs, and descriptions.
Inputs: node_type.
get_node_pack_detailsB
Get detailed information about a specific ComfyUI custom node pack from the Registry
Inputs: id (required).
get_queueA
Get the current ComfyUI execution queue showing running and pending jobs.
Inputs: no named parameters.
get_system_statsA
Get ComfyUI system information including GPU, VRAM, Python version, and OS details.
Inputs: no named parameters.
get_workflowA
Load a saved workflow and return its raw JSON. Use analyze_workflow instead if you just need to understand the workflow — it returns a structured summary without flooding context with JSON. Use get_workflow only when you need the actual JSON for enqueue_workflow, modify_workflow, or save_workflow.
Inputs: filename (required), format.
list_assetsA
List recently generated assets from the in-memory registry, newest-first. Assets are registered automatically when a workflow completes successfully. The registry is ephemeral and clears on server restart; records expire after COMFYUI_ASSET_TTL_HOURS (default 24h).
Inputs: limit, since.
list_local_modelsA
List model files installed in the local ComfyUI models directory
Inputs: model_type.
list_output_imagesA
List recently generated images from ComfyUI's output directory. Returns filenames sorted newest-first. Requires COMFYUI_PATH. For remote ComfyUI, use get_history to find filenames, then get_image to fetch them.
Inputs: limit, pattern.
list_workflowsA
List saved workflows from the ComfyUI user library.
Inputs: no named parameters.
mermaid_to_workflowA
Convert a Mermaid flowchart diagram back into a ComfyUI workflow JSON. Parses node definitions, connections (with data type labels), and widget values from the mermaid syntax. Resolves node types and wires connections using ComfyUI's /object_info schemas. Fills missing inputs with defaults. Returns a valid, executable ComfyUI API workflow.
Inputs: mermaid (required).
modify_workflowA
Apply modification operations to an existing ComfyUI workflow. Supports: set_input, add_node, remove_node, connect, insert_between. Returns the modified workflow JSON and IDs of any newly added nodes.
Inputs: workflow (required), operations (required).
regenerateA
Re-enqueue the workflow that produced an existing asset, optionally applying parameter overrides. Overrides are applied to any node input matching the key name (e.g. cfg, steps, sampler_name, scheduler, seed, denoise, text). Seeds are re-randomized by default so each regenerate yields a fresh image unless seed is explicitly passed in overrides.
Inputs: asset_id (required), overrides, disable_random_seed.
restart_comfyuiA
Restart ComfyUI: stops the running process (capturing its config), waits for the port to free, relaunches with the same arguments, and waits for the API to become ready.
Inputs: no named parameters.
save_workflowB
Save a workflow to the ComfyUI user library so it appears in the web UI. Accepts either API format or UI format JSON.
Inputs: filename (required), workflow (required).
search_custom_nodesB
Search the ComfyUI Registry for custom node packs by keyword
Inputs: query (required), page, limit.
search_modelsB
Search HuggingFace for models compatible with ComfyUI (checkpoints, LoRAs, VAEs, etc.)
Inputs: query (required), limit, filter.
set_defaultsA
Update generation defaults. By default updates the in-memory runtime layer (lost on restart). Pass persist=true to also write the change into the config file (~/.config/comfyui-mcp/config.json by default). Use this to avoid repeating common values like width, height, steps, cfg, sampler, checkpoint.
Inputs: values (required), persist.
start_comfyuiA
Start ComfyUI using process info saved from a previous stop_comfyui call. Supports both Desktop app and manual Python installs. Waits up to 60s for the API to become ready.
Inputs: no named parameters.
stop_comfyuiA
Stop the running ComfyUI process. Captures process info so it can be restarted with start_comfyui. Kills the process tree and resets the WebSocket client.
Inputs: no named parameters.
suggest_settingsA
Suggest proven sampler/scheduler/steps/CFG settings based on local generation history. Query by model family, LoRA hash, or text search on model/LoRA names.
Inputs: limit, search, lora_hash, model_family.
upload_imageA
Upload a local image file to ComfyUI's input/ directory so it can be referenced in LoadImage nodes. Tries HTTP upload first (works with remote ComfyUI), falls back to filesystem copy when COMFYUI_PATH is set.
Inputs: source_path (required), filename.
validate_workflowA
Validate a ComfyUI workflow without executing it. Checks for missing node types, broken connections, invalid output indices, missing models, and other issues. Returns a list of errors and warnings.
Inputs: workflow (required).
view_imageA
Fetch a registered asset's bytes and return them as an inline image so the agent can see the result. Use this after enqueue_workflow completes (asset_id is included in the completion notification) to inspect, critique, or compare generated images. Only supports image mime types (PNG/JPEG/WebP); audio/video assets must be saved to disk via get_image.
Inputs: asset_id (required).
visualize_workflowA
Convert a ComfyUI workflow JSON into a Mermaid flowchart diagram. Returns mermaid syntax showing nodes grouped by category (loading, conditioning, sampling, image, output) with connections labeled by data type.
Inputs: workflow (required), direction, show_values.
visualize_workflow_hierarchicalA
Visualize a large ComfyUI workflow as a hierarchical diagram. Detects logical sections using node categories from /object_info, resolves Get/Set virtual wires, and produces either a compact overview (sections as summary nodes), a detailed view of one section, or a text listing of all sections. Best for workflows with 20+ nodes.
Inputs: workflow (required), view, section, direction, +1 more.
workflow_from_imageB
Extract embedded ComfyUI workflow metadata from a PNG file. ComfyUI stores the full workflow (API format) and prompt data in PNG tEXt chunks. Use this to reverse-engineer how any ComfyUI image was generated.
Inputs: image_path (required).
workflow_to_dslA
Convert a ComfyUI API-format workflow into a compact, human/LLM-readable DSL — easier to read and edit than raw JSON, and round-trips losslessly back via dsl_to_workflow. Connections render as key <- nodeId.outputIndex, literals as key = <JSON>. (Experimental.)
Inputs: workflow (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 48 tools
Each tool has a clear, distinct purpose with no overlaps. For example, analyze_workflow provides a structured summary while get_workflow returns raw JSON; cancel_job targets running jobs while cancel_queued_job targets pending ones. All tools are well-differentiated.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_workflow, list_assets, visualize_workflow_hierarchical). No mixed conventions or inconsistent verb styles.
At 48 tools, the server is excessively large. While each tool serves a specific purpose, the count far exceeds the typical 3-15 range for well-scoped servers and is well over the 25 threshold for 'too many'. Some consolidation would improve coherence.
The tool set covers virtually all aspects of ComfyUI management: workflow lifecycle, image generation with various conditioning, model/embedding management, queue control, system management, and analysis tools. No obvious gaps are present.
Maintenance
Related MCP Connectors
Remote MCP for RunComfy: ComfyUI deployments, hosted models, LoRA training. 31 tools.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Shared memory MCP server for Claude Code, Codex, Gemini CLI and Cursor. Cited, editable.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables Claude Desktop to interact with local ComfyUI installations for AI-powered image generation, including workflow management, model selection, real-time monitoring, and custom workflow execution through natural language.1410,574 npm18MIT
- AlicenseAqualityAmaintenanceMCP server + Claude Code plugin for ComfyUI: execute workflows, generate images, visualize pipelines as Mermaid diagrams, compose/validate workflows, manage and download models, control VRAM, and explore custom nodes. 36 tools, cross-platform, installs via npx -y comfyui-mcp.4110,574 npm906MIT
- AlicenseNot gradedqualityCmaintenanceA custom node plugin for ComfyUI that encapsulates workflows as templates, enabling AI assistants (Claude, Cursor) to invoke ComfyUI for multimedia generation via the MCP protocol.31MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to generate images via ComfyUI from natural language requests, automating workflow construction and execution.1MIT