Brightspace MCP Server
An open-source community MCP server that allows AI agents to read course data from D2L Brightspace Learning Management Systems. It supports checking grades, due dates, assignments, announcements, rosters, syllabus, and course content. The server is read-only, ensuring it never submits, edits, or deletes data, and integrates with clients like Claude, Cursor, and Windsurf.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
Checks and signals
Each line is separate evidence, not a trust score.
- Popularity 62 GitHub stars
What you can do with it
- Check grades and due dates for courses
- Retrieve assignments and announcements
- Access rosters and syllabus content
- Summarize course materials via AI
Source and maintenance
- Last repository push
- Latest release
- v3.9.7
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
brightspace-mcp-server 5.1.31
{
"version": "5.1.31",
"transport": "stdio",
"identifier": "brightspace-mcp-server",
"registryType": "npm",
"environmentVariables": [
{
"name": "D2L_BASE_URL",
"format": "string",
"description": "Your school's Brightspace URL. Default: https://purdue.brightspace.com. Normally set by the setup wizard in ~/.brightspace-mcp/config.json instead."
},
{
"name": "D2L_SESSION_DIR",
"format": "filepath",
"description": "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"
},
{
"name": "D2L_HEADLESS",
"format": "boolean",
"description": "Run browser authentication without a visible window. Set false only for MFA methods that require browser interaction. Default: true"
},
{
"name": "D2L_TOKEN_TTL",
"format": "number",
"description": "Seconds an access token is used before it is re-minted from the session cookie. Default: 3600"
},
{
"name": "D2L_INCLUDE_COURSES",
"format": "string",
"description": "Comma separated course (org unit) ids to include. Default: all enrolled courses."
},
{
"name": "D2L_EXCLUDE_COURSES",
"format": "string",
"description": "Comma separated course (org unit) ids to exclude."
},
{
"name": "D2L_ACTIVE_ONLY",
"format": "boolean",
"description": "Only return courses whose enrollment is active. Default: true"
},
{
"name": "D2L_CURRENT_ONLY",
"format": "boolean",
"description": "Only return courses whose Access.StartDate to Access.EndDate window contains now, matching Brightspace's \"Current Courses\" widget. Default: false"
},
{
"name": "D2L_DEV_MODE",
"format": "boolean",
"description": "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."
},
{
"name": "D2L_NO_UPDATE_CHECK",
"format": "boolean",
"description": "Set to any value to disable the startup check against the npm registry for a newer version."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"brightspace-mcp-server": {
"command": "npx",
"args": [
"-y",
"brightspace-mcp-server@5.1.31"
],
"env": {
"D2L_BASE_URL": "<YOUR_D2L_BASE_URL>",
"D2L_SESSION_DIR": "<YOUR_D2L_SESSION_DIR>",
"D2L_HEADLESS": "<YOUR_D2L_HEADLESS>",
"D2L_TOKEN_TTL": "<YOUR_D2L_TOKEN_TTL>",
"D2L_INCLUDE_COURSES": "<YOUR_D2L_INCLUDE_COURSES>",
"D2L_EXCLUDE_COURSES": "<YOUR_D2L_EXCLUDE_COURSES>",
"D2L_ACTIVE_ONLY": "<YOUR_D2L_ACTIVE_ONLY>",
"D2L_CURRENT_ONLY": "<YOUR_D2L_CURRENT_ONLY>",
"D2L_DEV_MODE": "<YOUR_D2L_DEV_MODE>",
"D2L_NO_UPDATE_CHECK": "<YOUR_D2L_NO_UPDATE_CHECK>"
}
}
}
}Cline
{
"mcpServers": {
"brightspace-mcp-server": {
"command": "npx",
"args": [
"-y",
"brightspace-mcp-server@5.1.31"
],
"env": {
"D2L_BASE_URL": "<YOUR_D2L_BASE_URL>",
"D2L_SESSION_DIR": "<YOUR_D2L_SESSION_DIR>",
"D2L_HEADLESS": "<YOUR_D2L_HEADLESS>",
"D2L_TOKEN_TTL": "<YOUR_D2L_TOKEN_TTL>",
"D2L_INCLUDE_COURSES": "<YOUR_D2L_INCLUDE_COURSES>",
"D2L_EXCLUDE_COURSES": "<YOUR_D2L_EXCLUDE_COURSES>",
"D2L_ACTIVE_ONLY": "<YOUR_D2L_ACTIVE_ONLY>",
"D2L_CURRENT_ONLY": "<YOUR_D2L_CURRENT_ONLY>",
"D2L_DEV_MODE": "<YOUR_D2L_DEV_MODE>",
"D2L_NO_UPDATE_CHECK": "<YOUR_D2L_NO_UPDATE_CHECK>"
}
}
}
}VS Code
{
"servers": {
"brightspace-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"brightspace-mcp-server@5.1.31"
],
"env": {
"D2L_BASE_URL": "<YOUR_D2L_BASE_URL>",
"D2L_SESSION_DIR": "<YOUR_D2L_SESSION_DIR>",
"D2L_HEADLESS": "<YOUR_D2L_HEADLESS>",
"D2L_TOKEN_TTL": "<YOUR_D2L_TOKEN_TTL>",
"D2L_INCLUDE_COURSES": "<YOUR_D2L_INCLUDE_COURSES>",
"D2L_EXCLUDE_COURSES": "<YOUR_D2L_EXCLUDE_COURSES>",
"D2L_ACTIVE_ONLY": "<YOUR_D2L_ACTIVE_ONLY>",
"D2L_CURRENT_ONLY": "<YOUR_D2L_CURRENT_ONLY>",
"D2L_DEV_MODE": "<YOUR_D2L_DEV_MODE>",
"D2L_NO_UPDATE_CHECK": "<YOUR_D2L_NO_UPDATE_CHECK>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"brightspace-mcp-server": {
"command": "npx",
"args": [
"-y",
"brightspace-mcp-server@5.1.31"
],
"env": {
"D2L_BASE_URL": "<YOUR_D2L_BASE_URL>",
"D2L_SESSION_DIR": "<YOUR_D2L_SESSION_DIR>",
"D2L_HEADLESS": "<YOUR_D2L_HEADLESS>",
"D2L_TOKEN_TTL": "<YOUR_D2L_TOKEN_TTL>",
"D2L_INCLUDE_COURSES": "<YOUR_D2L_INCLUDE_COURSES>",
"D2L_EXCLUDE_COURSES": "<YOUR_D2L_EXCLUDE_COURSES>",
"D2L_ACTIVE_ONLY": "<YOUR_D2L_ACTIVE_ONLY>",
"D2L_CURRENT_ONLY": "<YOUR_D2L_CURRENT_ONLY>",
"D2L_DEV_MODE": "<YOUR_D2L_DEV_MODE>",
"D2L_NO_UPDATE_CHECK": "<YOUR_D2L_NO_UPDATE_CHECK>"
}
}
}
}Let your agent find its tools
Find servers like Brightspace MCP Server from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.