ComfyUI MCP
MCP server that wraps ComfyUI (SDXL/Wan 2.2) for image and short-video generation.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
ghcr.io/germaniu/comfyui-mcp:0.1.1claude mcp add comfyui-mcp -e 'COMFYUI_URL=http://127.0.0.1:8188' -e 'COMFYUI_PUBLIC_URL=<COMFYUI_PUBLIC_URL>' -e 'MCP_AUTH_TOKEN=<your mcp_auth_token>' -- docker run -i --rm ghcr.io/germaniu/comfyui-mcp:0.1.1 --stdio
{
"mcpServers": {
"comfyui-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/germaniu/comfyui-mcp:0.1.1",
"--stdio"
],
"env": {
"COMFYUI_URL": "http://127.0.0.1:8188",
"COMFYUI_PUBLIC_URL": "<COMFYUI_PUBLIC_URL>",
"MCP_AUTH_TOKEN": "<your mcp_auth_token>"
}
}
}
}
Variables d'environnement
COMFYUI_URLLoopback URL of the ComfyUI engine. Inside a container 127.0.0.1 is the container itself, so point it at the host running ComfyUI (e.g. http://host.docker.internal:8188 or the LAN IP).COMFYUI_PUBLIC_URLLAN base URL used to build direct image download links.MCP_AUTH_TOKENsecret Only applies when the container runs in HTTP mode. If set, every HTTP request must carry an Authorization: Bearer header.
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
- ComfyUI MCP — Generación de imágenes para agentes IA vía Model Context Protocol (MCP)
- 💡 Por qué existe
- 🏗️ Arquitectura y Deslinde de Componentes
- 📦 Instalación Rápida
- ⚙️ Configuración (Variables de Entorno)
- 🛠️ Herramientas Expuestas (Tool Reference)
- 🎨 Matriz de Presets
- 🧭 ¿Y los otros servidores MCP de ComfyUI?
- 🔗 Integración con Clientes MCP
- 📋 Componentes Faltantes y Roadmap (Server Gaps)
- 🧪 Pruebas Unitarias
- 📄 Licencia
English · Español
ComfyUI MCP — Generación de imágenes para agentes IA vía Model Context Protocol (MCP)
Conecta la generación de imágenes SDXL a cualquier agente IA en tu red. Servidor MCP open source que expone inferencia de ComfyUI (SDXL / RTX 3060) a Claude Code, Cursor, Windsurf, Hermes Gateway y cualquier cliente compatible con Model Context Protocol. FastMCP HTTP/SSE + GPU Arbiter, cero dependencias en clientes, 100% en tu hardware.
Tags: mcp-server · comfyui · sdxl · image-generation · ai-agents · fastmcp · claude-code · cursor · hermes-gateway · gpu-arbiter · local-first · self-hosted
El agente pide una imagen con un preset y recibe la URL de descarga — la GPU trabaja en el server, el cliente no instala PyTorch.
💡 Por qué existe
Generar imágenes en entornos multi-agente requiere instalar bibliotecas pesadas de PyTorch, GPUs dedicadas y configuraciones complejas en cada máquina cliente. ComfyUI MCP resuelve esto actuando como un adaptador middleware HTTP/SSE desacoplado:
- 🚀 Cero Instalación Local: Cualquier cliente o gateway consumirá la generación de imágenes vía HTTP/SSE en puerto
8201sin instalar PyTorch ni bajar modelos SDXL localmente. - 🧠 GPU Arbiter Inteligente: Alterna automáticamente entre
llama-server(LLMs) yComfyUIen GPUs de 12GB (RTX 3060) sin colisiones de VRAM. - 🎯 Presets Profesionales: Generación lista para producción con presets como
producto(RealVisXL V4.0) orealista(Juggernaut XL).
🏗️ Arquitectura y Deslinde de Componentes
⚠️ IMPORTANTE: Entender los Límites del Sistema
comfyui-mcpes únicamente la capa de transporte e interfaz MCP. No incluye el motor de inferencia de ComfyUI ni los archivos de peso de modelos. Para la guía de despliegue del servidor backend en el host Linux/Pop!_OS, consulta docs/SERVER_SETUP.md y docs/ARCHITECTURE.md.
+-------------------------------------------------------+
| Clientes MCP (LAN) |
| (Claude Code CLI / Cursor / Windsurf / Hermes Gateway)|
+-------------------------------------------------------+
|
| HTTP / SSE (Puerto 8201)
v
+-------------------------------------------------------+
| comfyui-mcp Server |
| (FastMCP + Workflow JSON Builder) |
+-------------------------------------------------------+
|
| Loopback HTTP (Puerto 8188)
v
+-------------------------------------------------------+
| ComfyUI Backend Host |
| (PyTorch + CUDA + SDXL Checkpoints + GPU Arbiter) |
+-------------------------------------------------------+
📦 Instalación Rápida
Requisitos
- Python 3.11+
uv≥ 0.13.4 (recomendado) opip≥ 26.2.2: las versiones anteriores aún confían en la CA emSign comprometida (GHSA-6q48-6c7w-9gw2).pyproject.tomlexige el mínimo de uv ([tool.uv] required-version).
Clonar e Instalar
git clone https://github.com/GermaniU/comfyui-mcp.git
cd comfyui-mcp
# Crear entorno virtual e instalar
uv venv
source .venv/bin/activate
uv pip install -e .
⚙️ Configuración (Variables de Entorno)
Crea un archivo .env o exporta las siguientes variables:
| Variable | Valor por Defecto | Descripción |
|---|---|---|
COMFYUI_URL | http://127.0.0.1:8188 | URL loopback donde escucha el motor de ComfyUI. |
COMFYUI_PUBLIC_URL | http://<YOUR_SERVER_IP>:8188 | Base URL pública/LAN para descarga de imágenes. |
MCP_HOST | 0.0.0.0 | Host binding para el servidor MCP. |
MCP_PORT | 8201 | Puerto HTTP/SSE del servidor MCP. |
MCP_AUTH_TOKEN | (vacío = sin auth) | Si se define, exige header Authorization: Bearer <token> en cada request HTTP/SSE. |
MCP_CORS_ORIGINS | * | Orígenes CORS permitidos, separados por coma. Solo afecta a clientes que corren en un navegador. |
Seguridad: sin
MCP_AUTH_TOKEN, cualquier equipo de la LAN —o una página web abierta en un navegador de la LAN, con CORS*— puede generar imágenes y ocupar la GPU. Definir un token es lo recomendado salvo en redes totalmente confiables.
🛠️ Herramientas Expuestas (Tool Reference)
1. generate_image (txt2img)
Genera imágenes desde un prompt textual usando SDXL.
- Parámetros:
prompt(string, requerido): Descripción de la imagen (en inglés funciona mejor).preset(string, opcional):producto,realista,rapidooanime. Default:"producto".aspect(string, opcional):1:1,4:5,5:4,9:16,16:9,3:2,2:3(~1MP). Default:"1:1".negative_prompt(string, opcional): Elementos a excluir. Default: negativo genérico de calidad.seed(integer, opcional): Semilla para reproducibilidad. Default: aleatoria.batch(integer, opcional): Imágenes por llamada (1-4). Default:1.checkpoint,lora,lora_strength,steps,cfg(opcionales): Sobreescriben los valores del preset.filename_prefix(string, opcional): Prefijo del archivo de salida. Default:"mcp".detail_face(bool, opcional): Pasada de FaceDetailer (requiere Impact Pack). Default:false.preview(bool, opcional): Devuelve además una miniatura JPEG (~512px) para que el modelo vea el resultado. Solo para clientes con visión. Default:false.
2. img2img (Image-to-Image)
Varía una imagen ya generada (en output/ de ComfyUI) con un nivel de denoise.
- Parámetros:
image_filename(string, requerido): Nombre del archivo generado (ej:mcp_00001_.png).prompt(string, opcional): Instrucción de transformación. Vacío = variación visual pura.denoise(float, opcional):0.0idéntica,1.0completamente nueva. Default:0.55.preset(string, opcional): Default:"realista".negative_prompt,seed,checkpoint,lora,lora_strength,steps,cfg,filename_prefix,preview(opcionales).
3. generate_video (Wan 2.2)
Genera un clip corto MP4 (24fps) con Wan 2.2 TI2V 5B. Sin imagen es txt2video; con image_filename anima esa imagen como primer frame. Requiere los modelos de video (ver SERVER_SETUP). En la RTX 3060 tarda varios minutos por clip.
- Parámetros:
prompt(string, requerido): Escena y movimiento (de cámara, del sujeto), en inglés.aspect(string, opcional):16:9(1280x704),9:16(704x1280) o1:1(960x960). Default:"16:9".seconds(integer, opcional): Duración, 1-5. Default:3.image_filename(string, opcional): Imagen ya generada a animar (ej:mcp_00001_.png); conviene que su aspect coincida con el del video.draft(bool, opcional): Borrador a ~480p (832x480,480x832,640x640), menos de la mitad de píxeles y bastante más rápido; para probar el prompt antes de la versión final. Default:false.negative_prompt,seed,steps,cfg,filename_prefix(opcionales). Default de prefijo:"mcp-video".preview(bool, opcional): Miniatura JPEG del primer frame. Default:false.
4. list_models
Retorna la lista de checkpoints, LoRAs y presets disponibles en la instancia de ComfyUI.
5. comfy_health
Obtiene el estado de salud del backend: versión de ComfyUI, uso de VRAM de la GPU y tareas en cola.
6. comfy_view_url
Construye la URL LAN de descarga directa para un archivo generado previamente dado su filename y subfolder.
🎨 Matriz de Presets
| Preset | Checkpoint Asociado | Pasos | CFG | Caso de Uso |
|---|---|---|---|---|
producto | RealVisXL_V4.0.safetensors | 30 | 5.5 | Fotografía comercial y de producto fotorrealista (Default). |
realista | juggernautXL_ragnarokBy.safetensors | 30 | 5.0 | Fotorrealismo versátil (escenas, personas, ambientes). |
rapido | juggernautXL_ragnarokBy.safetensors + LoRA SDXL-Lightning | 6 | 1.5 | Vista previa y borradores en ~5 segundos. |
anime | animagine-xl-3.1.safetensors | 28 | 7.0 | Ilustración estilo anime (checkpoint no incluido en el server). |
🧭 ¿Y los otros servidores MCP de ComfyUI?
Hay tres familias, y resuelven problemas distintos. Este no compite con las otras dos: las complementa.
| ComfyUI MCP (este) | Servidores de workflow graph | APIs cloud de imagen | |
|---|---|---|---|
| Qué le pides | Un prompt + preset (producto, realista, rapido, anime) | Un grafo de nodos en JSON (lo diseñas tú) | Un prompt a un servicio remoto |
| Saber ComfyUI | No | Sí | No |
| Dónde corre | Tu GPU (RTX 3060) | Tu GPU | El servidor de un tercero |
| Coste por imagen | 0 (tu electricidad) | 0 | Por imagen, según proveedor |
| Privacidad | El prompt no sale de tu red | Igual | Tu prompt sale a la nube |
| Comparte la GPU con el LLM | Sí (GPU Arbiter, 12 GB) | Depende | N/A |
| Cliente | HTTP/SSE en LAN + stdio — cero PyTorch en el cliente | Normalmente stdio local | HTTP |
En una frase:
- Si necesitas control total del grafo de nodos → un servidor de workflow graph (p. ej.
comfy-pilot). - Si no tienes GPU y no te importa pagar por imagen → una API cloud (Flux, Nano Banana, GPT-image).
- Si tienes la GPU y quieres generar sin aprender ComfyUI, compartiendo la tarjeta con tu LLM → este.
🔗 Integración con Clientes MCP
Configuración para Claude Code CLI (~/.claude.json)
{
"mcpServers": {
"comfyui": {
"url": "http://<YOUR_SERVER_IP>:8201/mcp"
}
}
}
Configuración para Hermes Gateway (~/.hermes/config.yaml)
mcp_servers:
comfyui:
url: "http://<YOUR_SERVER_IP>:8201/mcp"
transport: "http"
Configuración para Cursor / Windsurf / Claude Desktop
Añade un servidor MCP de tipo SSE / HTTP con la URL http://<LAN_IP>:8201/mcp.
📋 Componentes Faltantes y Roadmap (Server Gaps)
Dado que este repo representa la capa MCP, los siguientes elementos están fuera de este repositorio y deben configurarse en el servidor host:
- Servidor Backend ComfyUI: Requiere instalación independiente de Python + PyTorch CUDA.
- Descarga de Checkpoints: Los modelos SDXL deben descargarse manualmente en el directorio
models/checkpoints/del servidor ComfyUI. - GPU Arbiter Script: El script
gpu-broker.shy las reglas/etc/sudoers.d/gpu-arbiterdeben residir en la máquina Linux con la GPU. - Futuras Mejoras del MCP:
- Soporte para inyección de workflows JSON personalizados dinámicos.
- Cancelación y limpieza de colas de procesamiento vía tool MCP.
- Conexión por WebSocket para reporte de progreso en tiempo real.
🧪 Pruebas Unitarias
uv run --with pytest --with pytest-asyncio pytest
📄 Licencia
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Questions fréquentes
Qu'est-ce que ComfyUI MCP ?
MCP server that wraps ComfyUI (SDXL/Wan 2.2) for image and short-video generation.
Comment installer ComfyUI MCP ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add comfyui-mcp -e 'COMFYUI_URL=http://127.0.0.1:8188' -e 'COMFYUI_PUBLIC_URL=<COMFYUI_PUBLIC_URL>' -e 'MCP_AUTH_TOKEN=<your mcp_auth_token>' -- docker run -i --rm ghcr.io/germaniu/comfyui-mcp:0.1.1 --stdio. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour ComfyUI MCP ?
Oui. Il attend MCP_AUTH_TOKEN, à renseigner dans sa configuration.
ComfyUI MCP est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient ComfyUI MCP ?
Il est publié par GermaniU. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.