Skip to main content
Glama

ComfyMCP

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.

Related MCP server: ComfyUI MCP Server

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

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

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

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

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.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hernantech/comfymcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server