joenorton

ComfyUI MCP Server

Community joenorton
Updated

lightweight Python-based MCP (Model Context Protocol) server for local ComfyUI

ComfyUI MCP Server

A lightweight Python-based MCP (Model Context Protocol) server that interfaces with a local ComfyUI instance to generate images programmatically via AI agent requests.

Overview

This project enables AI agents to send image generation requests to ComfyUI using the MCP protocol over WebSocket. It supports:

  • Flexible workflow selection (e.g., basic_api_test.json).
  • Dynamic parameters: prompt, width, height, and model.
  • Returns image URLs served by ComfyUI.

Prerequisites

  • Python 3.10+
  • ComfyUI: Installed and running locally (e.g., on localhost:8188).
  • Dependencies: requests, websockets, mcp (install via pip).

Setup

  1. Clone the Repository:git clone cd comfyui-mcp-server

  2. Install Dependencies:

    pip install requests websockets mcp

  3. Start ComfyUI:

  • Install ComfyUI (see ComfyUI docs).
  • Run it on port 8188:
    cd <ComfyUI_dir>
    python main.py --port 8188
    
  1. Prepare Workflows:
  • Place API-format workflow files (e.g., basic_api_test.json) in the workflows/ directory.
  • Export workflows from ComfyUI’s UI with “Save (API Format)” (enable dev mode in settings).

Usage

  1. Run the MCP Server:python server.py
  • Listens on ws://localhost:9000.
  1. Test with the Client:python client.py
  • Sends a sample request: "a dog wearing sunglasses" with 512x512 using sd_xl_base_1.0.safetensors.
  • Output example:
    Response from server:
    {
      "image_url": "http://localhost:8188/view?filename=ComfyUI_00001_.png&subfolder=&type=output"
    }
    
  1. Custom Requests:
  • Modify client.py’s payload to change prompt, width, height, workflow_id, or model.
  • Example:
    "params": json.dumps({
        "prompt": "a cat in space",
        "width": 768,
        "height": 768,
        "workflow_id": "basic_api_test",
        "model": "v1-5-pruned-emaonly.ckpt"
    })
    

Project Structure

  • server.py: MCP server with WebSocket transport and lifecycle support.
  • comfyui_client.py: Interfaces with ComfyUI’s API, handles workflow queuing.
  • client.py: Test client for sending MCP requests.
  • workflows/: Directory for API-format workflow JSON files.

Notes

  • Ensure your chosen model (e.g., v1-5-pruned-emaonly.ckpt) exists in <ComfyUI_dir>/models/checkpoints/.
  • The MCP SDK lacks native WebSocket transport; this uses a custom implementation.
  • For custom workflows, adjust node IDs in comfyui_client.py’s DEFAULT_MAPPING if needed.

Contributing

Feel free to submit issues or PRs to enhance flexibility (e.g., dynamic node mapping, progress streaming).

License

Apache License

MCP Server · Populars

MCP Server · New

    node9-ai

    🛡️ Node9 Proxy

    The Execution Security Layer for the Agentic Era. Providing deterministic "Sudo" governance and audit logs for autonomous AI agents.

    Community node9-ai
    initMAX

    Zabbix MCP Server

    MCP server for the complete Zabbix API — 220 tools, multi-server support, bearer auth, systemd ready. Works with ChatGPT, Claude, VS Code, Codex, JetBrains and any MCP client.

    Community initMAX
    superradcompany

    microsandbox

    opensource secure local-first sandboxes for ai agents

    Community superradcompany
    vasylenko

    Bear Notes MCP Server

    MCP Server for Bear note taking app available as Claude Desktop extension or standalone server for any other AI tool

    Community vasylenko
    chrisryugj

    kordoc

    모두 파싱해버리겠다 — HWP/HWPX/PDF → Markdown | npm · CLI · MCP Server

    Community chrisryugj