Personal Brightspace MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BRIGHTSPACE_URL | No | Base URL of your institution's Brightspace tenant, for example https://brightspace.example.edu. Equivalent to the baseUrl setting in config.json. | |
| BRIGHTSPACE_MCP_HOME | No | Overrides the default private state directory location, ~/.local/share/personal-brightspace-mcp/. | |
| BRIGHTSPACE_LE_VERSION | No | Optional override for the supported Brightspace LE API version. API versions are normally discovered from the school. | |
| BRIGHTSPACE_LP_VERSION | No | Optional override for the supported Brightspace LP API version. API versions are normally discovered from the school. | |
| BRIGHTSPACE_ACCESS_TOKEN | No | Official Brightspace access token used for access-token authentication. It is not written by the program. | |
| BRIGHTSPACE_BROWSER_PATH | No | Path to a Chrome/Chromium executable to use for interactive browser login instead of the existing Google Chrome installation. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| brightspace_statusA | Check local configuration without exposing secrets. Set verifyConnection=true to verify the school API identity. |
| brightspace_list_coursesC | List accessible course enrollments, respecting activeOnly and includeCourseIds. Check sourceComplete and nextOffset. |
| brightspace_get_assignmentsA | Read assignment instructions, dates and available rubric metadata. Supply a folderId to return one visible assignment and check your own submission receipts. A missing receipt leaves completion unknown. |
| brightspace_get_announcementsA | Read course announcements with publication/modification dates. Some copied announcements may concern older academic years or another class. |
| brightspace_get_gradesA | Read only the signed-in user's released Brightspace grade values. Missing values are not zero; this does not read Osiris. |
| brightspace_get_quizzesA | Read quiz metadata and availability only. Does not open attempts, questions, review windows, or Remindo. |
| brightspace_get_contentA | List nested course modules and topics, flattened with paths. Date-restriction bypass flags are never sent. |
| brightspace_read_topicA | Read text from a visible file topic, including PDF pages, PowerPoint slides and speaker notes, Word paragraphs and Excel rows. |
| brightspace_read_attachmentA | Read a file that belongs to a visible assignment or announcement. Supply exactly one parent and its attachment FileId. |
| brightspace_view_pageA | Return a rendered PDF page or PowerPoint slide as an MCP image. Optionally supply image to get one embedded slide picture. Choose a topic OR an assignment/news attachment. |
| brightspace_get_assignment_rubricsA | Read rubrics associated with a visible assignment, including available criteria, achievement levels and points. Check completeness and warnings. |
| brightspace_get_calendarA | Read your calendar events for one course. Recurrence rules are not expanded. Calendar events are not automatically deadlines. |
| brightspace_get_deadlinesB | Aggregate structured dates from assignments, quizzes, calendar and content. Due dates and availability end dates stay distinct. Always report coverage and limitations. |
| brightspace_search_courseA | Search the course outline, announcements and assignments, plus a batch of visible files by default. File matches include slide, page or section references. Follow fileSearch.nextFileOffset. |
| brightspace_check_updatesA | Compare metadata with local baselines. To detect changed file bytes despite identical metadata, pass includeFiles=true with one course ID and follow fileCoverage.nextFileOffset. |
| brightspace_list_notesA | List local Markdown/text snapshots explicitly imported through the CLI. Does not read arbitrary local files. |
| brightspace_search_notesA | Search manually imported local school snapshots with line-numbered snippets. These are not live Brightspace checks. |
| brightspace_read_noteA | Read a bounded line range of an imported note using its ID, not a filesystem path. Preserve the snapshot date when citing it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| school_weekly_plan | Review live obligations and source coverage, then build a manageable study plan. |
| school_exam_tutor | Teach from the relevant course material and assessment requirements, one step at a time. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Brightspace tutor guide | Source handling, privacy and limitations. |
TDQS
Scored across 18 tools
Most tools target a clearly distinct resource (grades, quizzes, calendar, rubrics, announcements), and descriptions do real work separating near-neighbors like get_deadlines (aggregator) from the individual getters. The only soft spots are the three file readers (read_topic vs read_attachment vs view_page) and the three local-note tools (list/search/read), which an agent could confuse without reading carefully.
Strong, uniform `brightspace_` prefix with a consistent verb_noun shape: list_*, get_*, read_*, search_*, check_*. The lone deviation is the bare noun `brightspace_status`, and the verb set is wider (list/get/read/view/search/check) than a pure CRUD scheme, but overall very readable and predictable.
18 tools is at the upper end but each maps to a real Brightspace surface (courses, assignments, rubrics, content, calendar, deadlines, notes). The local-snapshot trio and the file-reading trio are somewhat granular, pushing the set slightly into the heavy range, but nothing looks like filler.
The read-only surface is broad: enrollments, assignments with rubrics and submission receipts, announcements, grades, quizzes, nested content, calendar, aggregated deadlines, search, update diffing, and offline note snapshots. Obvious absences are any write path (submitting assignments, marking complete) and discussions/messages, so it is a solid reader but not a full lifecycle surface.