D2L BrightSpace MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_todoA | Prioritized to-do list across all courses: unfinished work due soon, recently overdue work, work not open yet, items to double-check (quizzes), and work already submitted. Use this first when the user asks what to work on, what's left, or what they should do now. For a plain chronological list of deadlines or a custom date range, use get_upcoming_due_dates instead. |
| get_my_coursesA | Fetch your enrolled Brightspace courses with names, codes, and IDs. Use this when the user asks about their courses, enrolled classes, what they're taking this semester, or needs a course ID for other queries. |
| get_upcoming_due_datesA | Upcoming due dates across all courses, with whether each assignment is already submitted (submissionStatus: submitted, graded, draft, not_submitted, not_open_yet, closed, past_due, restricted, unknown). Dates are UTC ISO strings; convert to the user's local time. Use for deadlines, what's due and date ranges, in date order. For advice on what to do first, use get_todo instead. |
| get_my_gradesA | Fetch your grade breakdown for a specific course or all enrolled courses. Shows grade items with points, percentages, and comments. Use this when the user asks about grades, scores, marks, GPA, academic performance, or how they're doing in a class. |
| get_announcementsA | Fetch recent announcements from your courses. Can filter to a specific course or get announcements across all courses. Use this when the user asks about announcements, news, updates from instructors, recent posts, or what professors said. |
| get_assignmentsA | Fetch assignments and quizzes for a specific course or all enrolled courses. Shows dropbox submissions and quizzes with due dates, status, and rubric info. Use this when the user asks about assignments, homework, what to submit, quizzes, or assignment details and rubrics. |
| get_assignment_filesA | Read the files an instructor attached to an assignment: the spec or instructions PDF, a starter workbook, a rubric document. Call it with just courseId to see which assignments have attachments, then with folderId and fileId to read one. Use this when the user asks what an assignment requires, what the instructions say, or to summarize a handout. Returns the text itself. Use download_file instead when the user wants the file saved to disk. |
| get_course_contentA | Fetch the content tree for a course showing modules, topics, files, and links. Use this when the user asks about course materials, lecture slides, uploaded files, content structure, or what's in a course module. Use moduleTitle to filter to a specific module (e.g. 'Labs', 'Staff', 'Homeworks') instead of fetching the entire tree. Use maxDepth to limit recursion depth for a table-of-contents view. |
| download_fileA | Download a file from course content or assignment submissions to a local directory. Use this when the user wants to download, save, or get a file from Brightspace course content or dropbox submissions. IMPORTANT: You MUST ask the user where they want to save the file before calling this tool. Never guess or assume a download directory. After identifying the file to download, suggest a clean readable filename to the user (e.g., 'Lecture 7 - Memory Management.pdf' instead of 'L07_CS251_2026SP_v2.pdf') and ask if they'd like to rename it. Pass their preferred name as customFilename, or omit it to keep the original. |
| get_classlist_emailsA | Fetch all email addresses for everyone in a course: instructors, TAs, and students. Use this when the user wants a list of emails for a class, needs to email the whole class, or wants contact info for everyone enrolled. Returns emails only, with no names or roles. For names, roles or finding a specific instructor or TA, use get_roster instead. |
| get_rosterA | Fetch the roster for a course including instructors, TAs, and optionally students with their names, emails, and roles. Use this when the user asks about classmates, instructor contact info, TA emails, professor names, or who's in a class. By default returns only instructors and TAs for privacy. Use includeStudents to get full class list. For just a plain list of email addresses to copy or email everyone, use get_classlist_emails instead. |
| get_syllabusA | Fetch the syllabus/overview text and optional attachment for a course. Returns the course overview description as markdown. If downloadPath is provided, also downloads the syllabus attachment (e.g. PDF). IMPORTANT: You MUST ask the user where they want to save the file before calling this tool with a downloadPath. |
| get_discussionsA | Fetch discussion board content for a course including forums, topics, and posts. Use this when the user asks about discussion boards, forum posts, class discussions, or wants to see what's been posted. Provide just courseId to list all forums and their topics. Add forumId to get topics and posts for a specific forum. Add both forumId and topicId to get all posts in a specific discussion topic. |
| get_grade_outlookA | Works out where the user stands in one course and what they need on the remaining work to reach a target grade. Returns the current percentage, the best and worst possible final grade, and the average they must score on everything left to hit targetPercent. Use for "what do I need on the final to get 80?", "can I still pass?" or "am I on track?". For the raw grade items, use get_my_grades instead. |
| export_due_dates_calendarA | Builds an iCalendar (.ics) file of upcoming assignments and quizzes that opens in Google Calendar, Apple Calendar and Outlook. Each event has a link back to Brightspace and a one day reminder. By default only unfinished work is included. Pass downloadPath (an absolute folder) to save the file, otherwise the calendar text is returned. |
| get_calendar_eventsA | Events from the Brightspace course calendar: exams, tests, labs, classes, office hours and other dated events that instructors post, plus due-date events. Use this when the user asks when an exam or test is, what is on their schedule, or what is happening on a day. For what work is left to hand in, use get_todo instead. |
| get_whats_newA | One catch-up summary across all courses: new announcements, unread assignment feedback (newly marked work), unread discussion posts and quizzes not attempted yet. Use this when the user asks what's new, what they missed, whether anything was graded or posted, or for a daily or weekly catch-up. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| what_should_i_do_now | Prioritized list of what is left to do, soonest deadline first, skipping anything already handed in. |
| plan_my_week | Turns the next seven days of deadlines into a day by day plan. |
| weekly_digest | Deadlines, new announcements and recent grades in one summary. |
| grade_target | Works out the score needed on the remaining work in a course to reach a target. |
| exam_prep | Pulls together the syllabus, course content and announcements for one course to build a study plan. |
| summarize_assignment | Reads the instructions and rubric for an assignment and explains what is actually being asked. |
| put_deadlines_in_my_calendar | Exports upcoming unfinished work as a calendar file. |
| catch_me_up | What changed since you last looked: new announcements, newly marked work, unread discussions. |
| when_are_my_exams | Finds exams, tests and midterms on the course calendars and in announcements. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Descriptions are unusually careful, explicitly cross-referencing alternatives (get_todo vs get_upcoming_due_dates, get_roster vs get_classlist_emails, get_assignment_files vs download_file). There is still a mild cluster of deadline/time tools (get_upcoming_due_dates, get_calendar_events, export_due_dates_calendar, get_whats_new) that overlap conceptually, but each has a distinct output and the descriptions steer selection well.
All names use consistent snake_case with clear verb_noun structure (get_announcements, get_my_grades, download_file, export_due_dates_calendar). No mixed conventions or vague verbs; the pattern is predictable throughout.
17 tools is slightly heavy but justified for the breadth of an LMS surface (courses, assignments, grades, content, discussions, roster, calendar). Each tool maps to a distinct resource or view, so few feel redundant, though the deadline-related set pushes the count up a bit.
Broad read coverage: announcements, assignments, due dates, todo, courses, grades, content, discussions, files, roster, syllabus, calendar, and a catch-up summary. Gaps are mostly write/action operations (submitting assignments, posting to discussions, sending messages), which may be intentional for a read-focused server.