Skip to content
Agentmart
Submit a tool

Brightspace

D2L Brightspace MCP server: grades, due dates, assignments, announcements and files.

Connector by RohanMuppa · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 59
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/rohanmuppa-brightspace

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

D2L Brightspace MCP server: grades, due dates, assignments, announcements and files. Any school.

Use cases: education

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Runs code on install

Its package runs an install script (such as npm postinstall or setup.py code) as soon as you install it, before any tool is called. Read the script first.

Tools
23 read · 2 write · 1 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
Runs code on install
Runs as
Node.js package

Tools by what they do 26

Read from the source code; the running server may list different tools.

Read 23 · Look things up without changing anything.

  • get_announcement_files
  • get_announcements
  • get_assignment_files
  • get_assignment_rubric
  • get_assignments
  • get_calendar_events
  • get_classlist_emails
  • get_course_content
  • get_discussions
  • get_dropbox_feedback
  • get_dropbox_folders
  • get_dropbox_submissions
Show 11 more tools
  • get_dropbox_user_submissions
  • get_my_courses
  • get_my_grades
  • get_my_groups
  • get_roster
  • get_rubrics_for_object
  • get_server_info
  • get_syllabus
  • get_upcoming_due_dates
  • get_video_transcript
  • search_course

Write 2 · Create, change, send or run things.

  • download_dropbox_submission_file
  • download_file

Delete 1 · Delete, drop, revoke or wipe things.

  • sign_out

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • D2L_TOKEN_TTL

Other settings (environment variables or headers).

  • D2L_ACTIVE_ONLY
  • D2L_BASE_URL
  • D2L_CURRENT_ONLY
  • D2L_DEV_MODE
  • D2L_EXCLUDE_COURSES
  • D2L_HEADLESS
  • D2L_INCLUDE_COURSES
  • D2L_NO_UPDATE_CHECK
  • D2L_SESSION_DIR

Network hosts it talks to 18

  • auladigital.javerianacali.edu.co · found in code
  • brightspace.cuny.edu · found in code
  • brightspace.invalid · found in code
  • brightspace.tudelft.nl · found in code
  • brightspace.universiteitleiden.nl · found in code
  • cdnapisec.kaltura.com · found in code
  • github.com · found in code
  • glama.ai · found in code
  • idm.suny.edu · found in code
  • idp.purdue.edu · found in code
  • mycourses2.mcgill.ca · found in code
  • mylearning.suny.edu · found in code
  • mysignins.microsoft.com · found in code
  • nplms.polite.edu.sg · found in code
  • placeholder.invalid · found in code
  • purdue.brightspace.com · found in code
  • sts.windows.net · found in code
  • westernu.brightspace.com · found in code

Files it touches

  • /opt/homebrew/lib/node_modules
  • /proc/1/cgroup
  • /proc/version
  • /usr/local/lib/node_modules
  • Your home directory (~)

Tools (26)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • download_dropbox_submission_fileDownload Dropbox Submission File

    Download a specific file from a student's (or group's) dropbox submission to an existing local directory (it is not created for you), for an instructor or TA. Use get_dropbox_submissions or get_dropbox_user_submissions first to find submissionId and fileId. Requires instructor or TA access to the course. IMPORTANT: Ask the user where they want to save the file before calling this tool. After identifying the file, suggest a clean readable filename and ask if they'd like to rename it.

  • download_fileDownload File

    Download a file from course content, files linked by path inside a module description (coursePath, from get_course_content's quickLink URLs with type=coursefile), instructor assignment attachments (source: assignmentAttachment with folderId + fileId), assignment submissions, or an announcement's attachments. Use this when the user wants a file from Brightspace course content, dropbox submissions, or an announcement (newsId + fileId, from get_announcements). Two response modes: (1) INLINE (default — omit downloadPath): the file comes back directly in the tool response — extracted text for PDFs …

  • get_announcement_filesGet Announcement Filesread-only

    Read the files an instructor attached to an announcement: prompt questions, a rubric, an updated schedule, slides. Call it with just courseId to see which announcements have attachments, then with newsId and fileId to read one. Use this when the user asks what a file attached to an announcement says. Returns the text itself. Use download_file (newsId + fileId) instead when the user wants the file saved to disk.

  • get_announcementsGet Announcementsread-only

    Fetch announcements from one course with courseId, or all courses when omitted, newest first. count is 1-50 per page. Each body is the full announcement text as markdown (links kept); pagination.truncated only means more announcements remain, never that a body was cut. Continue with offset= pagination.nextOffset until it is null. Pagination metadata is in a separate JSON text block for array responses, or the pagination field with modifiedSince. A false coverageComplete means some courses were not fetched: retry from offset 0 after recovery. Offsets reflect the current filtered list; new posts…

  • get_assignment_filesGet Assignment Filesread-only

    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_assignment_rubricGet Assignment Rubricread-only

    Fetch the full grading rubric for a dropbox assignment: every criteria group, criterion, and achievement level with its points and description, plus the student's own graded outcome per criterion once it has been released. Use this when the user asks what a rubric wants, how an assignment will be graded, or why they got a particular score on a criterion.

  • get_assignmentsGet Assignmentsread-only

    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. Read submissionStatus/attemptStatus, not just submission/attemptsUsed, to decide whether something was turned in: some tenants deny students access to submission or attempt data, in which case the status is "unknown" even though submission is null or attemptsUsed is 0. Never report an "unknown" item as missing, unsubmitted, o…

  • get_calendar_eventsGet Calendar Eventsread-only

    Fetch course calendar events — exams, midterms, labs, recitations, review sessions, schedule changes, and deadlines instructors typed straight onto the calendar — across all your courses or one course, in a time window (default: the next 7 days). Use this when the user asks when an exam is, what's on their calendar, or what's happening this week.

  • get_classlist_emailsGet Classlist Emailsread-only

    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.

  • get_course_contentGet Course Contentread-only

    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. A module or topic that isn't currently available carries isAvailable/availabilityStatus/availabilityMessage (and startDate/endDate when known) explaining why; absence of these fields means it's availa…

  • get_discussionsGet Discussionsread-only

    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_dropbox_feedbackGet Dropbox Feedbackread-only

    Retrieve the feedback saved for a dropbox folder — score, graded state, feedback text, and rubric assessment detail. Students: omit entityType and entityId to read your OWN released feedback on an assignment (it is not hidden; use this when get_assignments shows feedback unavailable). Instructors and TAs: pass entityType and entityId to read what is already saved for any user or group, e.g. before drafting new feedback; reading another user's feedback requires instructor or TA access to the course.

  • get_dropbox_foldersGet Dropbox Foldersread-only

    List all assignment/dropbox folders for a course, for an instructor or TA. Returns folder ID, name, due date, start/end dates, submission type, visibility, and whether rubrics are attached. Use this to discover folderId values before calling get_dropbox_submissions, get_dropbox_user_submissions, get_dropbox_feedback, or get_rubrics_for_object. This reads the same folder listing a student's own client uses, so it is not gated to instructor/TA accounts the way get_dropbox_submissions, get_dropbox_feedback, and download_dropbox_submission_file are.

  • get_dropbox_submissionsGet Dropbox Submissionsread-only

    List every student's (or group's) submission to a dropbox folder, for an instructor or TA — submitter names, submission dates, late status, file lists, and feedback/grading status. Use get_dropbox_folders first to find folderId. Requires instructor or TA access; a student account gets a clear note instead of data (a student's own download_file / get_assignments already cover their own submission). Results are capped by limit (default 100, max 1000); a truncated response says so and only fetches feedback for the returned slice.

  • get_dropbox_user_submissionsGet Dropbox User Submissionsread-only

    Retrieve all submissions made by one specific student (or group) in a dropbox folder, for an instructor or TA — useful for reviewing a single student's work before drafting feedback. Use get_dropbox_submissions or get_roster to find the userId first. Requires instructor or TA access to the course.

Show 11 more tools
  • get_my_coursesGet My Coursesread-only

    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_my_gradesGet My Gradesread-only

    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_my_groupsGet My Groupsread-only

    List the current user's project/discussion groups in a course, with each group's members. Use this when a student asks who is in their project group, lab group, or discussion group.

  • get_rosterGet Course Rosterread-only

    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.

  • get_rubrics_for_objectGet Rubrics for Dropbox Folderread-only

    Retrieve the full rubric table (criteria, levels, and point values) attached to a dropbox folder, for an instructor or TA. Use get_dropbox_folders first to find folderId. Like get_dropbox_folders, this reads the folder listing's embedded rubric data, so it is not gated to instructor/TA accounts the way get_dropbox_submissions and get_dropbox_feedback are.

  • get_server_infoGet Server Inforead-only

    Report which version of the Brightspace MCP server is running, the Node.js runtime, platform, config file path, session state directory, configured school URL, whether a credential is stored, the server's local timezone and UTC offset, (once a browser sign-in has been saved) what Microsoft remembered: stay-signed-in (which keeps the Microsoft sign-in but does not by itself skip 2FA) and the Don't ask again MFA checkbox, with a plain-language note on what that means for 2FA to relay to the user, (when signed in) the account's uniqueName/displayName as signedInAs, and this process's request coun…

  • get_syllabusGet Course Syllabus

    Fetch the syllabus/overview text and optional attachment for a course. Returns the course overview description as markdown. When the syllabus lives in an external LTI tool (e.g. Simple Syllabus), lists those sources in externalSyllabusSources; their contents cannot be read. If some of those lookups could not be completed (e.g. permission denied), externalSyllabusDiscovery says which, and an empty result is then not proof the course has no syllabus. If downloadPath is provided, also downloads the syllabus attachment (e.g. PDF); the directory must already exist, since it is not created for you. …

  • get_upcoming_due_datesGet Upcoming Due Datesread-only

    Fetch upcoming due dates across all your courses, derived from the due dates on assignments (dropbox folders), quizzes, and graded discussion topics themselves, plus course calendar events such as exams and labs (type: event). Use this when the user asks about deadlines, what's due, upcoming work, or what they need to do this week.

  • get_video_transcriptGet Video Transcriptread-only

    Read the transcript of a video embedded in course content, such as a recorded lecture or explainer clip. Call it with courseId and topicId from get_course_content (typeFilter: 'video' or 'other'), or with videoUrl directly if you already have the link. Returns transcript text with timestamps, plus title and duration when available. Currently supports Kaltura (e.g. BoilerCast, including its Brightspace LTI links) and YouTube; other platforms return a clear message naming what isn't supported yet. A failure returns its message plus a JSON block with reason (e.g. sign_in_required for a YouTube bo…

  • search_courseSearch Courseread-only

    Search a course's content (modules, topics, file names), announcements, and discussion forums/topics by keyword in a single call, instead of reading the whole content tree. Use this when the user wants to find something specific, e.g. 'find the midterm review slides' or 'did anyone post about office hours'. Results are ranked: a result matching every query term ranks above one matching only some, and within that, a match in the title ranks above one only in the body text. If one source (e.g. discussions) can't be read, it's skipped and named in `note` rather than failing the whole search. This…

  • sign_outSign Out of Brightspacecan change or delete data

    Sign out of Brightspace on this computer: delete the saved Brightspace session, so every Brightspace app here must sign in again from scratch on its next question. Keeps the saved password, settings, and authenticator key. Does not sign out of Microsoft or Brightspace on other devices. Call this ONLY when the user explicitly asks to sign out or log out of Brightspace (a shared computer, handing the machine on). Never call it to fix an error, never as part of answering another question, and never to retry or refresh a sign-in.

Signals

Stars
59
Forks
29
Open issues
13
Last commit
Oct 24, 2026 (5 days ago)
Last release
Oct 26, 2026 (4 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.RohanMuppa/brightspace
Version
5.1.23
Auth
No auth
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 26, 2026
Cite this page

Brightspace MCP server. Agent Mart. https://agentmart.dev/connectors/rohanmuppa-brightspace (last updated 2026-10-26)