ComfyUI MCP Server

Integra o ComfyUI com o MCP, permitindo o uso de fluxos de trabalho personalizados. Requer um servidor ComfyUI em execução.

Documentação

Servidor MCP do ComfyUI

1. Visão Geral

  • Uma implementação de servidor para integrar o ComfyUI com o MCP.
  • ⚠️ IMPORTANTE: Este servidor requer um servidor ComfyUI em execução.
    • Você deve hospedar seu próprio servidor ComfyUI,
    • ou ter acesso a um endereço de servidor ComfyUI existente.
ComfyUI Server MCP server

2. Depuração

2.1 Depuração do ComfyUI

python src/test_comfyui.py

2.2 Depuração do MCP

mcp dev src/server.py

3. Instalação e Configuração

3.1 Configuração do ComfyUI

  • Edite src/.env para definir o host e a porta do ComfyUI:

    COMFYUI_HOST=localhost
    COMFYUI_PORT=8188
    

3.2 Adicionando Fluxos de Trabalho Personalizados

  • Para adicionar novas ferramentas, coloque seus arquivos JSON de fluxo de trabalho no diretório workflows e declare-os como novas ferramentas no sistema.

4. Ferramentas Integradas

  • text_to_image

    • Retorna apenas a URL da imagem gerada.
    • Para obter a imagem real:
      • Use a ferramenta download_image, ou
      • Acesse a URL diretamente no seu navegador.
  • download_image

    • Baixa imagens geradas por outras ferramentas (como text_to_image) usando a URL da imagem.
  • run_workflow_with_file

    • Execute um fluxo de trabalho fornecendo o caminho para um arquivo JSON de fluxo de trabalho.

      # You should ask to agent like this.
      Run comfyui workflow with text_to_image.json
      
    • exemplo de imagem do CursorAI

  • run_workflow_with_json

    • Execute um fluxo de trabalho fornecendo os dados JSON do fluxo de trabalho diretamente.

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

5. Como Executar

5.1 Usando UV (Recomendado)

  • Exemplo de 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 Usando Docker

  • Baixar imagens para uma pasta local com download_image pode ser difícil, pois o contêiner Docker não compartilha o sistema de arquivos do host.
  • Ao usar Docker, considere:
    1. Defina RETURN_URL=false em .env para receber os dados da imagem como bytes.
    2. Defina COMFYUI_HOST em .env para o endereço apropriado (por exemplo, host.docker.internal ou o IP do seu servidor).
    3. Observação: Payloads grandes de imagem podem exceder os limites de resposta ao usar dados binários.

5.2.1 Construir Imagem Docker

# 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 Usando Imagens Existentes

Você também pode usar uma imagem pré-construída.

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

5.2.3 Usando Transporte SSE

  1. Execute o servidor SSE com Docker:

    docker run -i --rm -p 8001:8000 overseer66/mcp-comfyui-sse
    
  2. Configure mcp.json (altere localhost para seu IP ou domínio, se necessário):

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

NOTA: Ao adicionar novos fluxos de trabalho como ferramentas, você precisa reconstruir e reimplantar as imagens Docker para disponibilizá-los.