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.