Brightspace MCP Server

Servidor MCP para Brightspace (D2L): consulta calificaciones, fechas de entrega, anuncios, listas de clase y más usando Claude, ChatGPT, Cursor o cualquier cliente MCP.

Documentación

Servidor MCP de Brightspace

Por Rohan Muppa, ECE @ Purdue

Habla con tus cursos de Brightspace mediante IA. Pregunta sobre calificaciones, fechas de entrega, exámenes, anuncios y más. Funciona con Claude Desktop, Claude Code, Cursor, ChatGPT Desktop, Windsurf y cualquier cliente MCP.

Este es un servidor MCP (Model Context Protocol) que conecta tu IA a D2L Brightspace para que pueda obtener tus calificaciones, tareas, programa del curso y contenido del curso bajo demanda.

Se conecta a D2L Brightspace. El inicio de sesión automático admite el flujo de Microsoft Entra de Purdue y la selección de campus de SUNY. Otras escuelas necesitan un flujo de inicio de sesión automatizado compatible; las páginas de inicio de sesión no compatibles devuelven un error procesable.

Architecture diagram

Pruébalo

"Descarga mis diapositivas de clase y conviértelas en tarjetas de estudio interactivas" "Toma todas las rúbricas de tareas y crea un panel visual de lo que necesito para obtener una A"

Instalación

Necesitas: Node.js 20+ y un almacén de credenciales nativo disponible: Llavero de macOS, Administrador de credenciales de Windows o Servicio de secretos de Linux. Linux requiere secret-tool y un llavero de escritorio desbloqueado. Instala libsecret-tools en Debian/Ubuntu, o el paquete que proporcione secret-tool en tu distribución. Un contenedor o sesión SSH sin Servicio de secretos no puede persistir la autenticación en v2.

Opción 1: Deja que tu IA lo haga

Pega esto en Claude Code, Cursor, Windsurf, Copilot, Codex o cualquier asistente de codificación con IA:

Install brightspace-mcp-server for me by following
https://github.com/RohanMuppa/brightspace-mcp-server/blob/main/LLMs.md
(use --purdue if I'm at Purdue, or --suny if I'm at a SUNY campus).

Opción 2: Ejecútalo tú mismo

npx -y brightspace-mcp-server@latest setup

Los estudiantes de Purdue pueden agregar --purdue para omitir la introducción de la URL de la escuela:

npx -y brightspace-mcp-server@latest setup --purdue

Los campus de SUNY comparten un solo sitio de Brightspace, por lo que --suny también pregunta en qué campus estás y omite el selector de campus de SUNY al iniciar sesión:

npx -y brightspace-mcp-server@latest setup --suny

El asistente guarda tu contraseña en el almacén de credenciales nativo y pregunta cómo completas la MFA. La autenticación puede esperar aprobación o coincidencia de números, solicitar un código en la terminal desde Google Authenticator u otra aplicación, o abrir un navegador visible para otros métodos interactivos. El asistente puede configurar Claude Desktop, Cursor, Codex Desktop y CLI, y Claude Code cuando estén instalados. Reinicia tu cliente de IA cuando termine.

Cualquier otra escuela con D2L: ejecuta setup sin una bandera y pega tu URL de Brightspace (por ejemplo, https://yourschool.brightspace.com).

¿Usas un cliente diferente? Configúralo manualmente.

Busca en la documentación de tu cliente cómo agregar un servidor MCP. El comando del servidor a registrar es:

npx -y brightspace-mcp-server@latest

En Windows, npx debe estar envuelto: cmd /c npx -y brightspace-mcp-server@latest

Aún necesitas ejecutar npx -y brightspace-mcp-server@latest setup primero para guardar tus credenciales.

Para Codex Desktop y Codex CLI, ejecuta:

codex mcp add brightspace -- npx -y brightspace-mcp-server@latest

Codex Desktop y CLI usan la misma configuración de usuario en una computadora. Reinicia la aplicación de escritorio o inicia una nueva sesión CLI después del registro.

Para Claude Code, ejecuta:

claude mcp add --scope user brightspace -- npx -y brightspace-mcp-server@latest

Claude Desktop usa una configuración separada, que el asistente de configuración puede actualizar automáticamente.

¿Sesión expirada?

No hay nada en lo que iniciar sesión primero. Pide tus calificaciones y el inicio de sesión ocurre como parte de esa solicitud, por lo que el asistente nunca tiene que verificar si estás autenticado antes de poder responder. Iniciar tu cliente de IA no toca Brightspace en absoluto: un reinicio por sí solo nunca provocará una solicitud de MFA.

Volver al día siguiente normalmente no requiere ninguna acción. El servidor renueva tokens de API de corta duración a través de HTTPS usando la sesión guardada de Brightspace. Si esa sesión termina, un navegador restaura tu sesión guardada de Microsoft e intenta SSO silencioso. Los modos de aprobación y basados en código permanecen sin interfaz gráfica; cuando una ejecución automática necesita un código, ejecuta el comando de autenticación a continuación para ingresarlo de forma segura en la terminal.

Si el modo de navegador visible está configurado, la ventana permanece abierta hasta cinco minutos para que puedas completar credenciales y MFA manualmente cuando el inicio de sesión automático no pueda continuar. Volver a ejecutar la configuración conserva tu elección anterior de oculto o visible como valor predeterminado del mensaje.

La política de tu escuela controla cuándo se requiere MFA. No hay un límite local de 24 horas, y el servidor ya no descarta el estado del navegador después de una hora. Una interrupción de red conserva la sesión guardada y devuelve un error temporal.

Si pierdes una solicitud de MFA, la autenticación automática del navegador se pausa durante cinco minutos antes de volver a intentarlo. Los tokens existentes y la renovación de tokens HTTP aún funcionan. El SSO basado en navegador también se pausa porque Microsoft puede enviar otra solicitud telefónica durante una redirección, incluso sin enviar una contraseña. Ejecuta este comando en una terminal para reintentar inmediatamente, ver una coincidencia de números o ingresar un código de autenticador:

npx -y brightspace-mcp-server@latest auth

Ejecútalo desde tu carpeta de inicio. En macOS, una terminal que carece del permiso de Archivos y Carpetas (el panel de terminal dentro de Claude Desktop, o una terminal nueva del editor) no puede iniciar npx desde dentro de Documentos, Escritorio o Descargas: falla con EPERM: process.cwd failed … uv_cwd antes de que el servidor se ejecute. Lo mismo aplica si tu cliente de IA inicia el servidor con una de esas carpetas como directorio de trabajo; concede acceso a la aplicación en Configuración del Sistema → Privacidad y Seguridad → Archivos y Carpetas, o inicia el servidor en otro lugar.

MFA en Purdue comúnmente usa la coincidencia de números de Microsoft Authenticator (algunas escuelas usan Duo en su lugar). Cuando un inicio de sesión lo necesita, la llamada a la herramienta en sí regresa rápidamente con el número a ingresar, en lugar de permanecer en silencio hasta cinco minutos: aprueba en tu teléfono y luego llama a la herramienta nuevamente; el inicio de sesión se completa en segundo plano mientras tanto. Google Authenticator y otras aplicaciones de códigos de un solo uso también funcionan, sin necesidad de cambiar configuraciones: ejecuta el comando de autenticación anterior en una terminal y solicitará el código cuando tu proveedor lo pida. Elige la opción de navegador visible durante la configuración solo si tu proveedor de identidad necesita interacción que el servidor no puede manejar. El MCP también envía el progreso de autenticación como notificaciones de registro a los clientes que las muestran, útil si no ves el número en la respuesta de la herramienta por alguna razón.

El número en esa respuesta puede quedar obsoleto si la solicitud expira o tocas Rechazar antes de aprobarla: el servidor solicita otro a Microsoft y la siguiente llamada a la herramienta informa el nuevo número, así que siempre ingresa el número que muestre la respuesta más reciente. Si un inicio de sesión en segundo plano se atasca, ejecutar el comando de autenticación anterior en una terminal lo retoma inmediatamente en lugar de esperar a que termine o expire.

En un tenant de Duo, si Duo pregunta "¿Es este tu dispositivo?" antes de enviar una notificación push, el inicio de sesión automático responde sí para que la notificación pueda enviarse: una ejecución sin interfaz gráfica no tiene a nadie para hacer clic de otro modo. Eso también hace que Duo recuerde el dispositivo, lo que omite su propia verificación de dispositivo en inicios de sesión posteriores desde esta máquina. No ejecutes el inicio de sesión automático en una computadora compartida o pública si prefieres que Duo siga preguntando. Establecer D2L_DUO_PASSCODE a cualquier valor cambia de esperar una notificación push a escribir un código desde la opción de código de acceso de Duo Mobile.

Qué Puedes Preguntar

TemaEjemplos
Calificaciones"¿Estoy aprobando todas mis clases?" · "Compara mis calificaciones en todos los cursos"
Tareas"¿Qué vence en las próximas 48 horas?" · "Resume cada tarea que aún no he entregado" · "Dame el enlace para enviar la tarea 4"
Exámenes"¿Qué exámenes cierran esta semana?" · "¿El examen 3 tiene límite de tiempo y tiene período de gracia?"
Archivos de tareas"¿Qué pide realmente la especificación del laboratorio 4?" · "Resume la rúbrica adjunta al proyecto"
Exámenes parciales"¿Hay un parcial en el libro de calificaciones que no esté en mi lista de tareas?"
Anuncios"¿Algún profesor publicó algo importante hoy?" · "¿Qué anunció mi profesor de CS esta semana?" · "¿Hay anuncios desde el lunes pasado?" · "Lee el archivo adjunto al anuncio de hoy" · "Guarda la rúbrica que mi profesor adjuntó a ese anuncio"
Contenido del curso"Encuentra las diapositivas de repaso del parcial" · "Descarga todos los PDF del Módulo 5" · "¿Qué hay de nuevo en este curso desde la última vez que revisé?"
Lista de clase"¿Quiénes son los asistentes de enseñanza de ECE 264?" · "Dame el correo de mi instructor"
Discusiones"¿Qué dice la gente en el hilo del proyecto final?" · "Resume las publicaciones de discusión más recientes"
Transcripciones de video"¿Qué dijo el profesor sobre el estrangulamiento en la grabación de la clase del martes?" · "Resume el video de BoilerCast de la semana pasada" — funciona para incrustaciones de Kaltura y YouTube; otras plataformas informan que aún no son compatibles
Solución de problemas"¿Qué versión del servidor de Brightspace estoy ejecutando?" · "¿Dónde está mi archivo de configuración de Brightspace?" — get_server_info informa la versión, el tiempo de ejecución de Node, la plataforma, las rutas de configuración y sesión, la URL de la escuela y si hay una credencial almacenada, sin contactar a Brightspace ni revelar secretos
Calendario"¿Cuándo es mi parcial?" · "¿Qué hay en mi calendario esta semana?" · "¿El laboratorio está cancelado el jueves?" — lee exámenes, laboratorios, sesiones de repaso y fechas límite que los instructores ponen solo en el calendario del curso
Planificación"Crea un horario de estudio basado en mis próximas fechas de entrega" · "¿Qué clase necesita más atención ahora mismo?" — extrae de tareas, exámenes, temas de discusión calificados (cualquier tema con fecha de entrega) y eventos del calendario del curso como exámenes y laboratorios

Licenciado bajo la Licencia MIT.