blackboard-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BB_BASE_URL | No | Base URL of the Blackboard instance. | |
| BB_HEADLESS | No | Set to '0' to run the browser in headed mode. | |
| BB_SSO_ENTRY_URL | No | SSO entry URL for authentication. | |
| BLACKBOARD_HOSTS | No | Additional Blackboard hosts configuration for other institutions. | |
| BB_BROWSER_CHANNEL | No | Browser channel to use for the Playwright browser (e.g., 'chrome'). | |
| BLACKBOARD_MCP_HOME | No | Directory to store MCP data (default is ~/.blackboard-mcp). |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_coursesA | List the student’s currently visible Blackboard (Syracuse University) courses. Returns course ids needed by every other blackboard tool. Read-only. |
| get_course_contentA | List a course’s content items (folders, documents, files, assignments, tests, links) from Blackboard. Hierarchy is expanded a couple of folder levels; pass folder_id to go deeper into one folder. Each item lists its "links" (Google Docs/Sheets, Zoom, YouTube, readings...): open one with read_link. Files open with get_attachment. Read-only. |
| get_announcementsA | List announcements for one Blackboard course, newest first. Optionally filter to items created or modified after a date. Links inside an announcement are listed under "links"; open one with read_link. Read-only. |
| get_assignmentsA | List assignments and assessments with due dates, combined and deduplicated from Blackboard course content, the gradebook, and the calendar. Optionally scope to one course and/or a due-date window. Read-only. |
| get_gradesA | List the student’s own grades for one Blackboard course: assignment, score, points possible, percentage, feedback, and grading status. Only grades visible to the signed-in student are returned. Read-only. |
| get_attachmentA | Download a course file (PDF, Word, PowerPoint, Excel, notebooks, text, images, ...) from Blackboard and return its contents as text, plus the local path where it was saved (~/.blackboard-mcp/downloads). PDFs come back page by page, slides with speaker notes, spreadsheets as CSV per sheet. Long files come in pages: pass next_offset back as offset to keep reading. Nothing is sent anywhere. Read-only. |
| get_upcoming_workA | Upcoming assignments and assessments across ALL Blackboard courses, sorted by due date, with submission status. Also lists anything due in the last few days that has not been handed in. This is the one call to answer “what do I have due?”. The window runs to the end of the last day, Syracuse time. status: graded, submitted, in_progress (started or saved as a draft, NOT handed in), not_submitted, or unknown (Blackboard did not say — never treat unknown as missing work). Read-only. |
| get_recent_updatesA | Recent Blackboard activity across current courses since a point in time (default: the last 7 days): announcements (with their links), new or changed content items, changed assignments, and grades on gradebook items that changed. Read-only. |
| get_assignment_contextA | One package describing a Blackboard assignment: instructions, due date, points, rubric (when available), attached files, links in the instructions (open them with read_link), the student’s grade and submission status, and related course announcements. Use this instead of many low-level calls. status: graded, submitted, in_progress (started or saved as a draft, NOT handed in), not_submitted, or unknown (Blackboard did not say — never treat unknown as missing work). Read-only. |
| read_linkA | Open a link a professor posted in Blackboard and return what is behind it as text: Google Docs, Sheets (every tab), Slides (with speaker notes), Drive files and folders, Colab notebooks, YouTube videos (title and description; YouTube refuses transcripts), Zoom recordings (transcript, when the host enabled one), Kaltura/Panopto videos (captions), Microsoft 365 and OneDrive files, Google/Microsoft Forms (questions only), GitHub files, PDFs, and ordinary web pages. Links come from the "links" field of get_course_content, get_announcements and get_assignment_context. Only links that appear in the student’s own courses can be opened. Never submits, joins, or types anything. Long results come in pages: pass next_offset back as offset to keep reading. Read-only. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes, but there is some overlap: get_assignments, get_upcoming_work, get_course_content, and get_assignment_context all surface assignment-related data with different scopes. The descriptions do a good job clarifying when to use each, but an agent could still hesitate between them for certain queries.
All tool names follow a consistent verb_noun snake_case pattern: get_course_content, get_announcements, get_assignments, get_attachment, get_upcoming_work, get_recent_updates, get_assignment_context, get_grades, list_courses, read_link. The verbs get_, list_, and read_ are standard and predictable.
Ten tools is well-scoped for a read-only Blackboard student access server. Each tool earns its place by covering a distinct resource or view (courses, content, announcements, assignments, attachments, links, grades, upcoming work, recent updates, assignment context).
The read-only surface covers the core student workflows: listing courses, browsing content, reading announcements and assignments, opening files and links, checking grades, and tracking due work. A notable gap is discussion/forum reading, and there is no cross-course grade summary, but agents can work around these limitations.