Brightspace runs on your own machine — the client starts it, so there is no endpoint to ping. 5 802 installs a week from npm. Last commit 15 Oct 2026.
D2L Brightspace MCP server: grades, due dates, assignments, announcements and files. Any school.
We read the source, 21 h ago · rules ccca72095570
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
postinstall: npx playwright install chromium
accessSync("/.dockerenv");
return execSync(cmd, {
const options = await page.$$eval(`${SELECTORS.campusSelect} option`, (nodes) =>
const contents = await fs.readFile(path.join(canonicalDir, name), "utf8");
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add brightspace -- npx -y brightspace-mcp-server
{
"mcpServers": {
"brightspace": {
"args": [
"-y",
"brightspace-mcp-server"
],
"command": "npx"
}
}
}
[mcp_servers.brightspace]
command = "npx"
args = ["-y", "brightspace-mcp-server"]
{
"mcpServers": {
"brightspace": {
"args": [
"-y",
"brightspace-mcp-server"
],
"command": "npx"
}
}
}
{
"mcpServers": {
"brightspace": {
"args": [
"-y",
"brightspace-mcp-server"
],
"command": "npx"
}
}
}
This one needs environment variables set before it will start:
D2L_BASE_URL (Your school's Brightspace URL. Default: https://purdue.brightspace.com. Normally set by the setup wizard in ~/.brightspace-mcp/config.json instead.), D2L_SESSION_DIR (Local root for separate per-school/account directories containing encrypted tokens and browser storage. Encryption keys are kept in the native credential store. Default: ~/.d2l-session), D2L_HEADLESS (Run browser authentication without a visible window. Set false only for MFA methods that require browser interaction. Default: true), D2L_TOKEN_TTL (Seconds an access token is used before it is re-minted from the session cookie. Default: 3600), D2L_INCLUDE_COURSES (Comma separated course (org unit) ids to include. Default: all enrolled courses.), D2L_EXCLUDE_COURSES (Comma separated course (org unit) ids to exclude.), D2L_ACTIVE_ONLY (Only return courses whose enrollment is active. Default: true), D2L_CURRENT_ONLY (Only return courses whose Access.StartDate to Access.EndDate window contains now, matching Brightspace's "Current Courses" widget. Default: false), D2L_DEV_MODE (Set to true to record local tool timestamps and safe authentication outcomes in the account session directory. No arguments, results or credentials are logged. Default: false.), D2L_NO_UPDATE_CHECK (Set to any value to disable the startup check against the npm registry for a newer version.).
The author declared them in the registry entry; get the values from the project itself.
Read-only Moodle for AI: due dates, assignments, grades, announcements and course content.
D2L Brightspace MCP server: courses, grades, rubrics, feedback, course files, calendar. Multi-auth.
D2L Brightspace for AI: what's due and submitted, grades, exams, what's new and course files.
Access Smartschool courses, grades, assignments, and messages through the Model Context Protocol
Read-only Google Classroom for AI: to-do, due dates, missing work, grades and announcements.
Read-only Canvas LMS for AI: due dates, grades, missing work, announcements and course content.
A Snowflake MCP server — SQL queries, schema exploration, and data insights for AI assistants
Cloud replacement for mcp-server-filesystem — 20 tools for S3, Azure Blob, and GCS
Answers built from our own checks of this server.