Brightspace MCP Server

Servidor MCP para Brightspace (D2L): verifique notas, datas de entrega, avisos, listas de chamada e muito mais usando Claude, ChatGPT, Cursor ou qualquer cliente MCP.

Documentação

Brightspace MCP Server

Por Rohan Muppa, ECE @ Purdue

Converse com seus cursos do Brightspace usando IA. Pergunte sobre notas, prazos, quizzes, avisos e muito mais. Funciona com Claude Desktop, Claude Code, Cursor, ChatGPT Desktop, Windsurf e qualquer cliente MCP.

Este é um servidor MCP (Model Context Protocol) que conecta sua IA ao D2L Brightspace para que ela possa buscar suas notas, tarefas, ementa e conteúdo do curso sob demanda.

Conecta-se ao D2L Brightspace. O login automático suporta o fluxo Microsoft Entra da Purdue e a seleção de campus da SUNY. Outras escolas precisam de um fluxo de login automatizado compatível; páginas de login não suportadas retornam um erro acionável.

Architecture diagram

Experimente

"Baixe meus slides de aula e transforme-os em flashcards interativos" "Pegue o rubric de cada tarefa e monte um painel visual do que preciso para tirar A"

Instalação

Você precisa de: Node.js 20+ e um armazenamento de credenciais nativo disponível: Keychain do macOS, Gerenciador de Credenciais do Windows ou Secret Service do Linux. O Linux requer secret-tool e um chaveiro de desktop desbloqueado. Instale libsecret-tools no Debian/Ubuntu, ou o pacote que fornece secret-tool na sua distribuição. Um contêiner ou sessão SSH sem Secret Service não pode persistir a autenticação na v2.

Opção 1: Deixe sua IA fazer isso

Cole isto no Claude Code, Cursor, Windsurf, Copilot, Codex ou em qualquer assistente de codificação com 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).

Opção 2: Execute você mesmo

npx -y brightspace-mcp-server@latest setup

Estudantes da Purdue podem adicionar --purdue para pular a inserção da URL da escola:

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

Os campi da SUNY compartilham um único site do Brightspace, então --suny também pergunta em qual campus você está e pula o seletor de campus da SUNY ao fazer login:

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

O assistente salva sua senha no armazenamento de credenciais nativo e pergunta como você conclui a MFA. A autenticação pode aguardar aprovação ou correspondência de números, solicitar um código no terminal do Google Authenticator ou de outro aplicativo, ou abrir um navegador visível para outros métodos interativos. O assistente pode configurar Claude Desktop, Cursor, Codex Desktop e CLI, e Claude Code quando estiverem instalados. Reinicie seu cliente de IA quando terminar.

Qualquer outra escola D2L: execute setup sem uma flag e cole sua URL do Brightspace (por exemplo, https://yourschool.brightspace.com).

Usando um cliente diferente? Configure-o manualmente.

Pesquise na documentação do seu cliente como adicionar um servidor MCP. O comando do servidor a ser registrado é:

npx -y brightspace-mcp-server@latest

No Windows, o npx deve ser envolvido: cmd /c npx -y brightspace-mcp-server@latest

Você ainda precisa executar npx -y brightspace-mcp-server@latest setup primeiro para salvar suas credenciais.

Para Codex Desktop e Codex CLI, execute:

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

Codex Desktop e CLI usam a mesma configuração de usuário em um computador. Reinicie o aplicativo desktop ou inicie uma nova sessão CLI após o registro.

Para Claude Code, execute:

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

O Claude Desktop usa uma configuração separada, que o assistente de configuração pode atualizar automaticamente.

Sessão Expirada?

Não há nada para fazer login primeiro. Peça suas notas e o login acontece como parte dessa solicitação, então o assistente nunca precisa verificar se você está autenticado antes de responder. Iniciar seu cliente de IA não toca no Brightspace: uma reinicialização por si só nunca acionará um prompt de MFA.

Voltar no dia seguinte normalmente não requer ação. O servidor renova tokens de API de curta duração via HTTPS usando a sessão salva do Brightspace. Se essa sessão terminar, um navegador restaura sua sessão salva da Microsoft e tenta SSO silencioso. Os modos de aprovação e baseados em código permanecem headless; quando uma execução automática precisar de um código, execute o comando de autenticação abaixo para inseri-lo com segurança no terminal.

Se o modo de navegador visível estiver configurado, a janela permanece aberta por até cinco minutos para que você possa concluir credenciais e MFA manualmente quando o login automático não puder continuar. Reexecutar a configuração preserva sua escolha anterior de oculto ou visível como padrão do prompt.

A política da sua escola controla quando a MFA é necessária. Não há corte local de 24 horas, e o servidor não descarta mais o estado do navegador após uma hora. Uma queda de rede preserva a sessão salva e retorna um erro temporário.

Se você perder uma solicitação de MFA, a autenticação automática do navegador pausa por cinco minutos antes de tentar novamente. Tokens existentes e renovação de tokens HTTP ainda funcionam. O SSO baseado em navegador também pausa porque a Microsoft pode enviar outro prompt de telefone durante um redirecionamento, mesmo sem envio de senha. Execute este comando em um terminal para tentar novamente imediatamente, ver uma correspondência de números ou inserir um código do autenticador:

npx -y brightspace-mcp-server@latest auth

Execute-o a partir da sua pasta pessoal. No macOS, um terminal sem permissão de Arquivos e Pastas (o painel do terminal dentro do Claude Desktop, ou um terminal novo do editor) não pode iniciar npx de dentro de Documents, Desktop ou Downloads — ele falha com EPERM: process.cwd failed … uv_cwd antes de o servidor ser executado. O mesmo se aplica se seu cliente de IA iniciar o servidor com uma dessas pastas como diretório de trabalho; conceda acesso ao aplicativo em Ajustes do Sistema → Privacidade e Segurança → Arquivos e Pastas, ou inicie o servidor em outro lugar.

MFA na Purdue comumente usa correspondência de números do Microsoft Authenticator (algumas escolas usam Duo). Quando um login precisar disso, a chamada da ferramenta retorna rapidamente com o número a ser inserido, em vez de ficar em silêncio por até cinco minutos — aprove no seu telefone e chame a ferramenta novamente; o login termina em segundo plano nesse meio tempo. Google Authenticator e outros aplicativos de código único também funcionam, sem necessidade de alterar configurações: execute o comando de autenticação acima em um terminal e ele solicitará o código quando seu provedor pedir um. Escolha a opção de navegador visível durante a configuração apenas se seu provedor de identidade precisar de interação que o servidor não pode conduzir. O MCP também envia progresso de autenticação como notificações de log para clientes que as exibem, útil se você não vir o número na resposta da ferramenta por algum motivo.

O número nessa resposta pode ficar desatualizado se a solicitação expirar ou se você tocar em Negar antes de aprovar: o servidor pede outro à Microsoft e a próxima chamada de ferramenta relata o novo número, então sempre insira o número que a resposta mais recente mostrar. Se um login em segundo plano travar, executar o comando de autenticação acima em um terminal assume imediatamente em vez de esperar terminar ou expirar.

Em um tenant Duo, se o Duo perguntar "Este é seu dispositivo?" antes de enviar um push, o login automático responde sim para que o push possa ser enviado — uma execução headless não tem ninguém para clicar nisso de outra forma. Isso também faz o Duo lembrar do dispositivo, o que pula sua própria verificação de dispositivo em logins futuros desta máquina. Não execute login automático em um computador compartilhado ou público se preferir que o Duo continue perguntando. Definir D2L_DUO_PASSCODE para qualquer valor alterna de esperar um push para digitar um código da opção de senha do Duo Mobile.

O Que Você Pode Perguntar

TópicoExemplos
Notas"Estou passando em todas as minhas matérias?" · "Compare minhas notas em todos os cursos"
Tarefas"O que vence nas próximas 48 horas?" · "Resuma todas as tarefas que ainda não entreguei" · "Me dê o link para enviar a tarefa 4"
Quizzes"Quais quizzes fecham esta semana?" · "O Quiz 3 tem tempo limitado e tem período de tolerância?"
Arquivos de tarefas"O que a especificação do laboratório 4 realmente pede?" · "Resuma o rubric anexado ao projeto"
Provas"Há uma prova intermediária no livro de notas que não está na minha lista de tarefas?"
Avisos"Algum professor postou algo importante hoje?" · "O que meu professor de Ciência da Computação anunciou esta semana?" · "Algum aviso desde segunda-feira passada?" · "Leia o arquivo anexado ao aviso de hoje" · "Salve o rubric que meu professor anexou àquele aviso"
Conteúdo do curso"Encontre os slides de revisão da prova intermediária" · "Baixe todos os PDFs do Módulo 5" · "O que há de novo neste curso desde a última vez que verifiquei?"
Lista de participantes"Quem são os monitores de ECE 264?" · "Me dê o e-mail do meu instrutor"
Discussões"O que as pessoas estão dizendo no tópico do projeto final?" · "Resuma as postagens de discussão mais recentes"
Transcrições de vídeo"O que o professor disse sobre pinch-off na gravação da aula de terça?" · "Resuma o vídeo BoilerCast da semana passada" — funciona para incorporações Kaltura e YouTube; outras plataformas relatam que ainda não são suportadas
Solução de problemas"Qual versão do servidor Brightspace estou executando?" · "Onde está meu arquivo de configuração do Brightspace?" — get_server_info relata a versão, runtime do Node, plataforma, caminhos de configuração e sessão, URL da escola e se uma credencial está armazenada, sem contatar o Brightspace ou revelar segredos
Calendário"Quando é minha prova intermediária?" · "O que está no meu calendário esta semana?" · "O laboratório está cancelado na quinta?" — lê provas, laboratórios, sessões de revisão e prazos que os instrutores colocam apenas no calendário do curso
Planejamento"Monte um cronograma de estudos com base nos meus próximos prazos" · "Qual matéria precisa de mais atenção agora?" — busca de tarefas, quizzes, tópicos de discussão avaliados (qualquer tópico com data de vencimento) e eventos do calendário do curso, como provas e laboratórios

Licenciado sob a Licença MIT.