What you can do with ComfyUI

Built for

AI Artists, Local Generative Media, Workflow Automation

Example workflows

Check ComfyUI is ready

Uses status read before queueing work.

Try this

Check whether my local ComfyUI server is running and summarize GPU memory and the current queue.

List checkpoints

Uses models list for workflow authoring.

Try this

List available checkpoint models in my local ComfyUI install so I can pick one for a txt2img workflow.

Fetch a finished render

Chains history + image read for review.

Try this

Given the latest ComfyUI history entry, fetch the output image and describe what was generated.

Context to know first

Does this run ComfyUI in the cloud?

No. Workflows execute on your machine through ComfyUI Desktop or a local ComfyUI server. MCPBundles Desktop forwards API calls to localhost.

Which port should I use?

ComfyUI Desktop usually listens on port 8000. Command-line ComfyUI installs often use 8188. Match the port in your MCPBundles connection to the value shown in ComfyUI's server settings.

AI Skill
SKILL.md

Domain knowledge for ComfyUI — workflow patterns, data models, and gotchas for your AI agent.

ComfyUI (local)

ComfyUI is a node-graph engine for diffusion and generative media. This bundle reaches the HTTP API on the user's machine through MCPBundles Desktop — not a hosted ComfyUI cloud.

Runtime requirements

  • ComfyUI Desktop or a ComfyUI server must be running locally with the HTTP API enabled.
  • ComfyUI Desktop defaults to 127.0.0.1:8000; CLI/portable installs often use 8188.
  • MCPBundles Desktop must be running on the same machine so the backend can forward HTTP to localhost.

Workflow shape

ComfyUI executes API prompt JSON: a map of string node ids to [node_class, {inputs}]. Example node classes: CheckpointLoaderSimple, CLIPTextEncode, KSampler, VAEDecode, SaveImage.

Typical generation flow:

  1. Optionally list checkpoints under the checkpoints models folder.
  2. Validate the graph before queueing — validation reports missing_models when weights are absent; it never auto-downloads.
  3. Manager-listed weights: search the ComfyUI-Manager catalog, then queue install with the exact catalog fields (name, type, base, save_path, filename, url).
  4. Weights not in Manager (ACE-Step, Stable Audio, template-only HuggingFace assets): download each missing file explicitly into the correct models/{folder}/ path.
  5. Probe one node class at a time when building graphs — the full object-info catalog is huge.
  6. Queue the graph; the response includes prompt_id.
  7. Wait with comfyui_wait_for_history for that prompt_id until status=success and output_files is populated.
  8. Pull each output using output_files[].fetch_tool and fetch_params — videos, gifs-bucket media, and audio use comfyui_get_output; models and safetensors use comfyui_get_file.
  9. Never guess filenames from Save node filename_prefix alone — paths include ComfyUI suffixes (_00001, nested subfolders).
  10. Upload datasets or small files under input/, output/, or models/ only (put is capped at 100 MB).

Output pull workflow (mandatory)

The root cause of “invisible” outputs is skipping history metadata and guessing paths. The correct chain:

comfyui_run_workflow → prompt_id comfyui_wait_for_history → output_files[] (fetch_tool + fetch_params per entry) comfyui_get_output or comfyui_get_file per entry → bytes / spillover URL
  • output_files is authoritative for MCP-queued runs. Each entry includes fetch_tool, fetch_params, and path.
  • comfyui_list_local_files (zone=output) walks on-disk folders — useful for browsing datasets, not as a substitute for history after a fresh queue.
  • file_path is accepted as an alias for path on comfyui_get_file.
  • comfyui_get_file falls back to HTTP /view when desktop disk read fails; on miss it retries exact candidate paths when disk listing finds them.
  • Caller-side persistence (saving bytes to a project folder) stays outside this provider. A future comfyui_sync_job may chain queue → wait → pull in one call.

LoRA training (kohya through ComfyUI)

Kohya sd-scripts runs inside ComfyUI via custom node packs (for example Kijai's ComfyUI-FluxTrainer with InitFluxLoRATraining, FluxTrainLoop, FluxTrainSave). Queue training like any other graph — there is no separate kohya server.

Training setup order:

  1. Confirm training node classes are registered on the instance.
  2. If missing: search the Manager custom-node catalog, install the pack, then install pip requirements for that pack.
  3. Place checkpoint and dataset files via Manager install or file upload.
  4. After a failed or OOM run: interrupt if needed, free GPU memory (optionally wait until free VRAM rises), reboot through Manager only when unload is not enough.
  5. Queue the FluxTrainer workflow, poll history, pull the .safetensors output from disk.

ComfyUI's built-in TrainLoraNode is a different trainer — not kohya. Prefer FluxTrainer nodes for kohya-style training and memory options such as blocks_to_swap on constrained GPUs.

Queue, memory, and recovery

After a failed or OOM run:

  1. Interrupt stops the in-progress job only — it does not clear pending queue items.
  2. Clear the queue to drop pending jobs that would re-run on stale VRAM.
  3. Free memory unloads models on the next idle tick; optional VRAM polling uses /system_stats.
  4. Manager reboot is the hard reset when /free is not enough.

Long jobs (LoRA training, 15–60+ minutes): prefer HTTP polling with a long timeout, or loop queue + history until the LoRA appears under models/loras/.

Validation, templates, and Manager installs

  • Live validation checks wires, paths, registered node classes, and missing weights on disk.
  • Workflow templates ship starter API prompts for common graphs (for example built-in WAN).
  • List local files to confirm datasets and checkpoints on disk before queueing.
  • Output discovery on Desktop: comfyui_list_local_files with zone=output and subpath (for example video/smoke_test) walks on-disk output via MCPBundles Desktop — use before queueing to confirm datasets, not as a substitute for output_files after MCP-queued runs.
  • Wait-for-history can use WebSocket progress when available, then fall back to HTTP poll without failing the turn on stream parse misses.
  • Install missing custom nodes for unregistered classes in a workflow via Manager.
  • Import-fail diagnostics explain packs that installed but failed to load.
  • Node schema probes return registered: false when a class is not loaded.

Manager catalog and direct downloads

  • Model catalog search reads /v2/externalmodel/getlist; installs use Manager's download queue (not arbitrary URLs). Idempotent when the file is already visible in the models list.
  • Custom-node catalog may be empty on ComfyUI Desktop until the database channel is set correctly — read Manager channel config (selected channel, db_mode) when search returns zero; probe /v2/customnode/getlist with mode=remote via the generic local HTTP request escape hatch when needed.
  • The install snapshot lists git custom node packs with enabled/disabled flags when the installed-pack route returns sparse rows on Desktop V4 builds.
  • List all model folder types (not only checkpoints/loras) before searching niche weight paths such as ipadapter or diffusion_models.
  • Manager install rejections often return HTTP 400; use allow_error_response on that escape hatch to read the raw body. Set expect_json=false for plain-text Manager policy routes.
  • Git URL custom-node installs are blocked when Manager security policy is strict — lower security in Desktop settings or install from the Manager UI.
  • Large checkpoints may still download after install returns in_progress; poll install status or list models.
  • Direct HuggingFace/Civitai downloads into models/{save_dir}/ when validation reports missing_models and the weight is not catalog-listed. Use background download (default) for multi-GB files, then poll download status or list models — blocking downloads hold the MCP SSE stream open and fail after ~15–20 minutes even though the ComfyUI host may still be downloading on disk.

Gotchas

  • Local GPU time: Runs on the user's hardware; large graphs can take minutes.
  • No built-in auth: Default ComfyUI binds to localhost only. Do not expose the port to the public internet.
  • History outputs: Always pull via output_files from comfyui_wait_for_history using each entry's fetch_tool. Videos/gifs/audio use comfyui_get_output; safetensors use comfyui_get_file.
  • node_errors: Invalid graphs return structured errors from the queue endpoint; fix inputs and retry.
  • Windows paths: Validation and queue normalize path separators to the host before running.
  • Large local files: Multi‑MB .safetensors may return a download link (spillover) instead of inline base64.

Tools in this Server (36)

Comfyui API Request

Call any ComfyUI or ComfyUI-Manager HTTP route on the user's local instance. Use for Manager routes not wrapped by dedicated tools (customnode/getlist...

Comfyui Clear Queue

Clear pending jobs from the local ComfyUI execution queue. Does not stop the currently running workflow — use comfyui_interrupt for that. Pair with co...

Comfyui Download Model

Download a model file into the local ComfyUI models folder from a direct HuggingFace or Civitai URL. Use for weights not listed in ComfyUI-Manager — c...

Comfyui Free Memory

Release GPU memory on the local ComfyUI instance. Calls ComfyUI POST /free to unload models and clear execution cache on the next idle tick. Use comfy...

Comfyui Get File

Read a file from the local ComfyUI install on the routed desktop machine. Paths must be relative to input/, output/, or models/. Prefer output_files f...

Comfyui Get History

Read ComfyUI execution history and outputs metadata. Pass prompt_id (returned by comfyui_run_workflow) to fetch one job's status, output_files (each w...

Comfyui Get Image

Download a generated image from the local ComfyUI server for inline vision in chat. Pass filename, subfolder, and type from history image outputs. PNG...

Comfyui Get Import Fail Info

Read ComfyUI-Manager import failure details for custom node packs. Use when a pack is installed but its node classes do not appear in comfyui_get_node...

Comfyui Get Install Snapshot

Read ComfyUI-Manager's current install snapshot: git custom node packs with enabled/disabled state, commit hashes, and optional pip packages. Authorit...

Comfyui Get Manager Config

Read ComfyUI-Manager database channel settings: selected channel, available channel URLs, db_mode, and update policy. Use when custom-node catalog sea...

Comfyui Get Manager Status

Check whether ComfyUI-Manager is available on the local ComfyUI instance and read its download queue state. Use before comfyui_install_model — Desktop...

Comfyui Get Model Download Status

Poll a background comfyui_download_model job or confirm a model file is visible under models/{folder}. Use download_id from the in_progress download r...

Comfyui Get Model Install Status

Poll ComfyUI-Manager for an install queued by comfyui_install_model, comfyui_install_custom_node, or comfyui_install_node_requirements. Pass save_path...

Comfyui Get Node Info

Get the input/output schema for one ComfyUI node class. Use when constructing or debugging workflow JSON for comfyui_run_workflow. Pass the internal c...

Comfyui Get Output

Fetch a ComfyUI history output via HTTP /view using filename, subfolder, and type from output_files fetch_params. Use for videos, gifs-bucket MP4, aud...

Comfyui Get Queue

Get ComfyUI's execution queue: jobs currently running and jobs waiting to run. Use comfyui_get_status for version and hardware info; use this when you...

Comfyui Get Status

Check whether ComfyUI is reachable on the user's machine and summarize runtime state. Returns ComfyUI version, Python/PyTorch versions, GPU/VRAM info ...

Comfyui Get Workflow Template

Return a starter ComfyUI API prompt template for common workloads (SDXL txt2img, SDXL LoRA via FluxTrainer nodes, WAN T2V smoke). Use wan_t2v_native_1...

Comfyui Install Custom Node

Install a custom node pack on the local ComfyUI instance via ComfyUI-Manager. Use comfyui_search_custom_node_catalog to discover catalog entries, or p...

Comfyui Install Missing Nodes For Workflow

Detect node classes in a workflow that are not registered on the local ComfyUI instance and queue ComfyUI-Manager installs for matching custom node pa...

Comfyui Install Model

Download a model into the local ComfyUI install via ComfyUI-Manager (same backend as the Manager UI). All fields must match a Manager catalog entry — ...

Comfyui Install Node Requirements

Install or repair Python dependencies for an installed custom node pack via ComfyUI-Manager. Uses the same Manager fix queue as the UI's dependency re...

Comfyui Interrupt

Cancel the workflow ComfyUI is currently executing. Does not remove pending queue items — use only to stop an in-progress generation.

Comfyui List Custom Nodes

List custom node packs installed on the local ComfyUI instance via ComfyUI-Manager. Optionally probe whether specific node classes are registered befo...

Comfyui List Local Files

List files in the local ComfyUI input, output, temp, or models directories. For input/output/temp on Desktop, reads the on-disk folder via MCPBundles ...

Comfyui List Model Folders

List every model folder type ComfyUI knows about (for example checkpoints, loras, ipadapter, diffusion_models). Use before comfyui_list_models when we...

Comfyui List Models

List model files available to the local ComfyUI instance for a given folder (checkpoints, loras, vae, etc.). Use the returned filenames when wiring Ch...

Comfyui Put File

Write a file into the local ComfyUI install on the routed desktop machine. Paths must be relative to input/, output/, or models/ — use this to upload ...

Comfyui Reboot Comfyui

Hard-restart the local ComfyUI server through ComfyUI-Manager. Use when comfyui_free_memory cannot reclaim resident VRAM after Flux training or repeat...

Comfyui Reinstall Custom Node

Reinstall a custom node pack via ComfyUI-Manager (uninstall + install). Use when a pack is corrupted or import failures persist after comfyui_install_...

Comfyui Reset Manager Queue

Clear the ComfyUI-Manager install download queue when it is stuck (in_progress_count stays high after files are already on disk). Does not delete mode...

Comfyui Run Workflow

Queue a ComfyUI workflow for execution on the user's local GPU. Pass workflow as the API prompt dict (node id → [class, inputs]). Returns prompt_id an...

Comfyui Search Custom Node Catalog

Search the ComfyUI-Manager custom node catalog on the local ComfyUI instance. Returns node pack metadata for comfyui_install_custom_node. Requires Com...

Comfyui Search Model Catalog

Search the ComfyUI-Manager model install catalog on the local ComfyUI instance. Returns entries with the exact name, type, base, save_path, filename, ...

Comfyui Validate Workflow

Validate a ComfyUI workflow against the live instance: wire references, path shape, registered node classes, and model files present on disk. When wei...

Comfyui Wait For History

Wait until a queued ComfyUI workflow finishes. Default poll_mode=auto tries WebSocket progress (value/max for ETA) then falls back to HTTP poll on kee...

Frequently Asked Questions

Does this run ComfyUI in the cloud?

No. Workflows execute on your machine through ComfyUI Desktop or a local ComfyUI server. MCPBundles Desktop forwards API calls to localhost.

Which port should I use?

ComfyUI Desktop usually listens on port 8000. Command-line ComfyUI installs often use 8188. Match the port in your MCPBundles connection to the value shown in ComfyUI's server settings.

How do I connect ComfyUI to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/comfyui. Authentication is handled automatically.

How many tools does ComfyUI provide?

ComfyUI provides 36 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does ComfyUI require?

ComfyUI uses API Key. ComfyUI requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect ComfyUI to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/comfyui

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to ComfyUI and paste the MCP URL into Remote MCP server URL.
  4. Click Add. ComfyUI will appear under Not connected — select it and click Connect to complete OAuth.
Name: ComfyUI
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/comfyui
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use ComfyUI?

Sign in to connect your credentials and start running tools from the chat.

ComfyUI MCP Server & Skill