RunComfy MCP

Servidor MCP oficial remoto para a API Serverless da RunComfy (ComfyUI): gerencie implantações de GPU e execute inferência assíncrona de imagem/vídeo.

Documentação

RunComfy MCP

Website Docs

Servidor MCP para a API Serverless RunComfy (ComfyUI). Gerencie implantações, execute inferências e recupere resultados de assistentes de IA como Claude, Cursor e Windsurf.

Site: www.runcomfy.com

Endpoint: https://mcp.runcomfy.com/mcp

Documentação: docs.runcomfy.com/mcp


O que ele faz

10 ferramentas que espelham docs.runcomfy.com/serverless 1:1:

CategoriaFerramentas
Gerenciamento de implantaçõeslist_deployments, get_deployment, create_deployment, update_deployment, delete_deployment
Inferênciasubmit_request, get_request_status, get_request_result, cancel_request
Avançadocall_instance_proxy

Configuração rápida

Claude Code

claude mcp add runcomfy \
  --transport streamable-http \
  https://mcp.runcomfy.com/mcp \
  --header "Authorization: Bearer <YOUR_RUNCOMFY_TOKEN>"

Cursor

Adicione em .cursor/mcp.json:

{
  "mcpServers": {
    "runcomfy": {
      "url": "https://mcp.runcomfy.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_RUNCOMFY_TOKEN>"
      }
    }
  }
}

Windsurf

Adicione em Windsurf Settings > MCP:

{
  "mcpServers": {
    "runcomfy": {
      "serverUrl": "https://mcp.runcomfy.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_RUNCOMFY_TOKEN>"
      }
    }
  }
}

Obtenha seu token de API na página do seu Perfil.


Arquitetura

MCP Client  ──Bearer token──>  Cloudflare Worker (/mcp)
                                      │
                                      ▼
                              Cloudflare Container
                              (Python FastMCP app)
                                      │
                                      ▼
                              api.runcomfy.net
                              (using caller's token)
  • Cloudflare Worker (src/index.ts) — proxy leve: CORS, verificação de tamanho do corpo, encaminha o token do chamador para o contêiner. Sem lógica de autenticação — api.runcomfy.net lida com a autenticação.
  • Contêiner Python (server.py) — aplicativo FastMCP com 10 ferramentas. Usa o token do chamador (encaminhado via cabeçalho x-runcomfy-user-token) para todas as chamadas de API de saída. Cada usuário vê apenas suas próprias implantações.
  • Contêiner Cloudflare inicia automaticamente na primeira solicitação e dorme após 10 minutos de inatividade.

Estrutura do projeto

src/index.ts          Cloudflare Worker entrypoint
server.py             MCP tool definitions (10 tools)
runcomfy_client.py    RunComfy API client (serverless endpoints)
container_app.py      ASGI middleware (request IDs, token forwarding)
container_entrypoint.py  Uvicorn startup
container_runtime.py  Env validation, structured logging
wrangler.jsonc        Cloudflare Worker + Container config
Dockerfile            Container image
.env.example          Local dev config

Desenvolvimento local

# Python 3.11+
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Set RUNCOMFY_API_KEY in .env
python -m container_entrypoint

Endpoints locais:

  • http://127.0.0.1:8000/healthz
  • http://127.0.0.1:8000/mcp

No modo local (sem Worker), o aplicativo Python usa RUNCOMFY_API_KEY de .env para todas as chamadas de saída.


Implantação

Requer o plano pago do Cloudflare Workers com Containers habilitados.

npm install

# Set the API key secret (one-time)
npx wrangler secret put RUNCOMFY_API_KEY

# Deploy
CLOUDFLARE_ACCOUNT_ID=<your-account-id> npx wrangler deploy

O endpoint MCP entra no ar em https://mcp.runcomfy.com/mcp (domínio personalizado configurado em wrangler.jsonc).


Variáveis de ambiente

Segredos do Worker (definidos via wrangler secret put)

NomeObrigatórioDescrição
RUNCOMFY_API_KEYSimChave de API de fallback para o contêiner

Variáveis do Worker (em wrangler.jsonc)

NomePadrãoDescrição
CONTAINER_INSTANCE_NAMEruncomfy-unifiedNome da instância do Durable Object
CONTAINER_STARTUP_TIMEOUT_MS15000Tempo máximo de espera para iniciar o contêiner
CONTAINER_PORT_READY_TIMEOUT_MS30000Tempo máximo de espera para a porta ficar pronta
MCP_MAX_BODY_BYTES1048576Tamanho máximo do corpo da solicitação
RUNCOMFY_SERVERLESS_BASE_URLhttps://api.runcomfy.netURL base da API Serverless

Desenvolvimento local (arquivo .env)

NomeObrigatórioDescrição
RUNCOMFY_API_KEYSimSeu token de API RunComfy
RUNCOMFY_SERVERLESS_BASE_URLNãoSubstituir URL base (padrão: https://api.runcomfy.net)
RUNCOMFY_MCP_MOUNT_PREFIXNãoPrefixo de caminho para montagem MCP (padrão: vazio)