
Brightspace MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude and other assistants read your Brightspace courses: grades, due dates, announcements, course files and discussions.
Brightspace MCP Server is a community server that signs in to your school's Brightspace (D2L) account and lets the assistant read your courses. You can ask what is due this week, how your grades look, what an assignment asks for, or what a lecture video said. It is made by Rohan Muppa, a student, and is not from D2L.
It runs on your computer. A setup command asks for your school address, your username and password, and how you approve sign-ins, then connects itself to the AI apps it finds. Your password goes into your computer's password store, and the README says the server only reads your courses.
Good for
- Students at any D2L Brightspace school who want a study plan and grade check
- Students who want slides, specs and lecture transcripts turned into summaries or flashcards
- Instructors and TAs who want to see who has not submitted an assignment
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Brightspace MCP
Claude Code
- 1
Copy this prompt.
Add the Brightspace MCP server to Claude Code. Run this command: claude mcp add brightspace -- npx -y brightspace-mcp-server@latest Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js, Run setup once: npx -y brightspace-mcp-server@latest setup.
Run npx -y brightspace-mcp-server@latest setup once in a terminal first. It asks for your school address, username and password, and how you approve sign-ins, and it can connect itself to Claude Desktop, Cursor, Antigravity, Codex and Claude Code. Use a school flag such as --purdue to skip typing the address. On Windows, use cmd as the command with /c npx -y brightspace-mcp-server@latest as the arguments. Restart the app, then ask a question and approve the sign-in on your phone if asked.
Built from the package data we hold. Not yet tested by us.
Tools
Lists what is due soon across all your courses
Pulls due dates from assignments, quizzes, graded discussions and calendar events such as exams and labs. Use it for "what is due this week" questions.
Try: “What is due in the next 48 hours?”
Network ·
get_upcoming_due_datesShows your grades and comments for one course or all of them
Returns each grade item with points, percentage and any comment for the course you name, or for every course you are enrolled in.
Try: “Am I passing all my classes?”
Network ·
get_my_gradesLists the courses you are enrolled in with their IDs
Returns course names, codes and IDs. Other tools need the course ID from here.
Try: “Which courses am I taking this term?”
Network ·
get_my_coursesLists assignments and quizzes with status and due dates
Covers dropbox assignments and quizzes for one course or all. It reports whether each item was turned in, and says "unknown" when the school hides submission data from students.
Try: “Did I turn in HW 3 for ECE 264?”
Network ·
get_assignmentsReads announcements from one course or all courses
Returns announcements newest first with the full text, 1 to 50 per page, and supports paging through older ones.
Try: “Summarize today's announcements.”
Network ·
get_announcementsShows exams, labs and other calendar events in a date range
Reads course calendar entries across all courses or one course. The default window is the next 7 days.
Try: “When is my midterm?”
Network ·
get_calendar_eventsShows the grading rubric for an assignment
Returns every criterion and level with points, plus your own graded outcome per criterion once it is released.
Try: “Why did I lose points on the analysis criterion?”
Network ·
get_assignment_rubricReads the files your instructor attached to an assignment
Lists assignments that have attachments, then returns the text of one file, such as the spec PDF or a handout.
Try: “What does the lab 4 spec actually ask for?”
Network ·
get_assignment_filesReads files attached to an announcement
Lists which announcements have attachments and returns the text of a chosen file, such as slides or an updated schedule.
Try: “Read the file attached to today's announcement.”
Network ·
get_announcement_filesShows a course's modules, topics, files and links
Returns the content tree, and can filter by module title or limit depth. It flags modules that are not available yet and says why.
Try: “Show me the Module 5 materials for ECE 264.”
Network ·
get_course_contentSearches one course for a keyword
Searches module and topic titles, file names, announcements and discussion forums in one call and ranks matches by how many terms hit. Sources it cannot read are named in a note.
Try: “Find the midterm review slides in ECE 264.”
Network ·
search_courseReads a course's syllabus text
Returns the course overview as text. It links external syllabus tools it cannot read, and can save the attached syllabus file if you give it a folder.
Try: “What is the late policy in the syllabus?”
Write ·
get_syllabusReads forums, topics and posts in a course
Lists forums, then topics, then posts as you narrow down by forum and topic.
Try: “Summarize the latest posts in the final project thread.”
Network ·
get_discussionsReads the transcript of a lecture video
Fetches transcript text with timestamps for Kaltura and YouTube videos in course content. Other video hosts return a message that they are not supported.
Try: “What did the professor say about pinch-off in Tuesday's recording?”
Network ·
get_video_transcriptLists instructors, TAs and optionally students in a course
Returns names, emails and roles. It leaves out students unless you ask for them.
Try: “Who are the TAs for ECE 264?”
Network ·
get_rosterLists the email addresses of everyone in a course
Returns the emails of instructors, TAs and students enrolled in the course.
Try: “Give me the email list for my class.”
Network ·
get_classlist_emailsShows your project groups and who is in them
Lists the groups you belong to in a course with each group's members.
Try: “Who is in my project group?”
Network ·
get_my_groupsReads or saves a file from course content or announcements
By default the file comes back inside the chat as text. If you give it a folder path, it saves the file to your disk instead.
Try: “Download every PDF from Module 5 into my Downloads folder.”
Write ·
download_fileReports server version, setup and sign-in state
Returns the version, Node.js runtime, platform, config path, school URL, whether a password is saved, your time zone and who you are signed in as.
Try: “Which version of the Brightspace server am I running?”
Read ·
get_server_infoSigns you in to Brightspace on this computer
Does nothing if the saved session is still valid. Otherwise it signs in in the background and shows the number to approve on your phone, or opens a browser window when no password is saved.
Try: “Sign me in to Brightspace.”
Write ·
sign_inSigns you out of Brightspace on this computer
Cancels a sign-in that is waiting for approval and deletes the saved session on this computer. It keeps your saved password and settings.
Try: “Sign me out of Brightspace.”
Delete ·
sign_outLists assignment folders in a course (instructors, TAs)
Returns folder IDs, due dates, submission types and whether rubrics are attached. It is not limited to instructor accounts.
Try: “List the assignment folders for Lab 4.”
Network ·
get_dropbox_foldersLists every student's submission to a folder (instructors, TAs)
Shows submitter names, dates, late status, files and grading status, capped at 100 by default. Students get a note that access is required.
Try: “Which students haven't submitted Lab 4 yet?”
Network ·
get_dropbox_submissionsShows one student's submissions to a folder (instructors, TAs)
Returns all submissions from one student or group in a folder, for reviewing their work before feedback.
Try: “Show Jane Doe's submissions for Lab 4.”
Network ·
get_dropbox_user_submissionsReads saved feedback and scores for an assignment
Students get their own released feedback and score. Instructors and TAs can pass a user or group to read what is saved for them.
Try: “Is there feedback on my midterm?”
Network ·
get_dropbox_feedbackShows the full rubric table of an assignment folder
Returns criteria, levels and point values attached to a folder. It reads the same folder data as get_dropbox_folders, so it is not limited to instructors.
Try: “Show the rubric table for Lab 4.”
Network ·
get_rubrics_for_objectSaves a student's submitted file to your disk (instructors, TAs)
Downloads one file from a student or group submission into an existing folder on your computer. It needs instructor or TA access.
Try: “Download that student's submitted PDF to my Grading folder.”
Write ·
download_dropbox_submission_file
Read from the source code
Permissions
medium risk · 9 things to watch
Medium risk
The assistant can read your grades, files and class emails from your school account, and your login stays saved on your computer. Use it only on a computer you do not share.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It holds your school login and a saved session
Setup saves your password in your computer's password store and a sign-in session on disk. Anyone using your computer account could reach your courses, so do not use it on a shared computer. github.com
It can list every classmate's email address
The class list tool returns emails for instructors, TAs and students, and the roster tool can include students. Ask only for what you need. registry.npmjs.org
Setup edits your AI app configs
Setup offers to add itself to Claude Desktop, Cursor, Antigravity, Codex and Claude Code, and asks before replacing an existing brightspace entry. Review what it changed. github.com
Install downloads a Chromium browser
The package runs a post-install script that downloads Chromium through Playwright, which it uses to sign in. Expect a large download. registry.npmjs.org
Skipping 2FA prompts weakens your login
Optional settings can remember this computer for Microsoft or let it answer code requests with an authenticator key. The README says they are off by default and not for shared computers. github.com
Download tools write files to your disk
download_file, get_syllabus and the instructor download tool can save files to a folder you choose. By default download_file returns the text in the chat instead. registry.npmjs.org
Sign out deletes your saved session
The sign out tool removes the saved session on this computer and signs other Brightspace apps here out too. Your saved password stays. registry.npmjs.org
Optional shared server on your computer
Chats share one background server on 127.0.0.1 behind a random token. A server you start yourself with the http command uses 127.0.0.1 and a token you set. github.com
npm package is newer than the GitHub release
npx installs npm version 5.1.33, but the newest GitHub release is v3.9.7 (2 Oct 2026) and the repo tags stop at v3.9.7. Release notes on GitHub do not describe what npx runs, so we read the tool list from the 5.1.33 package. registry.npmjs.org
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No switch is documented. The Brightspace API calls are read requests, and the local write and delete actions are file downloads and sign-out. |
|---|---|
| Talks to | Your school's Brightspace site. Your school's sign-in provider (for example Microsoft). Kaltura and YouTube for video transcripts. The npm registry for a version check (turn off with D2L_NO_UPDATE_CHECK) |
| Sign-in and keys | Your school username and password are saved in the Keychain on Mac or Credential Manager on Windows. The encrypted sign-in session and browser state are kept in ~/.d2l-session by default. |
Questions
Is it official?
No. It is a community server by Rohan Muppa, a student, and is not made by D2L, the company behind Brightspace.
Will it work at my school?
Yes, for any school that runs D2L Brightspace. Nine schools have automatic sign-in built in, including Purdue, SUNY, TU Delft and McGill, and other schools sign in by pasting their Brightspace address.
Does it need an API key?
No. Setup asks for your school address, your username and password, and how you approve sign-ins. The password is stored in your computer's password store.
Can it submit or change anything in Brightspace?
No. The README says it only reads your courses, and the tool code shows only read requests to Brightspace. It can save files to your computer and delete its own saved sign-in session.
Why does it ask me to approve a sign-in on my phone?
Your school's sign-in asks for two-factor approval, and the server shows the number to approve in the chat. How often this happens is up to your school.
How do I add it to Claude?
Run the setup command in the install box once. It connects itself to Claude Desktop and Claude Code if it finds them, then you restart the app.
Does it work for instructors and TAs?
Yes. Six tools list submissions, feedback and rubrics for instructors and TAs, and students get a clear "instructor access required" note. Some of those tools also work for students.
Does it have a read-only mode?
No. It has no switch, but the Brightspace requests are reads. The only write actions save files to your disk or clear its own session.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
brightspace-mcp-server- Registry
- npm
- Transport
- stdio
- Version
- 5.1.30
- License
- MIT
- Last commit
- Oct 30, 2026
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- Brightspace MCP Server README · github.com
- brightspace-mcp-server 5.1.33 published package (build/server.js, build/tools) · registry.npmjs.org
- Sign-in docs · github.com