
felipedias-ie/blackboard-mcp
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
MCP server for Blackboard Learn (Ultra): courses, content, files, grades and deadlines.
Обзор
An MCP server for Blackboard Learn (Ultra). Gives Claude, Codex, Cursor and any other MCP client read access to your courses, content, files, grades, deadlines, announcements and discussions, using your own browser session. What do I have due this week? Read me the lecture 4 slides from Machine Learning. How am I doing across all my courses? Catch me up, I've been away a week. Blackboard's documented REST API requires an OAuth application registered and approved by your institution's Blackboard administrator. Most students and many staff can't get one. This package targets the internal Ultra API instead: the surface the Blackboard web interface itself calls, authenticated with nothing but a session cookie. It also exposes more than the public API does, including to-do lists, the activity stream, conversations, discussion read state and attendance. It is read-only in practice, and does not cover quizzes, rubrics or submitting work. See Limitations below. Requires Node.js 22.5+.
README
Показан фрагмент оригинального README. Открыть оригинал.
blackboard-mcp
An MCP server for Blackboard Learn (Ultra). Gives Claude, Codex, Cursor and any other MCP client read access to your courses, content, files, grades, deadlines, announcements and discussions, using your own browser session.
npx blackboard-mcp auth login # sign in once
npx blackboard-mcp install # register with your MCP client
Then ask your assistant things like:
What do I have due this week? Read me the lecture 4 slides from Machine Learning. How am I doing across all my courses? Catch me up, I’ve been away a week.
Why this exists
Blackboard’s documented REST API requires an OAuth application registered and approved by your institution’s Blackboard administrator. Most students and many staff can’t get one.
This package targets the internal Ultra API instead: the surface the Blackboard web interface itself calls, authenticated with nothing but a session cookie. It also exposes more than the public API does, including to-do lists, the activity stream, conversations, discussion read state and attendance.
It is read-only in practice, and does not cover quizzes, rubrics or submitting work. See Limitations below.
Install
Requires Node.js 22.5+. Older versions work but must sign in with --paste.
npm install -g blackboard-mcp
Or run it without installing, which is what the generated client config uses:
npx -y blackboard-mcp
Signing in
blackboard-mcp auth login
That’s the whole flow. No URL, no cookies, no DevTools, no password.
It reads the session from the browser you’re already signed in to. Blackboard’s BbRouter cookie is emitted only by Blackboard Learn, so finding it identifies both that you have a session and which instance it belongs to. Candidates are verified against the live API before anything is stored.
$ blackboard-mcp auth login
Signed in as Ada Lovelace ([email protected])
Instance: https://blackboard.example.edu
Imported by: browser (automatic)
Auto-refresh: ENABLED
Works with Chrome, Edge, Brave, Chromium, Vivaldi, Opera and Firefox, including multiple profiles. To see what it can find:
blackboard-mcp auth browsers
You won’t have to sign in again
Blackboard sessions expire after about three hours. Two mechanisms avoid re-authenticating:
- Keep-alive. While the server runs it pings Blackboard’s session endpoint, resetting the inactivity timer. An idle session never expires.
- Silent renewal. If the session lapses anyway, the institution’s SSO redirect chain is replayed against your identity provider. This is what your browser does when you reload after being logged out.
Renewal works because identity provider sessions outlive Blackboard’s by weeks or months. auth login imports those cookies alongside Blackboard’s, so renewal needs no human:
GET /ultra -> 302
Установка
npx -y blackboard-mcpКонфигурация
{
"mcpServers": {
"blackboard": { "command": "npx", "args": ["-y", "blackboard-mcp"] }
}
}