Servidor MCP

Visión general

Creator incorpora un servidor MCP (Model Context Protocol). Cualquier asistente de IA compatible con MCP — Claude en claude.ai, Claude Code, MCP Inspector — puede conectarse a tu cuenta de Creator y hacer desde un chat todo lo que hace el editor:

  • Navegar por tu espacio de trabajo y tus organizaciones
  • Crear carpetas, cursos, microlearnings y bancos de preguntas
  • Añadir, editar, mover y borrar lecciones y los 44 tipos de brick con toda su configuración
  • Configurar el tema del contenido (colores, tipografías, portada, CSS propio)
  • Exportar a SCORM, web o PDF, publicar enlaces de compartir, gestionar instantáneas, duplicar y traducir

La autenticación usa OAuth contra tu cuenta SLXD: el asistente nunca ve tu contraseña y puedes revocar el acceso cuando quieras. Todo lo que hace el asistente queda limitado a lo que puede hacer tu usuario — la pertenencia a la organización y los roles se comprueban en cada llamada.

Conectar

El endpoint MCP es la URL de conector de tu organización:

https://<tu-organizacion>.slxd.app/mcp/creator

No hace falta construirla a mano: la plataforma SLXD la lista en Organización > Conectores, junto a los conectores del resto de productos.

claude.ai

  1. Ve a Ajustes > Conectores > Añadir conector personalizado
  2. Pega la URL del endpoint
  3. Completa el inicio de sesión y autoriza el acceso

Claude Code

claude mcp add --transport http creator https://<tu-organizacion>.slxd.app/mcp/creator

La primera llamada abre el navegador para iniciar sesión y autorizar.

Los clientes se registran solos (registro dinámico de clientes OAuth) — no hay nada que configurar en el servidor.

Cómo funcionan las herramientas

El servidor expone un conjunto curado de herramientas de primer nivel (navegación del espacio de trabajo, CRUD de contenidos y lecciones, bricks, tema, exportación, subida de ficheros, duplicado de un contenido) más tres meta-herramientas que abren el catálogo completo:

browse_workspace cubre tres necesidades: navegar un nivel de carpeta, buscar en todo el ámbito por título/nombre con query, o mapear el árbol de carpetas entero en una sola llamada con recursive: true (cada carpeta con su parentId). Para clonar un contenido — lecciones, bricks y recursos — como plantilla, usa duplicate_content (de primer nivel); duplicate_lesson hace lo mismo con una sola lección.

Más allá de la autoría, el catálogo también cubre: el ciclo completo de la papelera de carpetas (restore_folder, delete_folder_permanently) y operaciones de contenido por lotes (batch_move_contents, batch_trash_contents); mover un contenido a otra organización (update_content con targetOrganizationId); la gestión de versiones (rename_snapshot, delete_snapshot); buscar en las bibliotecas de stock licenciadas e importar un recurso bajo un contenido (search_stock_images/import_stock_image, search_stock_icons/import_stock_icon); y auditar y corregir problemas de accesibilidad (más abajo). Los medios que genere el propio modelo se suben con request_asset_upload.

Meta-herramientaPara qué
find_toolsBuscar en todo el catálogo por palabra clave (publicación, instantáneas, traducción, plantillas, papelera…)
tool_schemaObtener el esquema de entrada de cualquier herramienta del catálogo
run_toolEjecutar por nombre una herramienta del catálogo

Para los bricks, list_brick_types lista todos los tipos agrupados por categoría (texto, medios, colecciones, preguntas, juegos) con una pista de «cuándo usarlo» para elegir el adecuado a cada objetivo didáctico, y get_brick_type_schema devuelve la forma de autoría exacta (con un ejemplo) de cada uno — el texto enriquecido se redacta como HTML plano.

Elegir el brick adecuado

Para ayudar al asistente a elegir el brick más apropiado, list_brick_types lleva la guía de «cuándo usarlo» por tipo, y el recurso creator://guides/brick-selection es una guía de selección completa (intención → bricks recomendados). Ambos se generan de la misma fuente, así que nunca divergen, y ambos funcionan en cualquier cliente MCP.

Subir ficheros

El contenido de Creator usa ficheros — imágenes, vídeo, audio, subtítulos, adjuntos descargables, tipografías propias, paquetes de embed — y el MCP puede subirlos. El binario nunca viaja por el MCP (nada de base64): la herramienta emite una URL de subida prefirmada de corta duración y el cliente manda el fichero directo al almacenamiento, por fuera.

El flujo para un recurso de brick:

  1. Llama a request_asset_upload con el contentId de destino, el kind (image | video | audio | subtitle | attachment | font) y el contentType del fichero (p. ej. image/png). Cada kind tiene una lista blanca de MIME, así que un tipo que no cuadre se rechaza de entrada.
  2. La herramienta devuelve { uploadUrl, path, curlCommand, expiresAt }. Sube el fichero — ejecuta el curlCommand devuelto (sustituyendo <local-file> por la ruta real) o haz un PUT de los bytes a uploadUrl con el Content-Type exacto. La URL caduca a los 15 minutos.
  3. Pon el path devuelto en el campo de medios del brick vía add_brick / update_brick (imagePath, videoPath, audioPath, filePath, posterPath, subtitlesPath, front*/back*/…), o en el tema vía update_theme (imagen de portada, logo, tipografías woff2 propias).

list_content_assets devuelve los ficheros ya subidos de un contenido, para reutilizar un recurso existente en vez de subirlo otra vez.

Los bricks de embed (un paquete autocontenido de index.html + recursos) usan request_embed_upload: sube cada fichero del paquete bajo el mismo folderId y pon el embedFolderPrefix devuelto en el brick EMBED. Aterrizan en el bucket privado embeds con su Content-Type fijado, y se sirven a los espectadores mediante URLs de corta duración por carpeta — nunca desde un dominio público.

Las importaciones siguen el mismo patrón prefirmado:

  • Articulate Rise — start_rise_import (sube el .zip) → confirm_rise_import → consulta get_rise_import hasta completed para leer el contentId creado.

La importación de documentos de diseño instruccional queda fuera del MCP a propósito: su paso de análisis depende de extracción en el navegador dentro de la app, así que el flujo no puede completarse sin interfaz — hazlo en el editor de Diseño instruccional de la app.

Todas las herramientas de subida autorizan el contenido de destino (ámbito + pertenencia a la organización) antes de firmar, y la clave de almacenamiento la construye el servidor — el cliente nunca aporta una ruta cruda.

Accesibilidad

El mismo verificador WCAG 2.2 que mueve el verificador de accesibilidad del editor está expuesto por MCP, así que un asistente puede revisar y corregir un curso de punta a punta:

  1. audit_content_accessibility — recuento de errores/avisos por lección en todo un contenido. Empieza aquí para la vista de curso.
  2. audit_lesson_accessibility — cada problema de una lección: la regla, el criterio WCAG, el brick afectado, un motivo y el texto de remedio (en el idioma del contenido) y — cuando existe un arreglo seguro — un descriptor autofixes.
  3. apply_accessibility_autofix — aplica uno de esos descriptores (marcar una imagen como decorativa, corregir un nivel de encabezado, activar la cabecera de una tabla, …) al brick/elemento exacto. Un solo paso de deshacer; los cambios llegan en tiempo real a un editor abierto, igual que update_brick.
  4. generate_accessibility_alt_text — para imágenes sin arreglo determinista seguro, manda la imagen al modelo de visión configurado y devuelve un texto alternativo sugerido. No escribe nada — aplica el resultado con apply_accessibility_autofix (kind: "set-property", o "set-item-property"/"set-character-property" para imágenes de galería/diálogo). Consume créditos de la organización, como el resto de herramientas de IA.

Un flujo típico: llama a audit_content_accessibility, elige una lección con problemas, llama a audit_lesson_accessibility sobre ella, aplica los arreglos deterministas, genera y aplica el texto alternativo del resto, y vuelve a auditar la lección para confirmar que queda limpia.

Colaboración en vivo

Las ediciones de bricks hechas por MCP se fusionan a través del servidor de colaboración: si alguien tiene la lección abierta en el editor, ve aparecer los cambios del asistente en tiempo real, y no se pisa el trabajo de nadie.

Acciones destructivas

Borrar contenidos, lecciones o bricks, restablecer temas, restaurar instantáneas y vaciar la papelera exigen un confirm: true explícito. Sin él, la herramienta responde con una vista previa de lo que pasaría, para que el asistente te pregunte antes.

Notas de operación

  • El servidor de autorización OAuth es parte de la app (plugin mcp de Better Auth); los tokens viven en las tablas oauth_* y caducan a la hora (tokens de refresco: 7 días).
  • El endpoint tiene límite de peticiones por usuario (120 por minuto).
  • Con la facturación activa, el acceso MCP se gatea por la feature apiAccess del plan, exactamente igual que las claves de API.
Servidor MCP