Underlayer

Crea, publica y realiza seguimiento de cursos de formación integrados desde tu asistente de IA: cursos, alumnos, finalizaciones y SCORM.

Servidor MCP alojado

npx add-mcp 'https://underlayerhq.com/api/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

MCP

Un servidor MCP remoto para que Claude, Cursor y otros clientes MCP puedan crear y gestionar cursos como herramientas — las mismas operaciones que la API REST, invocables desde una conversación.

Conectar

Apunta cualquier cliente MCP que hable Streamable HTTP a esta URL, con tu clave de API como token Bearer — la misma clave de la página API Keys de tu espacio de trabajo. Cada llamada a herramienta está limitada al espacio de trabajo de esa clave, exactamente igual que la API REST.

Configuración de mcpServers para Claude Desktop / Cursorjson

{
  "underlayer": {
    "url": "https://underlayerhq.com/api/mcp",
    "headers": {
      "Authorization": "Bearer sk_live_..."
    }
  }
}

Para clientes que solo usan stdio y no pueden alcanzar una URL remota directamente, conéctalo con mcp-remote:

{
  "underlayer": {
    "command": "npx",
    "args": ["-y", "mcp-remote", "https://underlayerhq.com/api/mcp",
      "--header", "Authorization:Bearer sk_live_..."]
  }
}

OAuth, para Claude.ai y otros clientes web

El flujo basado en navegador "Añadir conector personalizado" de Claude.ai no permite pegar un encabezado Bearer — en su lugar autentica con OAuth. Underlayer es su propio servidor de autorización para esto: añade https://underlayerhq.com/api/mcp como conector personalizado y Claude descubre todo lo demás automáticamente (metadatos de recurso protegido RFC 9728 → metadatos de servidor de autorización RFC 8414 → un flujo de código de autorización + PKCE, usando CIMD para identificarse — sin registro manual de cliente por tu parte).

Llegarás a una pantalla de inicio de sesión (si no has iniciado sesión) y luego a una pantalla de consentimiento que nombra la aplicación conectada y tu espacio de trabajo. Aprobarlo otorga el mismo acceso que tendría una clave de API — creación/lectura/actualización/eliminación completa de todo lo siguiente. Puedes revocarlo en cualquier momento desde Connected Apps en tu panel; el acceso se detiene de inmediato.

Una cosa que ese acceso no incluye: emitir claves de API. Una clave es una credencial separada en lugar de una vista de esta conexión, por lo que una creada a través de un conector seguiría funcionando después de revocar el conector — acceso que sobrevive a su propia revocación. Las claves se emiten solo desde la página API Keys, donde una persona está mirando la pantalla. Listar y revocar están disponibles como herramientas, ya que ninguna crea acceso.

Herramientas

Cada recurso REST se expone como un conjunto correspondiente de herramientas — misma validación, mismas restricciones de plan, mismas comprobaciones de propiedad. Los resultados vuelven como JSON.

Las herramientas de autoría escriben; las herramientas de progreso solo leen. Esa asimetría es deliberada: una finalización es un registro de algo que una persona real hizo, y una herramienta que pudiera editarla sería una herramienta que podría otorgar un aprobado.

Cursos

list_courses get_course create_course update_course delete_course

Pantallas y bloques

list_block_types list_screen_templates add_screen update_screen add_block duplicate_screen delete_screen reorder_screens

Generación con IA PLAN BUILD

generate_course get_generation

SCORM PLAN SCALE

export_scorm import_scorm

Temas PLAN SCALE

list_themes get_theme create_theme update_theme delete_theme

Colecciones

list_collections get_collection create_collection update_collection delete_collection add_course_to_collection move_course_in_collection remove_course_from_collection

Traducciones PLAN SCALE

list_translations get_translation create_translation update_translation delete_translation

Webhooks

list_webhooks get_webhook create_webhook update_webhook delete_webhook

Plantillas de certificados PLAN SCALE

list_certificates get_certificate create_certificate update_certificate delete_certificate

Identidades

list_identities get_identity upsert_identity bulk_upsert_identities delete_identity bulk_delete_identities

Progreso del alumno SOLO LECTURA

list_completions get_completion list_issued_certificates get_issued_certificate

Informes SOLO LECTURA

get_overview search_content get_usage list_audit_events

Equipo y credenciales

list_members invite_member cancel_invite update_member_role remove_member list_api_keys revoke_api_key

Espacio de trabajo

get_workspace_info update_workspace_settings

list_completions toma identityExternalId, así que puedes preguntar por un alumno usando tu propio id para ellos sin tener que buscar el nuestro primero, y get_issued_certificate acepta un serial tal como se haya escrito — mayúsculas y guiones se normalizan, porque el serial suele llegar leído de un papel.

Prefiere las herramientas de pantalla sobre update_course para editar contenido. update_course solo puede escribir el array completo de screens, así que cambiar una pantalla de treinta significa leerlas todas y reescribir el conjunto — y dos ediciones en curso pierden una de ellas. update_screen hace la lectura-modificación-escritura en el servidor, sobre una sola pantalla. Empieza desde list_block_types: un bloque con nombres de campo incorrectos se guarda limpiamente y luego se renderiza vacío.

Autenticación y errores

Cada solicitud se re-autentica con la misma clave Bearer que la API REST — una clave faltante o revocada falla la conexión por completo. Un problema a nivel de herramienta (no encontrado, entrada inválida, plan requerido) vuelve como resultado normal de herramienta con isError: true y un mensaje legible, no una conexión rota.

Las acciones que cambian quién puede entrar — invitar, eliminar, cambiar un rol, revocar una clave, renombrar el espacio de trabajo — se escriben en el registro de auditoría nombrando la clave que las hizo, para que un cambio automatizado sea tan rastreable como uno humano. Léelo de vuelta con list_audit_events o desde Settings en el panel.