Aplicaciones Cloud de Webflow
Usa data_apps_tool para crear aplicaciones con fuente en GitHub, responder preguntas operativas, y gestionar entornos para aplicaciones Cloud de Webflow. Comienza desde el resultado deseado por el usuario, recopila solo la evidencia necesaria y distingue observaciones de conclusiones.
Usa el skill webflow-cli:cloud cuando la tarea requiera la creación o implementación de aplicaciones desde CLI/fuente local, o crear o actualizar variables de entorno. El resultado de la compilación del lado del cliente no se envía a Webflow y no se puede recuperar a través de MCP.
Instrucciones
1. Establecer el alcance
Usa la conexión MCP de Webflow establecida por la solicitud del usuario o el contexto de la tarea existente. Si solo hay una conexión activa, úsala sin preguntar al usuario que elija o reconfirme una región. Si hay múltiples conexiones activas y el objetivo deseado sigue siendo ambiguo, pide al usuario que desambigüe antes de proceder con operaciones que dependen del objetivo. No cambies de región para recuperarte de errores de recursos faltantes o de acceso.
Antes de pasar una aplicación o entorno MCP existente al CLI para escrituras de configuración o implementación, compara sus regiones configuradas. Si difieren, no asumas que ninguna es correcta ni redirijas silenciosamente ninguna herramienta. Resuelve el objetivo deseado a partir del contexto explícito de la tarea; si esto no resuelve el conflicto, pregunta al usuario. Pausa las mutaciones dependientes hasta que se resuelva el conflicto.
Una vez establecida la región deseada, verifica que el CLI pueda leer los IDs exactos de la aplicación y el entorno MCP, y lleva esa región y esos IDs explícitamente a mutaciones posteriores. El estado de inicio de sesión o una etiqueta de región por sí solos no son suficientes. Si la verificación falla, informa del fallo sin inferir su causa y pausa las mutaciones dependientes. Continúa con el trabajo independiente cuyo objetivo esté establecido.
- Llama a
webflow_guide_toolantes que cualquier otra herramienta MCP de Webflow. La guía en vivo y los esquemas de acción son autoritativos para los argumentos y respuestas actuales. - Usa las herramientas MCP de Webflow para operaciones de Webflow, excepto la transferencia explícita al CLI para valores de variables de entorno. Nunca llames directamente a las APIs de Webflow.
- Incluye el parámetro
contextrequerido en cada llamada a la herramienta. Escribe 15-25 palabras en tercera persona. - Enruta según la capacidad que requiera la tarea:
- Usa
data_apps_toolpara crear aplicaciones con fuente en GitHub; inspeccionar aplicaciones, entornos, dominios, registros de implementación, registros y metadatos de variables; gestionar fuentes de GitHub y entornos; y poner en cola implementaciones de GitHub. - Usa
data_variable_toolpara variables de color, tamaño, fuente y CSS del Diseñador. - Usa
webflow-cli:cloudpara aplicaciones CLI/fuente local, compilaciones e implementaciones locales, o crear y actualizar valores de variables de entorno.
- Usa
- Si
data_apps_toolno está disponible, informa que la capacidad MCP de aplicaciones Cloud no está habilitada. No la evites con una solicitud directa a la API.
Nunca pidas al usuario que pegue un valor de variable de entorno o secreto en el chat. Para una creación o actualización, delega a webflow-cli:cloud y requiere un prompt oculto, stdin o un archivo protegido. Nunca pases un secreto como argumento posicional.
2. Resolver el objetivo
Descubre los identificadores en este orden:
list_apps -> app_id
list_environments(app_id) -> env_id
list_deployments(app_id, env_id) -> deployment_id
Los nombres de las aplicaciones son únicos solo dentro de un sitio, así que resuelve una aplicación nombrada con site_id + name. Si múltiples recursos coinciden, presenta los metadatos distintivos y requiere que el usuario seleccione uno antes de cualquier mutación. Usa la guía en vivo para los mecanismos de filtro, paginación, cursor y lotes de acciones.
3. Sigue la historia de usuario coincidente
Crear una aplicación con fuente en GitHub
- Establece el nombre de la aplicación, la URL canónica del repositorio de GitHub, la rama, la descripción opcional y si es independiente o está adjunta a un sitio existente.
- Para una aplicación adjunta a un sitio, resuelve el ID del sitio. Omite
site_idpara una aplicación independiente. - Aplica el contrato de montaje antes de la vista previa:
- Una aplicación independiente siempre se monta en
/; omitemounto usa/. - Una aplicación adjunta a un sitio tiene como valor predeterminado
/app, rechaza/y requiere un montaje válido no raíz al anular el valor predeterminado.
- Una aplicación independiente siempre se monta en
- Explica que la creación independiente requiere un token de usuario con ámbito de espacio de trabajo. Webflow deriva la instalación de GitHub y valida el acceso al repositorio; no solicites un ID de instalación.
- Llama a
create_appcon su ejecución de prueba predeterminada. Muestra el repositorio, la rama, el adjunto, el sitio cuando corresponda, el montaje y el intento de implementación inicial. - Requiere
confirm. Inmediatamente después de la confirmación y antes de la ejecución, registra la hora de inicio y genera unaidempotency_keyestable; ejecuta condry_run: false, luego registra la hora de finalización. Reutiliza esa clave solo para reintentos exactos de esta creación. - Trata la creación y la implementación inicial como resultados separados. Que se devuelva una aplicación significa que la creación fue exitosa incluso si
deployStatusesskippedofailed. Paratriggered, inspecciona el entorno y la implementación; paraskipped, verifica la rama o envía un commit; parafailed, conserva la aplicación e inspecciona o reintenta la implementación por separado. - Si la aplicación o el resultado no se puede leer, concilia antes de reintentar:
- Para una aplicación adjunta a un sitio, recopila candidatos con
site_id + name; para una aplicación independiente, recopila candidatos por nombre. - En ambos casos, compara el nombre,
sourceUrlycreatedAtde cada candidato con el repositorio solicitado y la ventana de ejecución registrada. - Continúa a entornos e implementaciones solo cuando exactamente un candidato coincida. No reintentes mientras la aplicación creada siga siendo ambigua.
- Para una aplicación adjunta a un sitio, recopila candidatos con
- Nunca elimines una aplicación creada automáticamente porque la implementación falló. No trates un enlace al panel de control de la implementación inicial como la URL pública del entorno.
¿Qué aplicación y entorno estoy viendo?
- Usa
list_appspara encontrar la aplicación yget_apppara sus metadatos, incluyendosourceUrlysiteAttached. - Usa
list_environmentspara informar la rama, el montaje,publicUrly el estado de la última implementación. SipublicUrles nulo, informa que no hay una dirección de entorno orientada al usuario disponible; no construyas una. - Usa
get_app_domainscuando el usuario pregunte dónde es accesible la aplicación. - Explica que los resultados de dominio personalizado excluyen el nombre de host predeterminado
*.webflow.io. Los dominios para una aplicación adjunta a un sitio de Webflow normal pueden pertenecer al sitio principal y ser compartidos por aplicaciones hermanas.
¿Qué está implementado y está en buen estado?
- Usa
list_environmentspara el estado de la última implementación del entorno. - Usa
list_deployments, del más nuevo al más antiguo, luegoget_deploymentpara la línea de tiempo detallada y los metadatos de versión de la implementación seleccionada. - Trata
starting,buildingydeployingcomo estados activos. Informa cualquier otro estado exactamente en lugar de adivinar su significado. - Una fase fallida establece
buildFailedAtodeployFailedAtmientras su marca de tiempo de finalización coincidente permanece nula. Una marca de tiempo de finalización nula por sí sola no prueba que la fase aún se esté ejecutando. - Informa lo que es observable: aplicación y entorno seleccionados, estado de implementación, versión o metadatos de commit si se devuelven, marcas de tiempo de fase y lagunas de evidencia.
¿Por qué falló la implementación?
- Obtén la implementación con
get_deploymente identifica la fase fallida a partir de su estado y marcas de tiempo. - Llama a
get_build_logssolo cuandologsAvailablesea verdadero. Comienza con una ventanasinceestrecha o un filtroq, luego amplía solo si es necesario. - Pagina hasta que
nextCursorsea nulo cuando se requiera un resultado completo. - Trata
logsAvailablecomo una señal de retención y recuperación, no como prueba de que cada fase produjo entradas de registro. - Trata un resultado vacío como "no hay registros recuperables del lado del servidor que coincidan", no como prueba de que la compilación fue exitosa o no produjo errores.
- La salida de compilación producida en la máquina de un usuario está fuera de MCP. Menciona esto solo cuando el usuario diga que la implementación se compiló con el CLI; dirígelos a la salida del CLI original para fallos de compilación local.
- Informa la fase fallida, las marcas de tiempo relevantes, la evidencia útil más pequeña, la causa inferida y cualquier incertidumbre. No te limites a repetir los registros sin procesar.
¿Por qué está fallando la aplicación en ejecución?
- Resuelve el entorno exacto y llama a
get_runtime_logs. - Limita por
sinceyqantes de recuperar una ventana amplia. Página completamente cuando la conclusión dependa de la ausencia. - Los registros de tiempo de ejecución pueden no estar disponibles debido a la retención. Trata un resultado vacío como que no hay registros recuperables e informa la limitación.
- Correlaciona la evidencia de tiempo de ejecución con el registro de implementación más reciente cuando sea útil, pero no reclames causalidad solo por la sincronización.
- Informa el patrón de error observado, el intervalo afectado, la causa probable, la evidencia y las limitaciones.
¿Está presente la configuración requerida?
- Establece el conjunto de claves requeridas a partir de una fuente autorizada: una lista de claves proporcionada por el usuario, un esquema de configuración del proyecto o un requisito documentado, o un entorno de referencia que el usuario designe explícitamente como completo.
- Si la fuente es un archivo protegido que contiene valores, realiza una extracción determinista solo de claves localmente y emite solo los nombres de las claves. Nunca abras la fuente a través de una lectura visible por el modelo ni incluyas sus valores en el chat o la salida de la herramienta.
- Obtén una designación de secreto autorizada para cada clave requerida del usuario, un esquema del proyecto o un requisito documentado, o un entorno de referencia designado explícitamente como autorizado para el secreto. Un archivo
.envo una lista de claves simples establece solo nombres; nunca infieras el secreto a partir de los nombres de las claves. - Resuelve el entorno, llama a
list_variablesy compara sus claves y metadatos de secreto con los requisitos establecidos. Prueba lo que está configurado, no lo que se requiere. Agota la paginación antes de concluir que falta una clave. - Informa solo las claves y los metadatos. Las entradas secretas tienen
isSecret: truey ningún valor; falta un valor secreto es esperado. - Si el conjunto requerido o cualquier designación de secreto no está resuelto, detente antes de una mutación del CLI o una implementación dependiente a menos que el usuario establezca explícitamente que no se requiere configuración.
- Para claves faltantes o mal clasificadas, enruta a
webflow-cli:cloudsin solicitar valores en el chat. Después de la escritura, verifica las claves requeridas y el secreto conlist_variables. Si falla parcialmente, informa las claves fallidas sin valores y detente antes de la implementación; conserva las claves exitosas y el entorno.
¿Por qué este entorno está sirviendo la rama o ruta incorrecta?
- Resuelve el entorno exacto e informa su rama actual, montaje,
publicUrly estado de la última implementación. Informa unpublicUrlnulo sin construir una dirección. - Compara la rama y el montaje actuales con la asignación deseada por el usuario. Si la solicitud es solo de diagnóstico, detente después de informar el desajuste.
- Si la corrección cambia el montaje, llama a
get_appy usasiteAttached:/es válido solo cuando es falso; una aplicación adjunta a un sitio requiere un montaje no raíz. No infieras el adjunto a partir desiteId. - Para una corrección, muestra la asignación exacta antes y después. Explica que
update_environmentes inmediato, no tiene ejecución de prueba y no implementa código. - Requiere
confirm, llama aupdate_environmentuna vez e informa el entorno devuelto,publicUrlymountRefreshStatus. - Para un resultado ilegible o incierto, localiza el
env_idoriginal. Si usas la nueva rama esperada como filtro, acepta un entorno devuelto solo cuando su ID sea igual a eseenv_idoriginal, luego compara su rama y montaje con los valores solicitados. Un ID diferente o ningún objetivo original único coincidente es ambiguo: no continúes ni reintentes. Nunca reutilices el filtro de rama anterior después de una actualización que cambie la rama. - Una actualización de montaje fallida o desconocida no significa que la actualización del entorno se haya revertido. Informa el enrutamiento como incierto y no reintentes solo porque la actualización falló.
- Si la rama cambió y el usuario quiere que su código se implemente, trata
trigger_deploymentcomo una mutación separada con vista previa y confirmación.
Crear un entorno aislado para una rama e implementarlo
- Resuelve la aplicación existente, llama a
get_appy valida el montaje propuesto consiteAttachedantes de previsualizar la mutación. - Pagina a través de
list_environmentspara verificar si la rama o montaje solicitado ya está en uso. - Muestra la rama y el montaje propuestos. Explica que
create_environmentes inmediato, no tiene ejecución de prueba y crea una asignación sin implementar código. - Genera una
idempotency_keyestable, requiereconfirmy llama acreate_environment. Reutiliza esa clave solo para reintentos exactos. - Informa el entorno devuelto,
publicUrlymountRefreshStatus. Si el resultado es incierto, busca la rama esperada y compara el ID del entorno, la rama y el montaje; usa un ID devuelto para distinguir creaciones concurrentes. No reintentes mientras el entorno creado siga siendo ambiguo. - Una actualización fallida significa que la creación fue exitosa pero el enrutamiento puede estar incompleto. No reintentes la creación ni elimines el entorno automáticamente.
- Antes de implementar este nuevo entorno, sigue "¿Está presente la configuración requerida?" como una puerta obligatoria. Continúa solo después de que los requisitos y el secreto estén verificados, o el usuario establezca explícitamente que no se requiere ninguno. Luego usa el flujo de trabajo de implementación a continuación para la vista previa, confirmación, atribución y monitoreo.
¿Se puede reintentar, revertir o reconstruir esta implementación a partir del HEAD de la rama?
Usa la ejecución de prueba predeterminada de la mutación como verificación de capacidad. No infieras la elegibilidad a partir de registros faltantes, metadatos de aplicación o metadatos de implementación.
Para una nueva implementación desde la rama conectada o un commit exacto anterior:
- Resuelve el entorno. Para un reintento o reversión, también resuelve la implementación anterior exacta.
- Realiza el descubrimiento de configuración solo cuando el usuario lo solicite, la evidencia de implementación indique variables faltantes o mal clasificadas, el commit seleccionado tenga requisitos de configuración documentados, o el servidor rechace la implementación por configuración.
...