Saltar al contenido principal
El server MCP (Model Context Protocol) de Faces permite que asistentes de IA como Claude construyan presentaciones interactivas y explorables diapositiva por diapositiva. Tu asistente escribe el código de cada diapositiva directamente, sin usar créditos.

¿Qué es MCP?

MCP es un protocolo abierto que permite a los asistentes de IA conectarse a herramientas externas. Cuando conectas Claude al server MCP de Faces, Claude puede:
  • Crear un proyecto en blanco para iniciar una nueva presentación (en tu equipo personal o en cualquier equipo al que pertenezcas)
  • Listar los equipos a los que perteneces para que el asistente elija el correcto
  • Listar y explorar tus proyectos existentes (incluyendo proyectos compartidos en equipo)
  • Leer y editar diapositivas individuales: inspecciona los archivos fuente de una diapositiva y escribe otros nuevos. Funciona para cualquier proyecto del que seas propietario, miembro de equipo (en proyectos compartidos del equipo) o editor invitado
  • Definir el sistema de diseño del proyecto: la paleta y las fuentes compartidas en todas las diapositivas
  • Adjuntar plugins a una diapositiva, como un formulario de contacto o un presentador de video con IA en vivo
  • Capturar una diapositiva para verificar visualmente el diseño, el espaciado y la tipografía después de editar
  • Publicar o despublicar un proyecto y leer su URL en vivo
No hay una herramienta del lado del server para “generar una presentación completa” expuesta a través de MCP. El asistente mismo es el autor de cada diapositiva. Para construir una nueva presentación, crea un proyecto en blanco y luego llena las diapositivas una por una.

Herramientas disponibles

Sesión y modo agente

HerramientaDescripción
get_user_stateLee tu estado en vivo del editor en las pestañas abiertas del navegador: el proyecto que estás viendo, la diapositiva seleccionada y si el modo agente está activado. El asistente lo llama primero para saber en qué proyecto estás trabajando.
start_agent_modeActiva el “modo agente” para un proyecto en tu navegador: oculta la barra lateral derecha y muestra una barra flotante que indica que un agente está dirigiendo la sesión. Pasa enabled: false para desactivarlo. Siempre puedes desactivarlo manualmente.

Equipos

HerramientaDescripción
list_teamsLista los equipos a los que perteneces. Devuelve id, slug, name, role e isPersonal. Usa el id del equipo al llamar a create_project.

Proyectos

HerramientaDescripción
create_projectCrea un nuevo proyecto en blanco. Devuelve el projectSlug y la editorUrl. Acepta un teamId opcional, omítelo para usar tu equipo personal, o pasa un id de list_teams para crear el proyecto bajo un equipo específico.
list_projectsLista los proyectos a los que tienes acceso (propios, compartidos en equipo o compartidos contigo) con paginación (cursor, limit, published).
get_projectObtiene los detalles y las URLs de un proyecto a partir de un slug.
rename_projectRenombra un proyecto. El slug y las URLs se mantienen iguales.
duplicate_projectCrea una copia completa de un proyecto, incluyendo todas las diapositivas. Devuelve un nuevo projectSlug y una nueva editorUrl.

Sistema de diseño

HerramientaDescripción
get_project_configLee project.config.json, incluidas las opciones de diseño y los tokens del sistema de diseño compartidos (colores de la paleta y fuentes) usados en todas las diapositivas.
update_project_configActualiza project.config.json, por ejemplo para definir la paleta y las fuentes del proyecto antes de estilizar las diapositivas. Solo se modifican las claves que pasas.

Publicación

HerramientaDescripción
publish_projectPublica la última versión de un proyecto, haciéndolo accesible públicamente. Devuelve la publishedUrl.
unpublish_projectSaca de línea un proyecto publicado. El proyecto y sus diapositivas se conservan.
get_project_urlObtiene la URL en vivo actual de un proyecto (subdominio o dominio personalizado más ruta) y los subdominios y dominios disponibles para cambiar.
Cambiar la URL en vivo, agregar subdominios o conectar dominios personalizados se hace desde el panel, la CLI o la REST API; estas acciones no están expuestas como herramientas MCP.

Diapositivas

HerramientaDescripción
list_slidesLista todas las diapositivas de un proyecto. Devuelve los IDs y nombres de las diapositivas.
get_slideLee los archivos fuente de una diapositiva (face.tsx, face.content.json, face.controls.json).
create_slidesCrea una o más diapositivas vacías en orden en una sola llamada atómica. Devuelve los nuevos slideIds en el mismo orden. Pasa editing: true para mostrar el gradiente de carga en cada nueva diapositiva inmediatamente.
reorder_slidesReordena todas las diapositivas de un proyecto en una sola llamada atómica. Pasa la lista completa de slideIds existentes en el orden final deseado. Úsalo para reestructurar un deck existente; nunca elimines y recrees diapositivas solo para reordenarlas.
update_slideActualiza los archivos fuente de una diapositiva. Valida y compila antes de guardar; devuelve errores si el código no compila.
start_slide_editingMuestra el gradiente de carga en el editor antes de hacer ediciones.
finish_slide_editingLimpia el gradiente de carga después de editar (llámalo siempre, incluso si falla).
view_slideToma una captura de pantalla de una diapositiva y la devuelve como imagen para que el asistente pueda verificar visualmente el diseño, el espaciado y la tipografía. Pasa isMobile: true para el diseño móvil.
get_slide_guideObtiene la referencia completa de autoría de diapositivas (formatos de archivo, tipos de bloque, controles, tipografía, ejemplos). Llámalo antes de escribir código de diapositivas por primera vez.

Plugins

HerramientaDescripción
list_pluginsLista los plugins disponibles para adjuntar a una diapositiva: comportamientos en tiempo de ejecución que el código de una diapositiva no puede expresar por sí solo, como recopilar envíos de formularios o incrustar un presentador de video con IA en vivo.
get_plugin_docsObtiene el esquema de configuración de un plugin, las funciones que expone y ejemplos de código que muestran cómo una diapositiva lo llama. Léelo antes de setup_plugin.
setup_pluginConfigura una instancia de plugin en una diapositiva. La configuración se valida contra el esquema del plugin y se escribe en el face.plugins.json de la diapositiva; las demás instancias se conservan.

Construir una nueva presentación

  1. get_slide_guide: lee la referencia de autoría (solo la primera vez)
  2. (Opcional) list_teams: si el usuario podría querer el proyecto en un equipo específico, lístalos y pregunta. Si no, omite este paso y se usará el equipo personal.
  3. create_project({ name, teamId? }): devuelve projectSlug y editorUrl
  4. (Recomendado) update_project_config({ projectSlug, config }): define el sistema de diseño compartido (paleta y fuentes) antes de estilizar las diapositivas, para que todas se mantengan consistentes.
  5. create_slides({ projectSlug, slides: [{ name }, ...], editing: true }): UNA sola llamada con todas las diapositivas que planeas añadir, en orden. Devuelve los nuevos slideIds. Nunca llames a esta herramienta en bucle o en paralelo para el mismo proyecto.
  6. Por cada slideId devuelto (en paralelo o secuencialmente):
    1. update_slide({ projectSlug, slideId, files }): escribe face.tsx, face.content.json, face.controls.json
    2. view_slide({ projectSlug, slideId }): captura la diapositiva para verificar que se renderiza como se pretende
    3. finish_slide_editing({ projectSlug, slideId }): limpia el gradiente de carga
  7. Comparte la editorUrl con el usuario.

Editar una diapositiva existente

  1. (Opcional) get_user_state: descubre qué proyecto y diapositiva tiene abiertos actualmente el usuario
  2. get_slide_guide: si aún no la has leído
  3. start_slide_editing(slideId)
  4. get_slide(slideId): lee los archivos actuales
  5. update_slide(slideId, files)
  6. view_slide(slideId): verifica el resultado visualmente
  7. finish_slide_editing(slideId)

Autenticación

El server MCP usa OAuth para la autenticación. Cuando te conectes por primera vez, se te pedirá iniciar sesión en tu cuenta de Faces a través del navegador. No necesitas gestionar API keys, el flujo OAuth se encarga de todo automáticamente. Como MCP se autentica por cuenta (no por equipo), los nuevos proyectos se crean por defecto en tu equipo personal a menos que el asistente pase un teamId explícito desde list_teams. Esto es diferente a la REST API y al CLI, que se autentican con API keys asociadas a un equipo y siempre crean proyectos bajo el equipo de la key. (Para el CLI, el equipo se elige con faces login --team <slug-or-id>; para las API keys REST, en Settings > Developers del panel.)

Control de acceso

Las herramientas MCP respetan el mismo modelo de permisos que el resto de Faces:
  • Propietario del proyecto: acceso completo de lectura/escritura.
  • Proyectos compartidos en equipo: cualquier miembro del equipo propietario puede leer y editar.
  • Colaboradores invitados: pueden leer; solo los colaboradores con permiso de edición pueden actualizar diapositivas.
Si el usuario autenticado no tiene acceso a un proyecto, las herramientas MCP devuelven “Project not found or you don’t have access”.