Labsco
Overseer66 logo

ComfyUI MCP Server

โ˜… 23

from Overseer66

Integrates ComfyUI with MCP, allowing the use of custom workflows. Requires a running ComfyUI server.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeQuick setup

ComfyUI MCP Server

1. Overview

  • A server implementation for integrating ComfyUI with MCP.
  • โš ๏ธ IMPORTANT: This server requires a running ComfyUI server.
    • You must either host your own ComfyUI server,
    • or have access to an existing ComfyUI server address.
ComfyUI Server MCP server

2. Debugging

2.1 ComfyUI Debugging

python src/test_comfyui.py

2.2 MCP Debugging

mcp dev src/server.py

4. Built-in Tools

  • text_to_image

    • Returns only the URL of the generated image.

    • To get the actual image:

      • Use the download_image tool, or
      • Access the URL directly in your browser.
    • download_image

      • Downloads images generated by other tools (like text_to_image) using the image URL.
    • run_workflow_with_file

      • Run a workflow by providing the path to a workflow JSON file.

        # You should ask to agent like this.
        Run comfyui workflow with text_to_image.json
      • example image of CursorAI

    • run_workflow_with_json

      • Run a workflow by providing the workflow JSON data directly.

        # You should ask to agent like this.
        Run comfyui workflow with this 
        {
          "3": {
              "inputs": {
                  "seed": 156680208700286,
                  "steps": 20,
            ... (workflow JSON example)
        }

5. How to Run

  • Example mcp.json:

    {
      "mcpServers": {
        "comfyui": {
          "command": "uv",
          "args": [
            "--directory",
            "PATH/MCP/comfyui",
            "run",
            "--with",
            "mcp",
            "--with",
            "websocket-client",
            "--with",
            "python-dotenv",
            "mcp",
            "run",
            "src/server.py:mcp"
          ]
        }
      }
    }

5.2 Using Docker

  • Downloading images to a local folder with download_image may be difficult since the Docker container does not share the host filesystem.
  • When using Docker, consider:
    1. Set RETURN_URL=false in .env to receive image data as bytes.
    2. Set COMFYUI_HOST in .env to the appropriate address (e.g., host.docker.internal or your server's IP).
    3. Note: Large image payloads may exceed response limits when using binary data.

5.2.1 Build Docker Image

# First build image
docker image build -t mcp/comfyui .
{
  "mcpServers": {
    "comfyui": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p",
        "3001:3000",
        "mcp/comfyui"
      ]
    }
  }
}

5.2.2 Using Existing Images

Also you can use prebuilt image.

{
  "mcpServers": {
    "comfyui": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p",
        "3001:3000",
        "overseer66/mcp-comfyui"
      ]
    }
  }
}

5.2.3 Using SSE Transport

  1. Run the SSE server with Docker:

    docker run -i --rm -p 8001:8000 overseer66/mcp-comfyui-sse
  2. Configure mcp.json (change localhost to your IP or domain if needed):

    {
      "mcpServers": {
        "comfyui": {
          "url": "http://localhost:8001/sse" 
        }
      }
    }

NOTE: When adding new workflows as tools, you need to rebuild and redeploy the Docker images to make them available.