Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"d2l": {
"env": {
"D2L_HOST": "learn.ul.ie",
"D2L_COURSE_ID": "68929"
},
"command": "d2l-mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP (Model Context Protocol) server that provides AI assistants with tools to interact with D2L Brightspace LMS.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'd2l-mcp-server' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked d2l-mcp-server against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in education
A Model Context Protocol server for searching and analyzing arXiv papers
MCP server for NotebookLM - Let your AI agents (Claude Code, Codex) research documentation directly with grounded, citation-backed answers from Gemini. Persistent auth, library management, cross-client sharing. Zero hallucinations, just your knowledge base.
A MCP server that integrates the Semantic Scholar API and the arXiv API so AI assistants (e.g. Claude Code, Cursor) can search and fetch academic paper metadata.
MCP server that uses arxiv-to-prompt to fetch and process arXiv LaTeX sources for precise interpretation of mathematical expressions in scientific papers.
MCP Security Weekly
Get CVE alerts and security updates for D2l Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP (Model Context Protocol) server that provides AI assistants with tools to interact with D2L Brightspace LMS.
This server should not be used in any way to engage in academic misconduct. Do not use this MCP server to cheat on any assignments, or to gain an unfair advantage over other students. This server is only intended for use to enable agents to better understand your assignment scheduling and to help with your learning of the course material.
I do not condone the use of this server in any activities that would violate the user's university's Academic Code of Conduct.
npm install -g d2l-mcp-server
This will automatically install Chromium for browser automation.
d2l-mcp-auth
This opens a browser window where you log in to Brightspace. Your session is saved to ~/.d2l-session/.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"d2l": {
"command": "d2l-mcp",
"env": {
"D2L_HOST": "learn.ul.ie",
"D2L_COURSE_ID": "68929"
}
}
}
}
| Tool | Description |
|---|---|
get_assignments | List all assignments with due dates and instructions |
get_assignment | Get full details for a specific assignment |
get_assignment_submissions | Get your submissions, grades, and feedback |
| Tool | Description |
|---|---|
get_course_content | Get complete course syllabus/structure |
get_course_topic | Get details for a specific topic/lecture |
get_course_modules | Get main sections/modules of a course |
get_course_module | Get contents within a specific module |
| Tool | Description |
|---|---|
get_my_grades | Get all your grades with scores and feedback |
get_upcoming_due_dates | Get calendar events and deadlines |
| Tool | Description |
|---|---|
get_announcements | Get course announcements from instructors |
get_my_courses | List all your enrolled courses |
download_file | Download and extract content from course files |
Once connected to Claude, you can ask things like:
| Variable | Description | Default |
|---|---|---|
D2L_HOST | Your Brightspace hostname | learn.ul.ie |
D2L_COURSE_ID | Default course ID (optional) | none |
Setting D2L_COURSE_ID allows you to omit the course ID from tool calls.
d2l-mcp-auth if your session expires# Run tests
npm test
# Run integration tests (requires auth)
npm run test:integration
# Watch mode
npm run test:watch
MIT