RunComfy MCP
Servidor MCP oficial remoto para la API Serverless de RunComfy (ComfyUI): administra despliegues de GPU y ejecuta inferencia asíncrona de imágenes/videos.
Documentación
RunComfy MCP
Servidor MCP para la API Serverless de RunComfy (ComfyUI). Gestiona despliegues, ejecuta inferencias y recupera resultados desde asistentes de IA como Claude, Cursor y Windsurf.
Sitio web: www.runcomfy.com
Endpoint: https://mcp.runcomfy.com/mcp
Documentación: docs.runcomfy.com/mcp
Qué hace
10 herramientas que reflejan docs.runcomfy.com/serverless 1:1:
| Categoría | Herramientas |
|---|---|
| Gestión de despliegues | list_deployments, get_deployment, create_deployment, update_deployment, delete_deployment |
| Inferencia | submit_request, get_request_status, get_request_result, cancel_request |
| Avanzado | call_instance_proxy |
Configuración rápida
Claude Code
claude mcp add runcomfy \
--transport streamable-http \
https://mcp.runcomfy.com/mcp \
--header "Authorization: Bearer <YOUR_RUNCOMFY_TOKEN>"
Cursor
Añade a .cursor/mcp.json:
{
"mcpServers": {
"runcomfy": {
"url": "https://mcp.runcomfy.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_RUNCOMFY_TOKEN>"
}
}
}
}
Windsurf
Añade en Windsurf Settings > MCP:
{
"mcpServers": {
"runcomfy": {
"serverUrl": "https://mcp.runcomfy.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_RUNCOMFY_TOKEN>"
}
}
}
}
Obtén tu token de API desde tu página de Perfil.
Arquitectura
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 ligero: CORS, verificación de tamaño de cuerpo, reenvía el token del llamante al contenedor. Sin lógica de autenticación —api.runcomfy.netmaneja la autenticación. - Contenedor Python (
server.py) — aplicación FastMCP con 10 herramientas. Usa el token del llamante (reenviado mediante el encabezadox-runcomfy-user-token) para todas las llamadas API salientes. Cada usuario ve solo sus propios despliegues. - Contenedor Cloudflare se inicia automáticamente en la primera solicitud y se duerme después de 10 minutos de inactividad.
Estructura del proyecto
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
Desarrollo 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 locales:
http://127.0.0.1:8000/healthzhttp://127.0.0.1:8000/mcp
En modo local (sin Worker), la aplicación Python usa RUNCOMFY_API_KEY desde .env para todas las llamadas salientes.
Despliegue
Requiere el plan de pago Cloudflare Workers con Containers habilitado.
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
El endpoint MCP se activa en https://mcp.runcomfy.com/mcp (dominio personalizado configurado en wrangler.jsonc).
Variables de entorno
Secretos del Worker (configurados mediante wrangler secret put)
| Nombre | Requerido | Descripción |
|---|---|---|
RUNCOMFY_API_KEY | Sí | Clave API de respaldo para el contenedor |
Variables del Worker (en wrangler.jsonc)
| Nombre | Predeterminado | Descripción |
|---|---|---|
CONTAINER_INSTANCE_NAME | runcomfy-unified | Nombre de la instancia del Durable Object |
CONTAINER_STARTUP_TIMEOUT_MS | 15000 | Espera máxima para el inicio del contenedor |
CONTAINER_PORT_READY_TIMEOUT_MS | 30000 | Espera máxima para que el puerto esté listo |
MCP_MAX_BODY_BYTES | 1048576 | Tamaño máximo del cuerpo de la solicitud |
RUNCOMFY_SERVERLESS_BASE_URL | https://api.runcomfy.net | URL base de la API Serverless |
Desarrollo local (archivo .env)
| Nombre | Requerido | Descripción |
|---|---|---|
RUNCOMFY_API_KEY | Sí | Tu token de API de RunComfy |
RUNCOMFY_SERVERLESS_BASE_URL | No | Sobrescribe la URL base (predeterminado: https://api.runcomfy.net) |
RUNCOMFY_MCP_MOUNT_PREFIX | No | Prefijo de ruta para el montaje MCP (predeterminado: vacío) |