El flujo de trabajo estándar de MCP
Qué es esto
El flujo de trabajo estándar para gestionar un sitio de ComStack mediante MCP, escrito como el bucle de primera ejecución: la ruta que sigue un chat nuevo sin contexto previo. Con solo la URL de una página, un asistente debe resolver el proyecto y la página, abrir el editor correcto, redactar un cambio, obtener la aprobación del usuario y publicar, sin perderse cuando el ID del documento cambia durante el proceso.
Esta página es el complemento legible para humanos de dos recursos de máquina que todo cliente carga: las instrucciones del servidor (enviadas una vez por sesión) y la herramienta get-guide (esquema completo + reglas de Lighthouse). La guía canónica para agentes legible por máquina es también el recurso transformento://guide.
Cómo funciona
El bucle tiene siete pasos:
- Proyecto. Llame primero a
get-project-state. Devuelveproject_name(repítalo en herramientas destructivas),site_url,available_doc_templates, las páginas en vivo y en borrador, un árbol denavcompacto y unaworkflow_hintque reafirma este bucle en línea. - Página. Diríjase a una página por su slug + idioma, el identificador duradero.
get-page-contentyupdate-pageaceptan el ID del documento de Firestore (path) o un par(slug, language);languageutiliza por defecto la configuración regional del proyecto. Una referencia que no coincide con nada devuelve un limpioPage not found, nunca un error de base de datos sin procesar. - Editor. Cada página tiene un
page_type. Una página deknowledgees markdown (edítela concreate-page/update-page). Una páginacustomesbody_sourcecon estilo libre (edítela conupload-custom-page). Se rechazará el uso de la herramienta incorrecta; consulte Tipos de página. - Borrador. Editar una página en vivo nunca la cambia directamente; escribe un borrador y mantiene la URL en vivo. Las ediciones repetidas en la misma página se consolidan en un solo borrador, y una edición sin cambios no crea ningún borrador.
- Aprobación.
publishes una prueba de simulación: devuelve un manifiesto de diferencias y unconfirmation_tokende un solo uso (TTL de 5 minutos) sin cambiar nada. Muestre el manifiesto al usuario y obtenga su aprobación explícita, siempre. - Publicación.
publish-confirmconsume el token, verifica que nada haya cambiado desde la simulación e inicia el despliegue de forma asíncrona, devolviendo{ publish_id, status: "running" }. - Verificación. Realice sondeos a
publish-statushasta que el estado seasucceeded. Suspublished_urlscontienen la ruta en vivo resultante (el nuevo ID del documento), por lo que usted lee la identidad post-publicación en lugar de adivinarla.
Cuándo utilizarlo
- En una sesión de MCP nueva donde la única entrada es una URL de página o una solicitud vaga.
- Al integrar a un asistente o compañero de equipo en el flujo de publicación de principio a fin.
- Al depurar “¿en qué paso estoy?” cuando la respuesta de una herramienta es inesperada.
Herramientas en el bucle
| Paso | Herramienta | Notas |
|---|---|---|
| Instantánea del proyecto | get-project-state | Primera llamada. Incluye workflow_hint, nav y page_type en cada entrada. |
| Leer una página | get-page-content | Por path o (slug, language). Devuelve page_type + el path resuelto. |
| Editar conocimiento | create-page / update-page | Markdown. Editar en vivo crea un borrador. |
| Editar personalizado | upload-custom-page | body_source opaco + marcadores de traducción. |
| Descartar borrador | discard-draft | Elimina un borrador pendiente; rechaza rutas en vivo, ocultas o archivadas. |
| Simulación | publish | Manifiesto + confirmation_token. Sin escrituras. |
| Desplegar | publish-confirm | Asíncrono. Devuelve publish_id. |
| Sondeo | publish-status | succeeded → published_urls. |
Ejemplo
“Cambia el titular en https://example.com/pricing/ a ‘Precios simples y honestos’.”
get-project-state(project_id) -> project_name, site_url, the pricing page (slug 'pricing', page_type 'knowledge')
update-page(project_id, slug: 'pricing', language: 'en', content: '## Simple, honest pricing ...') -> { action: 'draft_created_from_live', draft_id, draft_url }
(present the draft_url and the change, get approval, then publish:)publish(project_id, project_name) -> manifest { drafts: [ { slug: 'pricing', change_type: 'replace', will_publish_to } ] }, confirmation_token (single-use, 5-min TTL)
publish-confirm(project_id, confirmation_token) -> { publish_id, status: 'running' }
publish-status(project_id, publish_id) -> { status: 'succeeded', published_urls: [ { slug: 'pricing', url } ] }Errores comunes
- Editar con la herramienta incorrecta. Una edición markdown en una página
custom(oupload-custom-pageen una página de conocimiento) se rechaza con una redirección; verifique primero elpage_type. Consulte Tipos de página. - Almacenar en caché un ID de documento. El
pathcambia durante el ciclo de edición-publicación; diríjase a las páginas por(slug, language)y lea el nuevopathdesdepublish-status. Consulte Publicación. - Publicar sin aprobación.
publishsolo devuelve un token; nada se despliega hastapublish-confirm. Muestre siempre el manifiesto primero. - Token expirado. El
confirmation_tokendura 5 minutos y es de un solo uso; llame apublishde nuevo para obtener uno nuevo.
Los pasos de recuperación completos para cada error estructurado se encuentran en la referencia de errores.
Relacionado
- Configurar el servidor — conecte un cliente y pruebe los primeros prompts
- Tipos de página — conocimiento vs personalizado, y el editor que usa cada uno
- Páginas personalizadas — cree páginas con estilo libre de principio a fin
- Publicación — ciclo de vida del borrador, rotación de ID de documento, flujo de simulación a confirmación
- Errores — todos los errores estructurados y cómo recuperarse
- Catálogo de herramientas y Ejemplos de flujo de trabajo