Box MCP server
OFFICIAL SERVERBox's hosted MCP endpoint for searching, reading, editing and analysing files stored in Box
Read your D2L Brightspace courses: grades, deadlines, assignments, announcements, files and lecture videos
By Rohan Muppa (individual) TypeScript Local · stdio ProductivityFiles and storage
55 popularity score ★ 62 ↓ 4.1k/wk
Opens the app, which asks before it adds the server.
npx -y brightspace-mcp-server@latest setupclaude mcp add brightspace -- npx -y brightspace-mcp-server@latest{
"mcpServers": {
"brightspace": {
"command": "npx",
"args": [
"-y",
"brightspace-mcp-server@latest"
]
}
}
}{
"mcpServers": {
"brightspace": {
"command": "npx",
"args": [
"-y",
"brightspace-mcp-server@latest"
]
}
}
}{
"servers": {
"brightspace": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"brightspace-mcp-server@latest"
]
}
}
}[mcp_servers.brightspace]
command = "npx"
args = ["-y", "brightspace-mcp-server@latest"]gemini mcp add --scope user brightspace npx -- -y brightspace-mcp-server@latestD2L_BASE_URL |
Optional: Your school's Brightspace address, normally saved by setup. Must be https. |
|---|---|
D2L_HEADLESS |
Optional: Set to false to show the browser window during sign-in. |
D2L_REMEMBER_MFA |
Optional: Ticks Microsoft's 'Don't ask again' box so later sign-ins skip two-factor. |
D2L_TOTP_SECRET secret |
Optional: Authenticator setup key to answer code challenges locally, for machines without a keychain. |
D2L_PASSWORDLESS |
Optional: Microsoft passwordless phone approval, so no password is read. Every sign-in needs the phone. |
D2L_INCLUDE_COURSES |
Optional: Course ids to limit which courses are visible (D2L_EXCLUDE_COURSES hides ids). |
D2L_ACTIVE_ONLY |
Optional: Set to false to include courses whose enrollment has ended. |
D2L_CURRENT_ONLY |
Optional: Show only courses inside their current enrollment start and end dates. |
D2L_RUNTIME_IDLE_SECONDS |
Optional: Seconds the shared background server waits with no question before it stops. |
D2L_TOKEN_TTL |
Optional: Seconds a saved token is treated as valid. |
| Set together: browser-free sign-in | |
D2L_SESSION_COOKIE secret |
Optional: Pasted d2lSessionVal and d2lSecureSessionVal cookies, to sign in without a browser. |
D2L_ACCESS_TOKEN secret |
Optional: Pasted access token. Takes precedence over the cookie and the browser flow. |
Brightspace MCP Server connects an AI client to a D2L Brightspace learning platform through the student's (or instructor's) own school account. It is Rohan Muppa's independent project, not a D2L product, and works with any school on Brightspace. Nine schools (Purdue, SUNY, Western, TU Delft, CUNY, Leiden, McGill, Ngee Ann Polytechnic, Javeriana Cali) have their sign-in flow built in behind a setup flag, and at other schools you can finish the login by hand in a browser window.
The published 5.1.27 build registers 27 tools in src/server.ts. They cover course lists, grades, assignments and rubrics, due dates, calendar events, announcements with their attachments, the syllabus and module tree, discussions, a keyword search within one course, rosters, groups and classmate emails. Others download files or fetch timestamped transcripts of course videos. Six dropbox tools are meant for course staff and read every student's submissions and feedback. Four prompts (weekly_briefing, grade_audit, study_planner, course_summary) come with it.
Sign-in happens on first use. A headless Chromium browser walks through the school's login with the password taken from the operating system's credential store, and the session is kept for later. Any two-factor number to approve shows up in the answer. The sign_in tool lets the assistant start a sign-in itself. Pasting a session cookie (D2L_SESSION_COOKIE) or token (D2L_ACCESS_TOKEN) skips the browser, useful in Docker or WSL.
Every client on a computer shares one background server and session, which stops after D2L_RUNTIME_IDLE_SECONDS idle (600 by default).
Two things the README does not say. src/utils/config.ts still reads D2L_PASSWORDLESS (Microsoft passwordless phone approval, off by default), though the README dropped it and LLMs.md calls the mode shelved. And D2L_BASE_URL falls back to https://purdue.brightspace.com when neither setup nor the environment names a school.
| Runtime | Node.js 22+ |
|---|---|
| Runs on | macOS, Windows, Linux |
| D2L Brightspace | A student or staff login at a school that runs Brightspace |
| Also |
|
Run `npx -y brightspace-mcp-server@latest setup` once before first use. It saves the school address, your username and password, and the two-factor method, and registers the server with the clients it finds. On a Mac, answer Keychain's prompt with Always Allow so later sign-ins can read the saved password. A pasted cookie or token in D2L_SESSION_COOKIE or D2L_ACCESS_TOKEN replaces the browser sign-in.
No tool submits, edits or deletes anything in Brightspace. The dropbox submission tools only answer for instructors and TAs; students get a 403 note. Inline downloads are bounded at 50MB; saving to disk with downloadPath raises that to 2GB (LLMs.md). How often two-factor sign-in returns is set by the school, and D2L_PASSWORDLESS makes every sign-in wait for a phone approval, so it does not suit unattended use. A session from D2L_SESSION_COOKIE or D2L_ACCESS_TOKEN is not renewed and ends when Brightspace expires it. A course syllabus kept in an external tool such as Simple Syllabus comes back as a link only. Keep the @latest tag: without it npx may run an older global install.
Students who want an assistant to track deadlines, grades and course materials across their Brightspace courses, and instructors or TAs who want to read submissions and feedback without clicking through the web interface. It runs locally on your machine with your own school login and changes nothing in Brightspace, so it fits personal use well. It is less suited to shared or unattended machines, since it stores your password and session locally and two-factor prompts may need a person. We also hold two other Brightspace servers, brightspace-mcp and brightspace-d2l-mcp, from different authors.
24 only read, 2 change things, 1 can delete or overwrite.
get_my_coursesget_my_gradesget_assignmentsget_assignment_rubricget_upcoming_due_datesget_calendar_eventsget_announcementsget_syllabusget_course_contentget_discussionssearch_courseget_rosterget_my_groupsget_classlist_emailsdownload_file changesget_assignment_filesget_announcement_filesget_video_transcriptget_server_infosign_in changessign_out deletesget_dropbox_foldersget_dropbox_submissionsget_dropbox_user_submissionsget_dropbox_feedbackget_rubrics_for_objectdownload_dropbox_submission_fileweekly_briefinggrade_auditstudy_plannercourse_summary