Command Palette

Search for a command to run...

UnylyUnyly
Browse all

ComfyMCP

FreeNot checked

Enables Claude to generate images via ComfyUI from natural language requests, automating workflow construction and execution.

GitHubEmbed

About

Enables Claude to generate images via ComfyUI from natural language requests, automating workflow construction and execution.

README

Give Claude the ability to generate images with ComfyUI. Just ask for what you want in natural language.

You: "Generate an image of a robot painting a sunset"

Claude: I'll create that image for you.
        [builds 7-node workflow, executes it]
        Done! Generated robot_painting_00001.png in 2.3 seconds.

What You Can Ask

Once installed, Claude can handle requests like:

Image Generation

  • "Generate an image of a cat astronaut floating in space"
  • "Create a 1024x1024 fantasy landscape using SDXL"
  • "Make a portrait with negative prompt 'blurry, low quality'"

Model & System Info

  • "What checkpoint models do I have?"
  • "Show me the available samplers"
  • "What's my GPU memory usage?"

Workflow Control

  • "Use 30 steps instead of 20 for better quality"
  • "Generate 4 variations with different seeds"
  • "What's the status of my last generation?"

Claude handles all the complexity—discovering nodes, building connections, validating the workflow, and monitoring execution.

How It Works

When you ask Claude to generate an image, it builds a complete ComfyUI workflow:

[1] CheckpointLoaderSimple ─────────────────────────────┐
     ├── MODEL ──────────────────────────────────────────┤
     ├── CLIP ───┬──→ [3] CLIPTextEncode (positive) ────┤
     │           └──→ [4] CLIPTextEncode (negative) ────┤
     └── VAE ────────────────────────────────────────────┤
                                                         ▼
[2] EmptyLatentImage ──────────────────────────→ [5] KSampler
                                                         │
                                                         ▼
                                                 [6] VAEDecode
                                                         │
                                                         ▼
                                                 [7] SaveImage

This happens automatically. Claude:

  1. Discovers available nodes and their inputs/outputs
  2. Builds the workflow with proper connections
  3. Validates everything before execution
  4. Queues the job and monitors completion
  5. Reports the output filename

Installation

Prerequisites

  • ComfyUI running (default: localhost:8188)
  • uv package manager
# Install uv if needed
curl -LsSf https://astral.sh/uv/install.sh | sh

Claude Code (CLI)

claude mcp add comfyui \
  --transport stdio \
  --env COMFYUI_HOST=127.0.0.1 \
  --env COMFYUI_PORT=8188 \
  -- uvx --from git+https://github.com/hernantech/comfymcp comfymcp

Claude Desktop

Add to your config file:

  • Linux: ~/.config/claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "comfyui": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/hernantech/comfymcp", "comfymcp"],
      "env": {
        "COMFYUI_HOST": "127.0.0.1",
        "COMFYUI_PORT": "8188"
      }
    }
  }
}

Verify Installation

Ask Claude: "Check if ComfyUI is connected"

You should see confirmation that the server is online with GPU info.

Configuration

Environment Variable Description Default
COMFYUI_HOST ComfyUI server address 127.0.0.1
COMFYUI_PORT ComfyUI server port 8188
COMFYUI_API_KEY API key (if required) None

For remote ComfyUI servers, update the host:

claude mcp add comfyui \
  --env COMFYUI_HOST=192.168.1.100 \
  ...

Reference

Available MCP Tools

Workflow Execution
Tool Description
queue_prompt Submit a workflow for execution
get_queue_status Check running/pending jobs
get_job_status Get status of a specific job
get_history View execution history
interrupt_execution Stop current generation
clear_queue Clear pending jobs
Workflow Building
Tool Description
create_workflow Start a new workflow session
add_node Add a node with inputs
build_workflow Finalize and validate
validate_workflow Check for errors
list_nodes Search available nodes
get_node_info Get node specifications
refresh_nodes Reload node definitions
Assets & Models
Tool Description
list_models List checkpoints, LoRAs, VAEs, etc.
list_embeddings List textual inversions
list_output_images List generated images
get_image Retrieve an image
upload_image Upload for img2img
System
Tool Description
check_connection Verify ComfyUI is reachable
get_system_stats GPU memory, system info
free_memory Unload models, clear cache
get_extensions List installed extensions

MCP Resources

URI Description
comfyui://nodes All available nodes
comfyui://nodes/categories Node categories
comfyui://nodes/{class_type} Specific node definition
comfyui://outputs Recent outputs
comfyui://images/{filename} Retrieve image

Python API

For programmatic use outside of MCP:

from comfymcp.workflow import WorkflowBuilder

builder = WorkflowBuilder()

# Nodes return refs with named outputs
checkpoint = builder.add_node("CheckpointLoaderSimple",
    ckpt_name="sd_turbo.safetensors")

latent = builder.add_node("EmptyLatentImage",
    width=512, height=512, batch_size=1)

positive = builder.add_node("CLIPTextEncode",
    clip=checkpoint.CLIP,  # Named output connection
    text="a beautiful sunset")

negative = builder.add_node("CLIPTextEncode",
    clip=checkpoint.CLIP,
    text="ugly, blurry")

sampler = builder.add_node("KSampler",
    model=checkpoint.MODEL,
    positive=positive.CONDITIONING,
    negative=negative.CONDITIONING,
    latent_image=latent.LATENT,
    seed=42, steps=4, cfg=1.0,
    sampler_name="euler", scheduler="normal", denoise=1.0)

decode = builder.add_node("VAEDecode",
    samples=sampler.LATENT,
    vae=checkpoint.VAE)

builder.add_node("SaveImage",
    images=decode.IMAGE,
    filename_prefix="output")

workflow = builder.build()

Templates

from comfymcp.templates import Text2ImgTemplate, Img2ImgTemplate

# Text to image
txt2img = Text2ImgTemplate(
    checkpoint="sd_turbo.safetensors",
    positive_prompt="a majestic mountain",
    negative_prompt="ugly, blurry",
    width=512, height=512,
    steps=4, cfg=1.0
)
workflow = txt2img.build()

# Image to image
img2img = Img2ImgTemplate(
    checkpoint="sd_turbo.safetensors",
    image="input.png",
    positive_prompt="enhance details",
    denoise=0.6
)
workflow = img2img.build()

Direct Client Usage

from comfymcp.client import ComfyUIClient

async with ComfyUIClient(host="127.0.0.1", port=8188) as client:
    # Queue workflow
    result = await client.queue_prompt(workflow)

    # Check status
    history = await client.get_history(prompt_id=result.prompt_id)

    # List models
    checkpoints = await client.get_models("checkpoints")

Requirements

  • Python 3.10+
  • ComfyUI server running
  • MCP-compatible client (Claude Code, Claude Desktop, Cursor, etc.)

License

MIT License - see LICENSE for details.

from github.com/hernantech/comfymcp

Install ComfyMCP in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install comfymcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add comfymcp -- uvx --from git+https://github.com/hernantech/comfymcp comfymcp

FAQ

Is ComfyMCP MCP free?

Yes, ComfyMCP MCP is free — one-click install via Unyly at no cost.

Does ComfyMCP need an API key?

No, ComfyMCP runs without API keys or environment variables.

Is ComfyMCP hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install ComfyMCP in Claude Desktop, Claude Code or Cursor?

Open ComfyMCP on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare ComfyMCP with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs