Ir al contenido

Ejemplos de MCP

Qué es esto

Ejemplos de extremo a extremo que muestran cómo un asistente de IA utiliza las herramientas MCP de ComStack, desde la lectura del estado del proyecto hasta la edición, aprobación y publicación. Cada ejemplo muestra la solicitud del usuario, las herramientas llamadas y el resultado esperado.

Cómo funciona

El asistente sigue el ciclo de vida de la página: leer estado → redactar edición → aprobar (las traducciones se ejecutan automáticamente) → publicación de prueba (dry run) → confirmar publicación. Todas las llamadas a herramientas pasan project_id; las llamadas destructivas también pasan project_name (llame siempre a get-project-state primero para obtener el valor correcto).

Cuándo usarlo

Utilice estos ejemplos como referencia al crear integraciones, escribir instrucciones para un asistente de IA o comprender la secuencia de llamadas a herramientas para un flujo de trabajo determinado.

Parámetros / campos / entradas

Argumentos clave utilizados en los ejemplos:

ArgumentoDónde se usaNotas
project_idTodas las herramientasRequerido en cada llamada de herramienta con ámbito de proyecto
project_nameHerramientas destructivasDebe coincidir exactamente con el nombre del proyecto almacenado
pathHerramientas a nivel de páginaEl ID del documento de Firestore: use el slug cuando solo tenga una URL
confirmation_tokenpublish-confirmDe un solo uso, TTL de 5 min: llame a publish de nuevo si caduca

Ejemplo

Ejemplo 1 — Leer: “Muéstrame mis borradores”

Usuario: “¿Qué borradores tengo en mi proyecto de ComStack?”

Herramientas llamadas:

  1. list-my-projects[{ project_id: "p8C98...", name: "Acme Real Estate", role: "manager" }]
  2. get-project-state con project_id: "p8C98..." → instantánea con draft_pages: [{ path: "guides/buying", title: "Buying Guide" }, { path: "guides/selling", title: "Selling Guide" }]

Respuesta del asistente: “Tienes 2 borradores: ‘Buying Guide’ y ‘Selling Guide’. ¿Te gustaría editarlos o publicarlos?”


Ejemplo 2 — Editar: “Actualiza la descripción de la página de inicio”

Usuario: “Cambia la descripción de la página de inicio a ‘Encuentra la propiedad de tus sueños en la Costa del Sol’.”

Herramientas llamadas:

  1. get-project-state → confirma el proyecto y obtiene project_name: "Acme Real Estate"
  2. get-page-content con slug: "index" → metadatos y contenido actuales
  3. update-page con slug: "index", metadata: { description: "Encuentra la propiedad de tus sueños en la Costa del Sol" }{ action: "draft_created_from_live", draft_id: "AbC...", next_step: "Present updated content to user for review" }

Asistente (presenta el borrador para revisión del usuario): “Aquí tienes la descripción actualizada. La página en vivo permanece activa hasta que publiquemos. Di ‘aprobar’ cuando estés listo, o avísame si deseas ajustar la redacción.”


Ejemplo 3 — Aprobar y publicar: “Ponlo en vivo”

Usuario: “Se ve bien, ponlo en vivo.”

Herramientas llamadas:

  1. approve-page con la ruta del borrador → { status: "approved", next_action: "translating", locales_total: 2 }. Las traducciones se ejecutan en segundo plano; el asistente informa al usuario que puede seguir trabajando.
  2. (más tarde, después de que las traducciones se completen) get-project-state → la página está en ready_pages con next_action: "publish".
  3. publish con project_name: "Acme Real Estate" → manifiesto con las 3 páginas listas (fuente EN + 2 variantes traducidas) + confirmation_token.
  4. El asistente presenta el manifiesto (títulos, URLs, tamaños en bytes antes/después) al usuario.
  5. publish-confirm con confirmation_token{ status: "running" }. El despliegue es asíncrono.
  6. publish-status (consultar hasta que aparezca succeeded) → published_urls.

Respuesta del asistente: “¡Publicado! Las páginas están en vivo en las URLs del manifiesto. Aquí tienes los enlaces: [lista de published_urls].”


Ejemplo 4 — Crear una nueva página

Usuario: “Crea una nueva página de guía sobre cómo comprar una propiedad en Marbella.”

Herramientas llamadas:

  1. get-project-state → obtiene plantillas disponibles y confirma que no hay colisión de slugs
  2. get-doc-template con el ID de plantilla relevante → recibe metadata_example, markdown_template y quick_checklist
  3. create-page con el contenido y metadatos compuestos → valida todo a la vez. Si la validación falla, la respuesta enumera todos los problemas con cadenas de corrección de una sola vez.

Asistente (presenta el nuevo borrador): “Aquí tienes el borrador ‘Buying in Marbella’. Avísame si deseas algún cambio antes de que aprobemos y publiquemos.”

Errores comunes

ErrorCausaSolución
Token expirado en paso 5Han pasado más de 5 minutos desde publishLlama a publish de nuevo para obtener un nuevo token
Manifiesto cambiado en publish-confirmUna página lista cambió entre la prueba y la confirmaciónLlama a publish de nuevo
approve-page rechazaEl borrador tiene errores de validaciónLa respuesta enumera todos los problemas; corrígelos y vuelve a intentar
Colisión de slug en create-pageOtra página ya usa ese slug + idiomaUsa update-page con la ruta de la página existente o elige un slug diferente

Relacionado

Última actualización: