Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BLACKBOARD_URLNoInstance origin, overriding stored config
BLACKBOARD_COOKIENoSession cookie for non-interactive login
BLACKBOARD_MCP_HOMENoState directory, default ~/.blackboard-mcp~/.blackboard-mcp
BLACKBOARD_MCP_LOG_LEVELNoLog level: silent, error, warn, info, or debug
BLACKBOARD_MCP_PAGE_SIZENoDefault list page size, default 5050
BLACKBOARD_MCP_ALLOW_WRITESNoSet to '1' to permit write operations0
BLACKBOARD_MCP_DOWNLOAD_DIRNoWhere files are saved
BLACKBOARD_MCP_MAX_DOWNLOAD_BYTESNoPer-file ceiling, default 100 MB104857600

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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
bb_whoamiA

Returns the signed-in Blackboard user (name, username, student id, email, institution roles) and the configured instance. Use this to confirm authentication is working before other calls.

bb_session_statusA

Reports how much longer the stored Blackboard session is valid, when it was captured, and which cookies it holds. Call this when other tools start failing with session errors.

bb_list_coursesA

Lists the courses the signed-in user is enrolled in, with course id, name, term, role and last-access date. The returned courseId (like _12345_1) is what every other course tool needs. Start here.

bb_get_courseA

Full detail for one course: name, code, term, availability window, Ultra/Classic mode, and the tools enabled in it.

bb_list_termsB

Lists academic terms defined on the instance, with their date ranges.

bb_list_rosterA

Lists the people enrolled in a course with their roles. Useful for finding an instructor to contact, or identifying group members.

bb_browse_courseA

Walks the full content outline of a course recursively and returns every item with its folder path, type, and any attached file. This is the primary way to discover what material a course contains. Use maxDepth/maxNodes to bound very large courses.

bb_list_contentA

Lists the immediate children of a course folder or lesson, or the top level of the course when no folder is given. Prefer bb_browse_course unless you specifically want one level.

bb_get_contentA

Full detail for one content item: its rendered body text, attached file metadata, external link target, due date, and any files embedded in the body HTML. Use this to actually read an announcement-style document or assignment brief.

bb_search_contentA

Searches content item titles and body text for a query string, in one course or across every enrolled course. Use this when the user asks where something is ("where are the lecture slides on transformers?"). Searching all courses walks each tree, so prefer a single courseId when you know it.

bb_list_filesA

Walks a course and lists every readable document: attached files, attachments, files embedded in page bodies, and content items that link to Google Slides, Docs or Sheets. Returns name, type, size and the contentId needed to fetch each one.

bb_read_fileA

Downloads a file attached to a content item and extracts its text. Also resolves content items that merely LINK to a Google Slides/Docs/Sheets document (common for lecture decks) by fetching the provider export, so reading works the same either way. PDFs are returned a page-window at a time (use fromPage to continue), so a long document will not flood the context. Handles PDF, HTML, and plain-text/code/CSV; Office formats download but cannot be extracted. This is the tool to use to actually read lecture notes or a handout.

bb_download_fileA

Downloads a file from a content item and saves it locally without extracting text. Use this for Office documents, images, archives, or anything the user wants to keep. Also handles content items that link to Google Slides/Docs/Sheets, fetching the export (pptx/docx/xlsx/pdf). Returns the saved path.

bb_download_course_filesA

Walks a course and downloads every attached file to a local folder, organised by course. Use for archiving a course or grabbing all slides at once. Respects the configured size limit per file and skips files already on disk.

bb_download_submissionA

Downloads the files the student submitted with an assignment attempt. Use bb_get_grade_detail first to find the attemptId and columnId.

bb_list_gradesA

Lists grades for one course, or across every enrolled course when courseId is omitted. Shows each graded item, the score out of its total, and its status. Cross-course mode uses Blackboard's batch API so it costs roughly one request rather than one per course.

bb_get_grade_detailA

Everything about one gradebook item: the score, rubric/points, due date, every attempt with its timestamp and status, the student's submitted text, and the instructor's written feedback. This is where feedback lives. The grade list does not carry it.

bb_grade_summaryA

Computes, per course, how many items are graded, the running points total, and the average percentage. Use this for "how am I doing overall?" questions rather than listing every item.

bb_todoA

The student to-do list: everything overdue, due today, and coming up, across all courses, in one call. This is the right tool for "what do I have due?", "am I behind?", or "what should I work on?". Grouped by urgency and sorted by date.

bb_calendarA

Lists calendar entries in a date range: class sessions, instructor-created events, and assignment due dates. Covers all courses by default. Use bb_todo instead when the question is specifically about assignment deadlines.

bb_course_scheduleA

Lists the recurring class meetings configured for a course (day, time, room). Empty for courses whose instructor never set one up.

bb_announcementsA

Lists course announcements with their full text, newest first. Covers every enrolled course by default (via the batch API), or one course when courseId is given. Use this for "what did my instructors post?" or catching up after time away.

bb_activity_streamA

The Ultra activity stream: recent grade postings, new content, announcements and due-date reminders across all courses, newest first. A good single call for "what changed recently?".

bb_list_conversationsA

Lists the message threads (Blackboard "conversations") in a course, and optionally the messages inside one thread.

bb_list_discussionsA

Reads a discussion forum: its top-level posts, and the replies to one post when messageId is given. Find the forumId from a "discussion" item in bb_browse_course (its contentDetail carries conferenceId/id).

bb_attendanceA

Lists the attendance records recorded for the signed-in user in a course (present/absent/late/excused per session), when the instructor uses Blackboard attendance.

bb_unread_countsA

Unread message counts across every course in a single call, plus the overall messages summary. Cheap. Use it to decide whether reading messages is worth it before calling bb_list_conversations.

bb_raw_requestA

Escape hatch: issues a request against any Blackboard API path using the stored session, and returns the raw JSON. Use this when no dedicated tool covers what you need. The Ultra internal API (/learn/api/v1/...) exposes far more than this server models. Call bb_list_endpoints first to see what is already wrapped.

bb_batch_requestA

Fans out up to 20 GET reads in a single round trip using Blackboard's own batch endpoint. Paths are version-relative, e.g. "v1/courses/_12345_1/groups". Much cheaper than repeated bb_raw_request calls when gathering the same data across many courses.

bb_list_endpointsA

Shows every Blackboard API endpoint this server knows, with the operation name and its path template, plus any local overrides. Useful for discovering what to pass to bb_raw_request.

bb_mark_reviewedA

Marks a reviewable content item as reviewed (the "Mark Reviewed" button in Ultra). Requires writes to be enabled with BLACKBOARD_MCP_ALLOW_WRITES=1; this server is read-only by default.

Prompts

Interactive templates invoked by user choice

NameDescription
whats_dueSummarise everything due soon across all Blackboard courses, grouped by urgency.
course_briefingBuild a full picture of one course: structure, deadlines, grades and recent activity.
study_packFind and read all course material on a topic, then synthesise it into study notes.
catch_upEverything that changed on Blackboard recently: posts, grades, new material, deadlines.
grade_reportCurrent standing across all courses, with feedback on what to prioritise.
find_materialLocate a specific file, reading, or slide deck across all Blackboard courses.

Resources

Contextual data attached and managed by the client

NameDescription
meThe signed-in user and the configured instance.
coursesEvery course the signed-in user is enrolled in, with ids and terms.