env du serveur dans ~/.claude/settings.json) ou des drapeaux CLI.
Priorité pour la cible ComfyUI :
--comfyui-url / COMFYUI_URL → COMFYUI_HOST/COMFYUI_PORT → détection
automatique.
Modes de déploiement
comfyui-mcp fonctionne dans l’un des trois modes, auto-sélectionné depuis
l’environnement :
Les outils qui exigent une installation locale (
restart_comfyui avec
action: "start" / apply_manifest / list_local_models (action:"remove") /
get_image (action:"list_outputs") / etc.)
renvoient une erreur claire en mode distant ou cloud. En modes distant et cloud
le serveur saute la détection automatique locale de COMFYUI_PATH pour qu’une
installation locale obsolète ne puisse pas absorber silencieusement les envois
ou les téléchargements de modèles que l’agent destine à la vraie cible —
définissez COMFYUI_PATH explicitement si vous voulez mélanger.
Connexion
string
URL complète de l’instance ComfyUI, par ex.
https://my-comfy.example.com.
Équivalent au drapeau CLI --comfyui-url. Prend le pas sur hôte/port et saute
la détection automatique du port. Un préfixe de chemin est conservé (par
ex. https://host/comfyapi) pour que les instances derrière un reverse-proxy
soient routées correctement. Quand l’hôte n’est pas en loopback (tout sauf
127.0.0.1 / localhost / ::1 / 0.0.0.0), le serveur entre en mode
distant et saute la détection automatique de COMFYUI_PATH.string
défaut:"127.0.0.1"
Hôte du serveur ComfyUI.
number
Port du serveur ComfyUI. Auto-détecté (8188, puis 8000) quand il n’est pas
défini.
boolean
défaut:"false"
Utiliser
https/wss au lieu de http/ws.string
Chemin absolu vers l’installation ComfyUI locale. Auto-détecté depuis les
emplacements courants quand il n’est pas défini (supprimé en modes
distant/cloud). Requis par les outils uniquement locaux (installer/gérer les
nœuds, supprimer des modèles, lire les logs, lister les fichiers de sortie).
Distant derrière un reverse proxy / passerelle API
Pour un ComfyUI auto-hébergé exposé sous un préfixe de chemin et/ou sa propre couche d’auth (une route nginx, une passerelle API, un bord SSO) — ce n’est pas Comfy Cloud :COMFYUI_URLconserve un préfixe de chemin (par ex.https://host/comfyapi), donc les requêtes sont routées dessous au lieu de frapper/prompt,/system_stats, … à la racine.- Les variables
COMFYUI_AUTH_*attachent un en-tête d’auth générique à chaque requête ComfyUI (les appels HTTP directs et la bibliothèque client/WebSocket sous-jacente). C’est indépendant du mode cloud, donc une instance authentifiée par passerelle n’est jamais lue à tort comme Comfy Cloud.
string
Jeton d’auth pour un ComfyUI auto-hébergé derrière une passerelle. Quand il
est défini, envoyé sur chaque requête ComfyUI. Jamais journalisé.
string
défaut:"Authorization"
Nom de l’en-tête qui porte le jeton, par ex.
X-API-Key.string
défaut:"Bearer for Authorization, else none"
Préfixe de schéma sur la valeur du jeton, par ex.
Bearer, Token.string
Client ID du jeton de service Cloudflare Access. À définir avec
CF_ACCESS_CLIENT_SECRET pour atteindre un ComfyUI précédé de Cloudflare
Access — les deux sont envoyés (sous CF-Access-Client-Id /
CF-Access-Client-Secret) sur chaque requête ComfyUI (HTTP et le
WebSocket du surveillant de file), pour que le connecteur passe la barrière
Access au lieu d’obtenir la page de connexion interactive. Additif à
COMFYUI_AUTH_TOKEN ; les deux prennent effet si les deux sont définis.
Jamais journalisé.string
Client Secret du jeton de service Cloudflare Access (la paire de
CF_ACCESS_CLIENT_ID). Envoyé seulement quand les deux sont définis —
un jeton à moitié configuré est ignoré. Jamais journalisé.Comfy Cloud
DéfinirCOMFYUI_API_KEY bascule le serveur en mode cloud : toutes les
primitives adossées à HTTP (mise en file, historique, stats système, file,
view, upload) sont routées vers cloud.comfy.org en HTTPS avec
l’authentification X-API-Key ; les outils WebSocket et FS-local/processus
lèvent une erreur CLOUD_UNSUPPORTED claire. Architecture et dispatcher
cloud-client contribués à l’origine par
@picoSols.
Comfy-Org livre un outillage agent officiel — Comfy Cloud MCP (bêta publique) et le Comfy In-App Agent (alpha privée), tous deux maintenus par l’équipe Comfy et tous deux exécutés sur Comfy Cloud. Si vous ne ciblez que Comfy Cloud, c’est probablement le bon choix ; voir Local vs. Comfy Cloud. Le mode cloud de
comfyui-mcp ci-dessous convient le mieux quand vous voulez un seul MCP pour le local / le distant / le cloud, ou que vous en avez besoin aujourd’hui (il est MIT et se livre maintenant).string
Clé API Comfy Cloud. Quand elle est définie, le serveur entre en mode cloud
et parle à l’URL cloud configurée au lieu d’un ComfyUI local. Jamais
journalisée.
string
défaut:"https://cloud.comfy.org"
Remplacer l’endpoint Comfy Cloud (surtout pour les tests / la préprod).
Jetons
string
Jeton API CivitAI. Utilisé pour les téléchargements gated/early-access.
Envoyé comme en-tête bearer (jamais dans les URL).
string
Jeton HuggingFace pour des limites de débit de recherche/téléchargement plus
élevées.
string
Endpoint miroir HuggingFace pour les régions à réseau restreint (par ex.
https://hf-mirror.com). Toutes les URL d’API et de téléchargement
huggingface.co sont réécrites vers cet hôte ; votre HUGGINGFACE_TOKEN
voyage toujours pour les dépôts gated. La variable de facto standard — la
même que huggingface_hub honore.string
Définir à
0 pour désactiver entièrement l’accès Civitai (régions où
civitai.com est injoignable). Les outils Civitai initiés par l’utilisateur
échouent vite avec un message clair « disabled by config » au lieu de
rester bloqués ; les recherches de provenance en arrière-plan ne font
rien, silencieusement.string
Jeton GitHub utilisé par la génération de skills et les récupérations de
métadonnées de nœuds pour éviter les limites de débit.
string
Clé API comfy.org transmise aux nœuds API hébergés via la charge utile
extra_data de /prompt. Si la variable d’environnement n’est pas
définie, la clé est lue depuis ~/.comfy-api-key (contenu du fichier
trimé ; chmod 600 recommandé) — pratique pour les installations
headless qui gardent les secrets hors des listes d’environnement/processus.string
Clé API Comfy Registry utilisée par
node_pack (action: "publish") pour
publier un pack de nœuds. Passée à comfy-cli via l’environnement, jamais
placée dans les arguments ou les logs.Comportement
string
défaut:"~/.comfyui-mcp/workflows"
Répertoire parcouru pour les workflows
*.json. Chacun devient un outil
d’exécution auto-chargé.string
défaut:"info"
Verbosité des logs :
debug, info, warn, error.Téléchargements de modèles
string
défaut:"~/.comfyui-mcp/cache"
Cache adressé par contenu pour les téléchargements de modèles. Les
téléchargements répétés ou concurrents de la même URL réutilisent le
fichier en cache ; le chemin de modèle cible est matérialisé via un
hardlink (repli sur la copie).
number
défaut:"0"
Taille max du cache de téléchargement en Go.
0 désactive l’éviction ;
au-dessus de la limite, les fichiers en cache les moins récemment utilisés
sont supprimés après qu’un téléchargement se termine.Supervision des processus (installations locales)
S’applique àrestart_comfyui (actions start et restart) quand
comfyui-mcp gère un processus ComfyUI local.
number
défaut:"1"
Secondes entre les sondes de disponibilité après le lancement de ComfyUI.
number
défaut:"60"
Nombre maximal de sondes de disponibilité avant de signaler que le
démarrage n’est pas confirmé. Avec l’intervalle par défaut de 1 s, c’est
un budget d’environ 60 s. Il a été relevé de 20 parce que ComfyUI avec un
jeu normal de nœuds personnalisés met régulièrement plus de 20 s à
répondre à
/system_stats sur un démarrage à froid, et le budget plus
court signalait un démarrage non confirmé quelques instants avant qu’une
instance saine soit prête.Épuiser le budget veut dire que le démarrage n’est pas encore confirmé
— pas qu’il a échoué.boolean
défaut:"false"
Quand c’est activé, un processus ComfyUI qui se termine de façon inattendue
est redémarré automatiquement. Un
restart_comfyui volontaire avec
action: "stop" n’est jamais redémarré.number
défaut:"3"
Nombre maximal de redémarrages automatiques autorisés dans la fenêtre de
redémarrage avant d’abandonner.
number
défaut:"60"
Fenêtre glissante (secondes) sur laquelle les tentatives de redémarrage
automatique sont comptées.
Orchestrateur du panneau et le pont
La barre latérale comfyui-mcp-panel est pilotée par l’orchestrateur du panneau — un processus d’arrière-plan qui possède un pont WebSocket loopback et exécute une session autonome Claude Agent SDK par onglet du panneau sur votre abonnement Claude (sans clés API). Le pack du panneau le démarre automatiquement au chargement de ComfyUI, donc vous ne lancez normalement rien à la main — voir Panneau latéral. Pour le lancer vous-même :boolean
défaut:"false"
Lancer l’orchestrateur du panneau au lieu d’un serveur MCP (identique à
--panel-orchestrator).string
défaut:"claude-opus-5"
Modèle pour les agents de panneau en arrière-plan.
number
défaut:"9180"
Port loopback du pont WebSocket du panneau que l’orchestrateur du
panneau possède (défaut 9180).
number
défaut:"180"
Seuil d’alerte de rendu bloqué (secondes) pour le chien de garde
file/rendu de l’orchestrateur : un job en cours dont le nœud/la
progression n’a plus avancé depuis aussi longtemps est signalé comme
bloqué, et une note STALL/BACKLOG d’une ligne est ajoutée en tête du
prochain tour de l’agent. Les étapes vidéo sont légitimement lentes, donc
le défaut est élevé. Borné à 15–3600 s. Le réglage Alerte de rendu
bloqué (secondes) du panneau (Réglages → Comfy MCP Agent → Général)
le remplace en direct via une trame de pont
set_config — aucune
reconnexion nécessaire — et prend le pas sur cette valeur d’environnement.Pont sécurisé (piloter un pod distant ou cloud)
Quandconnect <url> cible un ComfyUI https distant (par ex. un pod
RunPod), la page HTTPS du panneau du pod ne peut pas ouvrir une socket
ws://127.0.0.1 en clair vers le pont sur votre machine — les navigateurs
la bloquent (contenu mixte / Private Network Access). L’orchestrateur passe
automatiquement à un tunnel wss:// sécurisé pour que ça marche sans
invite, dans n’importe quel navigateur. Voir
Déploiement cloud pour le parcours complet et
Relais auto-hébergé pour faire tourner votre
propre infrastructure de tunnel au lieu du quick tunnel cloudflared par
défaut.
boolean
défaut:"false"
Forcer le pont loopback
ws:// en clair même en pilotant une cible https
distante, au lieu de passer automatiquement à un tunnel sécurisé. À
utiliser si vous atteignez le pod via votre propre redirection de port SSH
(donc sa page est déjà une origine loopback) et que vous ne voulez pas de
dépendance Cloudflare. Identique à --insecure-bridge.string
défaut:"cloudflared"
Quel backend de pont sécurisé utiliser pour une cible distante :
cloudflared (défaut — un quick tunnel éphémère, zéro configuration) ou
relay (appeler un relais auto-hébergé que
vous opérez, pour un domaine stable et aucune dépendance à un quick tunnel
tiers). Ne prend effet que lorsque le mode sécurisé est actif (cible https
distante, pas COMFYUI_MCP_INSECURE_BRIDGE).string
L’URL
wss:// de votre relais. Requis quand
COMFYUI_MCP_TUNNEL_BACKEND=relay.string
Secret partagé facultatif qui filtre qui peut ouvrir une session sur votre
relais (
?key=), indépendant du jeton de pont par session. Pertinent
seulement en mode relais, et seulement si votre déploiement de relais
définit RELAY_ACCESS_KEY.Surveillance des jobs
Les notifications de fin pour les jobs mis en file sont suivies par un surveillant (WebSocket là où c’est disponible, sondage HTTP sinon).number
défaut:"1800"
Secondes maximales pendant lesquelles le surveillant attend qu’un job se
termine avant d’abandonner. Relevez-le pour de très longs rendus vidéo ou
des workflows multi-étapes lourds. (Le job lui-même continue de tourner
dans ComfyUI — seule la notification de fin est abandonnée.)
number
défaut:"2"
Secondes entre les sondages HTTP de l’historique pendant qu’un job est
surveillé.
number
défaut:"30"
Fenêtre d’honneur de l’annulation (secondes) pour
queue
(action:“cancel”) : combien de temps attendre qu’une interruption arrête
vraiment le job en cours avant d’escalader (vers /free, puis signaler le
rendu WEDGED). ComfyUI ne vérifie le drapeau d’interruption qu’entre les
nœuds/étapes, donc une seule étape de plusieurs minutes ne l’honorera pas
tout de suite — cette attente est ce qui détecte un vrai coinçage.Restreindre la surface d’outils
Pour un déploiement hébergé — un Open WebUI partagé, un frontend d’équipe — l’opérateur n’est pas la personne qui invite. Les variables de préréglage / autorisation / refus d’outils retiennent les outils du modèle entièrement : un outil retenu n’est jamais enregistré, donc il est absent detools/list,
absent de call_tool, et le modèle n’apprend jamais qu’il existe. La liste
d’autorisation d’actions est le compagnon plus étroit pour un outil qui doit
rester visible : l’outil reste enregistré, mais une action non listée est
rejetée avant que son gestionnaire ne tourne.
string
safe — tout sauf les outils qui changent la machine ou la bibliothèque
de modèles. Installer, supprimer et redémarrer sont retenus. Le rendu
marche encore, et aussi ce qui vient avec : mettre des générations en
file, list_api_nodes (nœuds partenaires hébergés qui dépensent des
crédits PAYANTS), et report_issue (dépose une issue GitHub publique).
Utilisez readonly si les utilisateurs d’un frontend partagé ne doivent
pas pouvoir dépenser ni publier.
readonly — inspection seulement : aucun rendu mis en file, rien
d’écrit, rien de dépensé.
Les deux retiennent aussi toute la surface panel_*, qui pilote un
canevas partagé en direct.string
Noms d’outils séparés par des virgules à retenir, par ex.
restart_comfyui,download_model. Un * final correspond à une famille :
train_*. Appliqué par-dessus tout préréglage et par-dessus une
liste d’autorisation.string
Liste d’autorisation séparée par des virgules. Quand elle est définie, la
surface est exactement ces outils — tout ce qui n’est pas nommé est
retenu même si aucune règle de refus ne le mentionne. Utilisez-la pour
réadmettre des outils individuels au-delà d’un préréglage :
COMFYUI_MCP_TOOL_PRESET=safe plus
COMFYUI_MCP_TOOL_ALLOW=panel_graph_outline,panel_query_graph.Seul un nom exact réadmet un outil au-delà d’un préréglage. Un glob
(list_*) resserre la surface comme n’importe quelle autre entrée mais
ne peut pas rouvrir ce qu’un préréglage a fermé — sinon ALLOW=list_*
réadmettrait list_packs, dont l’action install_deps installe et
exécute du code tiers, et ALLOW=* rendrait chaque préréglage inerte.string
Paires exactes
tool:action séparées par des virgules. Quand c’est
défini, chaque appel d’outil portant un champ action doit correspondre
à l’une de ces paires ; les outils portant une action omis de la liste
ne peuvent dispatcher aucune action. Ça restreint les outils consolidés
dont le nom seul ne révèle plus le rayon d’action — par exemple,
autoriser l’inspection de la file et une annulation ciblée sans aussi
autoriser les modifications de file ou un effacement global :queue:list,queue:status,queue:cancel,enqueue_workflow:enqueueAssociez ceci à COMFYUI_MCP_TOOL_ALLOW pour borner les deux dimensions.
Les règles sont exactes ; les jokers sont rejetés pour qu’une action
nouvellement ajoutée ne puisse pas devenir autorisée après une mise à
jour.A hosted deployment that cannot install or restart anything
A generation operator that can inspect, enqueue, and cancel—but not install or clear queues
Transport
Le serveur parle stdio par défaut (ce que Claude Code attend). Il peut aussi servir le transport streamable-HTTP pour les configurations distantes / multi-clients.string
défaut:"stdio"
stdio ou http. Drapeaux équivalents : --stdio, --http.string
défaut:"127.0.0.1"
Hôte de liaison HTTP (avec
--http). Drapeau : --host.number
défaut:"9100"
Port de liaison HTTP (avec
--http). Drapeau : --port.Run the HTTP transport