Applications Webflow Cloud
Utilisez data_apps_tool pour créer des applications à partir de GitHub, répondre à des questions opérationnelles et gérer les environnements des applications Webflow Cloud. Partez du résultat souhaité par l'utilisateur, rassemblez uniquement les preuves nécessaires et distinguez les observations des conclusions.
Utilisez la compétence webflow-cli:cloud lorsque la tâche nécessite la création ou le déploiement d'une application via CLI/source locale, ou la création ou la mise à jour de variables d'environnement. La sortie de build côté client n'est pas envoyée à Webflow et ne peut pas être récupérée via MCP.
Instructions
1. Établir la portée
Utilisez la connexion MCP Webflow établie par la demande de l'utilisateur ou le contexte de la tâche existante. Si une seule connexion est active, utilisez-la sans demander à l'utilisateur de choisir ou de reconfirmer une région. Si plusieurs connexions sont actives et que la cible prévue reste ambiguë, demandez à l'utilisateur de lever l'ambiguïté avant de procéder à des opérations dépendantes de la cible. Ne changez pas de région pour récupérer des ressources manquantes ou des erreurs d'accès.
Avant de confier une application ou un environnement MCP existant à la CLI pour des écritures de configuration ou un déploiement, comparez leurs régions configurées. Si elles diffèrent, ne supposez pas que l'une ou l'autre est correcte et ne reciblez pas silencieusement l'un des outils. Résolvez la cible prévue à partir du contexte explicite de la tâche ; si cela ne résout pas le conflit, demandez à l'utilisateur. Mettez en pause les mutations dépendantes jusqu'à ce que le conflit soit résolu.
Une fois la région prévue établie, vérifiez que la CLI peut lire les ID exacts de l'application et de l'environnement MCP, et transportez cette région et ces ID explicitement dans les mutations suivantes. L'état de connexion ou une étiquette de région seul est insuffisant. Si la vérification échoue, signalez l'échec sans en déduire la cause et mettez en pause les mutations dépendantes. Continuez le travail indépendant dont la cible est établie.
- Appelez
webflow_guide_toolavant tout autre outil MCP Webflow. Le guide en direct et les schémas d'action sont faisant autorité pour les arguments et réponses actuels. - Utilisez les outils MCP Webflow pour les opérations Webflow, à l'exception du transfert explicite vers la CLI pour les valeurs de variables d'environnement. N'appelez jamais directement les API Webflow.
- Incluez le paramètre
contextrequis dans chaque appel d'outil. Écrivez 15 à 25 mots en perspective à la troisième personne. - Acheminez en fonction de la capacité requise par la tâche :
- Utilisez
data_apps_toolpour créer des applications à partir de GitHub ; inspecter les applications, les environnements, les domaines, les enregistrements de déploiement, les journaux et les métadonnées de variables ; gérer les sources GitHub et les environnements ; et mettre en file d'attente les déploiements GitHub. - Utilisez
data_variable_toolpour les variables de couleur, de taille, de police et CSS du Designer. - Utilisez
webflow-cli:cloudpour les applications CLI/source locale, les builds et déploiements locaux, ou la création et la mise à jour de valeurs de variables d'environnement.
- Utilisez
- Si
data_apps_tooln'est pas disponible, signalez que la capacité Cloud Apps MCP n'est pas activée. Ne la contournez pas avec une demande d'API directe.
Ne demandez jamais à l'utilisateur de coller une valeur de variable d'environnement ou un secret dans le chat. Pour une création ou une mise à jour, déléguez à webflow-cli:cloud et exigez une invite cachée, stdin ou un fichier protégé. Ne passez jamais un secret comme argument positionnel.
2. Résoudre la cible
Découvrez les identifiants dans cet ordre :
list_apps -> app_id
list_environments(app_id) -> env_id
list_deployments(app_id, env_id) -> deployment_id
Les noms d'application sont uniques uniquement dans un site, résolvez donc une application nommée avec site_id + name. Si plusieurs ressources correspondent, présentez les métadonnées de distinction et demandez à l'utilisateur d'en sélectionner une avant toute mutation. Utilisez le guide en direct pour les mécanismes de filtre, pagination, curseur et traitement par lots d'actions.
3. Suivre le scénario utilisateur correspondant
Créer une application à partir de GitHub
- Établissez le nom de l'application, l'URL du dépôt GitHub canonique, la branche, la description facultative, et si elle est autonome ou attachée à un site existant.
- Pour une application attachée à un site, résolvez l'ID du site. Omettez
site_idpour une application autonome. - Appliquez le contrat de montage avant la prévisualisation :
- Une application autonome se monte toujours à
/; omettezmountou utilisez/. - Une application attachée à un site a par défaut
/app, rejette/, et nécessite un montage non racine valide lors du remplacement du défaut.
- Une application autonome se monte toujours à
- Expliquez que la création autonome nécessite un jeton utilisateur à portée d'espace de travail. Webflow dérive l'installation GitHub et valide l'accès au dépôt ; ne demandez pas d'ID d'installation.
- Appelez
create_appavec son exécution à sec par défaut. Montrez le dépôt, la branche, l'attachement, le site le cas échéant, le montage et la tentative de déploiement initial. - Exigez
confirm. Immédiatement après la confirmation et avant l'exécution, enregistrez l'heure de début et générez uneidempotency_keystable ; exécutez avecdry_run: false, puis enregistrez l'heure de fin. Réutilisez cette clé uniquement pour des relances exactes de cette création. - Traitez la création et le déploiement initial comme des résultats séparés. Une application renvoyée signifie que la création a réussi même si
deployStatusestskippedoufailed. Pourtriggered, inspectez l'environnement et le déploiement ; pourskipped, vérifiez la branche ou poussez un commit ; pourfailed, conservez l'application et inspectez ou relancez le déploiement séparément. - Si l'application ou le résultat est illisible, réconciliez avant de réessayer :
- Pour une application attachée à un site, collectez les candidats avec
site_id + name; pour une application autonome, collectez les candidats par nom. - Dans les deux cas, comparez le nom,
sourceUrletcreatedAtde chaque candidat avec le dépôt demandé et la fenêtre d'exécution enregistrée. - Continuez vers les environnements et les déploiements uniquement lorsqu'exactement un candidat correspond. Ne réessayez pas tant que l'application créée reste ambiguë.
- Pour une application attachée à un site, collectez les candidats avec
- Ne supprimez jamais automatiquement une application créée parce que le déploiement a échoué. Ne traitez pas un lien de tableau de bord de déploiement initial comme l'URL publique de l'environnement.
Quelle application et quel environnement suis-je en train de consulter ?
- Utilisez
list_appspour trouver l'application etget_apppour ses métadonnées, y comprissourceUrletsiteAttached. - Utilisez
list_environmentspour signaler la branche, le montage,publicUrlet le dernier état de déploiement. SipublicUrlest nul, signalez qu'aucune adresse d'environnement accessible à l'utilisateur n'est disponible ; n'en construisez pas une. - Utilisez
get_app_domainslorsque l'utilisateur demande où l'application est accessible. - Expliquez que les résultats de domaine personnalisé excluent le nom d'hôte par défaut
*.webflow.io. Les domaines pour une application attachée à un site Webflow classique peuvent appartenir au site parent et être partagés par des applications sœurs.
Qu'est-ce qui est déployé, et est-ce sain ?
- Utilisez
list_environmentspour le dernier état de déploiement de l'environnement. - Utilisez
list_deployments, du plus récent au plus ancien, puisget_deploymentpour la chronologie détaillée du déploiement sélectionné et les métadonnées de version. - Traitez
starting,buildingetdeployingcomme des états actifs. Signalez tout autre état exactement plutôt que de deviner sa signification. - Une phase échouée définit
buildFailedAtoudeployFailedAttandis que son horodatage de fin correspondant reste nul. Un horodatage de fin nul en soi ne prouve pas que la phase est toujours en cours d'exécution. - Signalez ce qui est observable : application et environnement sélectionnés, état de déploiement, version ou métadonnées de commit si renvoyées, horodatages des phases et lacunes de preuve.
Pourquoi le déploiement a-t-il échoué ?
- Récupérez le déploiement avec
get_deploymentet identifiez la phase échouée à partir de son état et de ses horodatages. - Appelez
get_build_logsuniquement lorsquelogsAvailableest vrai. Commencez avec une fenêtresinceou un filtreqétroit, puis élargissez uniquement si nécessaire. - Paginez jusqu'à ce que
nextCursorsoit nul lorsqu'un résultat complet est requis. - Traitez
logsAvailablecomme un signal de rétention et de récupération, pas comme une preuve que chaque phase a produit des entrées de journal. - Traitez un résultat vide comme « aucun journal récupérable côté serveur correspondant », pas comme une preuve que la construction a réussi ou n'a produit aucune erreur.
- La sortie de build produite sur une machine d'utilisateur est en dehors de MCP. Mentionnez cela uniquement lorsque l'utilisateur indique que le déploiement a été construit avec la CLI ; dirigez-le vers la sortie CLI d'origine pour les échecs de build locaux.
- Signalez la phase échouée, les horodatages pertinents, les plus petites preuves utiles, la cause déduite et toute incertitude. Ne vous contentez pas de reformuler les journaux bruts.
Pourquoi l'application en cours d'exécution échoue-t-elle ?
- Résolvez l'environnement exact et appelez
get_runtime_logs. - Réduisez par
sinceetqavant de récupérer une large fenêtre. Paginez complètement lorsque la conclusion dépend de l'absence. - Les journaux d'exécution peuvent être indisponibles en raison de la rétention. Traitez un résultat vide comme aucun journal récupérable et signalez la limitation.
- Corrélez les preuves d'exécution avec le dernier enregistrement de déploiement lorsque cela est utile, mais ne prétendez pas à la causalité à partir du seul moment.
- Signalez le motif d'erreur observé, l'intervalle affecté, la cause probable, les preuves et les limitations.
La configuration requise est-elle présente ?
- Établissez l'ensemble de clés requis à partir d'une source faisant autorité : une liste de clés fournie par l'utilisateur, un schéma de configuration de projet ou une exigence documentée, ou un environnement de référence que l'utilisateur désigne explicitement comme complet.
- Si la source est un fichier protégé contenant des valeurs, effectuez une extraction locale déterministe des clés uniquement et émettez uniquement les noms de clés. N'ouvrez jamais la source via une lecture visible par le modèle et n'incluez pas ses valeurs dans le chat ou la sortie de l'outil.
- Obtenez une désignation de secret faisant autorité pour chaque clé requise auprès de l'utilisateur, d'un schéma de projet ou d'une exigence documentée, ou d'un environnement de référence explicitement désigné comme faisant autorité pour le secret. Un fichier
.envou une liste de clés en clair établit uniquement les noms ; ne déduisez jamais le secret des noms de clés. - Résolvez l'environnement, appelez
list_variableset comparez ses clés et métadonnées de secret avec les exigences établies. Cela prouve ce qui est configuré, pas ce qui est requis. Épuisez la pagination avant de conclure qu'une clé est manquante. - Signalez uniquement les clés et les métadonnées. Les entrées secrètes ont
isSecret: trueet aucune valeur ; une valeur secrète manquante est attendue. - Si l'ensemble requis ou une désignation de secret n'est pas résolu, arrêtez-vous avant une mutation CLI ou un déploiement dépendant, à moins que l'utilisateur n'établisse explicitement qu'aucune configuration n'est requise.
- Pour les clés manquantes ou mal classifiées, acheminez vers
webflow-cli:cloudsans demander de valeurs dans le chat. Après l'écriture, vérifiez les clés requises et le secret aveclist_variables. Si cela échoue partiellement, signalez les clés échouées sans valeurs et arrêtez-vous avant le déploiement ; conservez les clés réussies et l'environnement.
Pourquoi cet environnement sert-il la mauvaise branche ou la mauvaise route ?
- Résolvez l'environnement exact et signalez sa branche actuelle, son montage,
publicUrlet le dernier état de déploiement. Signalez unpublicUrlnul sans construire d'adresse. - Comparez la branche et le montage actuels avec le mappage prévu par l'utilisateur. Si la demande est uniquement diagnostique, arrêtez-vous après avoir signaler la discordance.
- Si la correction modifie le montage, appelez
get_appet utilisezsiteAttached:/est valide uniquement lorsqu'il est faux ; une application attachée à un site nécessite un montage non racine. Ne déduisez pas l'attachement desiteId. - Pour une correction, montrez le mappage exact avant et après. Expliquez que
update_environmentest immédiat, n'a pas d'exécution à sec et ne déploie pas de code. - Exigez
confirm, appelezupdate_environmentune fois et signalez l'environnement renvoyé,publicUrletmountRefreshStatus. - Pour un résultat illisible ou incertain, localisez l'
env_idd'origine. Si vous utilisez la nouvelle branche prévue comme filtre, acceptez un environnement renvoyé uniquement lorsque son ID est égal à cetenv_idd'origine, puis comparez sa branche et son montage avec les valeurs demandées. Un ID différent ou aucune cible d'origine unique correspondante est ambigu : ne continuez pas et ne réessayez pas. Ne réutilisez jamais l'ancien filtre de branche après une mise à jour changeant de branche. - Un rafraîchissement de montage échoué ou inconnu ne signifie pas que la mise à jour de l'environnement a été annulée. Signalez le routage comme incertain et ne réessayez pas uniquement parce que le rafraîchissement a échoué.
- Si la branche a changé et que l'utilisateur souhaite que son code soit déployé, traitez
trigger_deploymentcomme une mutation distincte prévisualisée et confirmée.
Créer un environnement isolé pour une branche et le déployer
- Résolvez l'application existante, appelez
get_appet validez le montage proposé avecsiteAttachedavant de prévisualiser la mutation. - Parcourez
list_environmentspour vérifier si la branche ou le montage demandé est déjà utilisé. - Montrez la branche et le montage proposés. Expliquez que
create_environmentest immédiat, n'a pas d'exécution à sec et crée un mappage sans déployer de code. - Générez une
idempotency_keystable, exigezconfirmet appelezcreate_environment. Réutilisez cette clé uniquement pour des relances exactes. - Signalez l'environnement renvoyé,
publicUrletmountRefreshStatus. Si le résultat est incertain, recherchez la branche prévue et comparez l'ID de l'environnement, la branche et le montage ; utilisez un ID renvoyé pour distinguer les créations simultanées. Ne réessayez pas tant que l'environnement créé reste ambigu. - Un rafraîchissement échoué signifie que la création a réussi mais que le routage peut être incomplet. Ne réessayez pas la création et ne supprimez pas l'environnement automatiquement.
- Avant de déployer ce nouvel environnement, suivez « La configuration requise est-elle présente ? » comme une porte obligatoire. Continuez uniquement après que les exigences et le secret sont vérifiés, ou que l'utilisateur établit explicitement qu'aucun n'est requis. Ensuite, utilisez le flux de travail de déploiement ci-dessous pour la prévisualisation, la confirmation, l'attribution et la surveillance.
Ce déploiement peut-il être relancé, annulé ou reconstruit à partir de la tête de branche ?
Utilisez l'exécution à sec par défaut de la mutation comme vérification de capacité. Ne déduisez pas l'éligibilité à partir de journaux manquants, de métadonnées d'application ou de métadonnées de déploiement.
Pour un nouveau déploiement à partir de la branche connectée ou d'un commit exact antérieur :
- Résolvez l'environnement. Pour une relance ou un rollback, résolvez également le déploiement antérieur exact.
- Effectuez la découverte de configuration uniquement lorsque l'utilisateur la demande, les preuves de déploiement indiquent des variables manquantes ou mal classifiées, le commit sélectionné a des exigences de configuration documentées, ou le serveur rejette le déploiement pour une raison de configuration.