Skip to main content
Glama

ComfyUI MCP Server

ComfyUI MCP Server

CI codecov PyPI version Python 3.10+ License: MIT

DSL-first workflow management for ComfyUI via Model Context Protocol (MCP)

A production-ready MCP server that enables AI agents to manage ComfyUI workflows using a human-readable Domain Specific Language (DSL). The core design philosophy is DSL-first: agents work entirely in DSL format, with JSON conversion happening transparently.

šŸš€ Quick Start

Installation

pip install comfy-mcp

Usage with Claude Code

  1. Create MCP configuration:

{ "mcpServers": { "comfyui-workflows": { "command": "comfy-mcp", "args": [], "env": {} } } }
  1. Start Claude Code with MCP:

claude --mcp-config mcp_config.json
  1. Use in conversation:

"Execute this workflow: [paste DSL]" "List workflows in examples directory" "Show ComfyUI queue status"

✨ Features

šŸ”„ DSL-First Design

  • Agents work entirely in human-readable DSL

  • Automatic JSON ↔ DSL conversion

  • No need to think about format conversion

šŸ“ File Operations

  • read_workflow - Auto-converts JSON to DSL

  • write_workflow - Saves DSL as JSON/DSL

  • list_workflows - Discovers workflow files

  • validate_workflow - DSL syntax validation

  • get_workflow_info - Workflow analysis

⚔ Execution Operations

  • execute_workflow - Run DSL workflows on ComfyUI

  • get_job_status - Monitor execution & download images

  • list_comfyui_queue - View ComfyUI queue status

šŸŽØ DSL Syntax Example

## Model Loading checkpoint: CheckpointLoaderSimple ckpt_name: sd_xl_base_1.0.safetensors ## Text Conditioning positive: CLIPTextEncode text: a beautiful landscape, detailed, photorealistic clip: @checkpoint.clip negative: CLIPTextEncode text: blurry, low quality clip: @checkpoint.clip ## Generation latent: EmptyLatentImage width: 1024 height: 1024 sampler: KSampler model: @checkpoint.model positive: @positive.conditioning negative: @negative.conditioning latent_image: @latent.latent seed: 42 steps: 20 ## Output decode: VAEDecode samples: @sampler.latent vae: @checkpoint.vae save: SaveImage images: @decode.image filename_prefix: output

šŸ—ļø Architecture

ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” │ AI Agent │────│ MCP Server │────│ ComfyUI │ │ (Claude) │ │ │ │ Server │ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ │ │ │ │ DSL Workflows │ JSON API │ │ │ │ ā–¼ ā–¼ ā–¼ Natural Language ────► DSL Parser ────► JSON Converter

Key Components:

  • DSL Parser: Converts human-readable DSL to Abstract Syntax Tree

  • JSON Converter: Bidirectional conversion between DSL and ComfyUI JSON

  • MCP Server: Exposes tools via Model Context Protocol

  • Execution Engine: Integrates with ComfyUI API for workflow execution

šŸ“– Documentation

Core Classes

  • DSLParser: Parse DSL text into Abstract Syntax Tree

  • DslToJsonConverter: Convert DSL AST to ComfyUI JSON

  • JsonToDslConverter: Convert ComfyUI JSON to DSL AST

MCP Tools

Tool

Description

Example

read_workflow

Read and convert workflows to DSL

read_workflow("workflow.json")

write_workflow

Write DSL to disk as JSON/DSL

write_workflow("output.json", dsl)

list_workflows

Find workflow files

list_workflows("./workflows")

validate_workflow

Check DSL syntax

validate_workflow(dsl_content)

get_workflow_info

Analyze structure

get_workflow_info(dsl_content)

execute_workflow

Run on ComfyUI

execute_workflow(dsl_content)

get_job_status

Monitor execution

get_job_status(prompt_id)

list_comfyui_queue

View queue

list_comfyui_queue()

šŸ› ļø Development

Setup

git clone https://github.com/christian-byrne/comfy-mcp.git cd comfy-mcp pip install -e ".[dev]" pre-commit install

Testing

# Run all tests pytest # Run with coverage pytest --cov=comfy_mcp --cov-report=html # Run specific test types pytest -m unit pytest -m integration pytest -m "not slow"

Code Quality

# Format code black . # Lint code ruff check . # Type checking mypy comfy_mcp

Documentation

cd docs make html

šŸ”§ Configuration

Environment Variables

  • COMFYUI_SERVER: ComfyUI server address (default: 127.0.0.1:8188)

  • MCP_DEBUG: Enable debug logging

  • MCP_LOG_LEVEL: Set log level (DEBUG, INFO, WARNING, ERROR)

ComfyUI Setup

  1. Install ComfyUI

  2. Start server: python main.py --listen 0.0.0.0

  3. Ensure models are installed in models/checkpoints/

šŸ¤ Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development Workflow

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature-name

  3. Make changes and add tests

  4. Run tests and linting: pytest && black . && ruff check .

  5. Submit a pull request

šŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

šŸ™ Acknowledgments

  • ComfyUI - Amazing stable diffusion GUI

  • FastMCP - Excellent MCP framework

  • Anthropic - Model Context Protocol specification

šŸ“ˆ Roadmap

  • v0.2.0: Enhanced DSL features (templates, macros)

  • v0.3.0: Web UI for workflow management

  • v0.4.0: Git integration for workflow versioning

  • v0.5.0: ComfyUI node discovery and documentation

  • v1.0.0: Production deployment features


Built with ā¤ļø for the ComfyUI and AI automation community

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Enables AI agents to manage ComfyUI workflows using a human-readable Domain Specific Language (DSL), with automatic conversion to/from JSON format. Supports workflow creation, validation, execution, and monitoring through natural language interactions.

  1. šŸš€ Quick Start
    1. Installation
    2. Usage with Claude Code
  2. ✨ Features
    1. šŸ”„ DSL-First Design
    2. šŸ“ File Operations
    3. ⚔ Execution Operations
    4. šŸŽØ DSL Syntax Example
  3. šŸ—ļø Architecture
    1. šŸ“– Documentation
      1. Core Classes
      2. MCP Tools
    2. šŸ› ļø Development
      1. Setup
      2. Testing
      3. Code Quality
      4. Documentation
    3. šŸ”§ Configuration
      1. Environment Variables
      2. ComfyUI Setup
    4. šŸ¤ Contributing
      1. Development Workflow
    5. šŸ“„ License
      1. šŸ™ Acknowledgments
        1. šŸ“ˆ Roadmap

          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/christian-byrne/comfy-mcp'

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