
Brightspace
io.github.RohanMuppav3.10.2Updated Oct 3, 2026
D2L Brightspace MCP server: grades, due dates, assignments, announcements and files. Any school.
Overview
Lets an assistant read a student's D2L Brightspace courses: grades, due dates, assignments, announcements, files, and discussions.
- What it does
- Connects an AI assistant to a school's D2L Brightspace account so it can answer questions about courses. It covers grades, due dates, assignments and rubrics, quizzes, announcements, course content and files, people, discussions, lecture videos, and the calendar. It also offers ready-made prompts such as a weekly briefing, grade audit, study planner, and course summary. The README states it only reads courses and never submits, edits, or deletes anything.
- When to use it
- Useful for students who want to ask what is due, how their grades look, or what was announced, and for instructors or TAs who need submission and feedback views. Worth adding if your school uses D2L Brightspace and you want course information available inside your AI app.
- Requirements
- Runs locally as an npm package (brightspace-mcp-server) over stdio, so Node.js 20 or newer is needed. Setup asks for your school's Brightspace address, username, password, and two-factor method; the password is stored in the OS credential store. Optional settings include D2L_BASE_URL, D2L_SESSION_DIR, D2L_HEADLESS, D2L_INCLUDE_COURSES, D2L_EXCLUDE_COURSES, and D2L_SESSION_COOKIE or D2L_ACCESS_TOKEN. Desktop only.
Installation
In SourceWeft
- Open Brightspace in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Brightspace MCP Server
[npm version] [npm downloads] [CI] [License: MIT] [Node >= 20]
By Rohan Muppa, ECE @ Purdue
Lets your AI see your Brightspace classes, so you can just ask:
"What's due this week?" · "Am I passing all my classes?" · "Summarize today's announcements" · "Turn my lecture slides into flashcards"
Works with Claude Desktop, Claude Code, Cursor, ChatGPT Desktop, Windsurf, and any other app that supports MCP (the standard way to plug tools into an AI). It only reads your courses — it never submits, edits, or deletes anything.
Get started in 3 steps
-
Install Node.js (version 20 or newer) if you don't have it. Download, run the installer, done.
-
Open a terminal and run the setup:
It asks for your school's Brightspace address, your username and password, and how you normally do two-factor sign-in (phone approval, authenticator code, or a browser window). Your password goes into your computer's own password store (Keychain on Mac, Credential Manager on Windows), never into a file. At the end it connects itself to Claude Desktop, Cursor, Codex, or Claude Code if you have them.
On a Mac: when Keychain asks whether
nodemay use the saved Brightspace password, choose Always Allow, not just Allow. That lets later sign-ins (theauthcommand and questions from your AI app) read it without asking again. -
Restart your AI app and ask it something — the first question signs you in. If your phone asks you to approve a sign-in, approve it and ask again.
At one of these schools, add the flag and skip typing the address: --purdue, --suny, --western, --tudelft, --cuny, --leiden, --mcgill, --ngeeann, --javeriana.
Rather have the AI install it for you? Paste this into Claude Code, Cursor, Windsurf, Copilot, or Codex:
Using a different AI app? Add the command npx -y brightspace-mcp-server@latest to its MCP settings (on Windows: cmd /c npx -y brightspace-mcp-server@latest). Exact steps for each app: docs/troubleshooting.md.
Does my school work?
If your school uses D2L Brightspace, yes. These have automatic sign-in built in:
School-specific quirks: docs/sign-in.md.
Things to ask
Prompts
Apps with a prompt picker (like Claude Desktop) also offer four ready-made prompts, so you can start from one click instead of typing a question:
Settings you might want
All optional, set in your AI app's MCP env config or your shell. The full list is in LLMs.md.
When it asks you to sign in
There's no separate login — asking a question signs you in, and it stays signed in on its own most days. When your school wants two-factor again, the number to approve shows up right in the answer; approve it on your phone and ask again. If your AI client shows tool progress messages, the number appears while the question is still running instead, and approving within 45 seconds (less if sign-in was slow to reach two-factor) finishes the original answer without asking again. If it ever gets stuck, run this in a terminal:
On a Mac, sign-in first reads your saved password from Keychain. If you picked a one-time Allow at the Keychain prompt, a later sign-in from your AI app or another terminal can fail or hang waiting for an approval nobody sees; pick Always Allow instead. That permission only lets the local Brightspace server read its own saved sign-in password, nothing else in your Keychain.
How often you're asked is up to your school, not this tool. Everything else about sign-in — Duo, authenticator codes, visible-browser mode, and running without a browser at all (Docker, WSL, hardware keys) — is in docs/sign-in.md.
Something not working?
- Run
npx -y brightspace-mcp-server@latest doctorfirst — it checks your Node version, saved setup, credential store, Brightspace connectivity, saved sign-in, and installed version, and tells you exactly what to fix. Authentication failed: The native credential store is locked or unavailable.Your password store is locked or hasn't let this server read the saved password. Unlock it (on a Mac, log in or unlock Keychain Access), then runnpx -y brightspace-mcp-server@latest authagain, orsetupif that still fails, and choose Always Allow when Keychain asks.- It works in the terminal but not in the app: the app starts it separately and may not see your password store yet — see docs/troubleshooting.md.
- Which version do I have? Ask your AI "which version of the Brightspace server am I running?"
- Still stuck? Open an issue and paste what the terminal printed.
For developers
Tool reference, response fields, and environment variables: LLMs.md. What's safe to build against: STABILITY.md. Licensed under the MIT License.
Source: README.md at commit 21aa129
Tools
0Version history
1- v3.10.2LatestOct 3, 2026


