
Brightspace
io.github.JhostinAleck由 GitHub 帳號 JhostinAleck 發布v1.3.2更新於 Nov 5, 2026
D2L Brightspace MCP server: courses, grades, rubrics, feedback, course files, calendar. Multi-auth.
概覽
針對 D2L Brightspace 的 MCP 伺服器,讓助理讀取你的課程、成績、作業、評分規準、回饋、課程內容、行事曆與討論。
- 可以做什麼
- 檢查登入狀態,列出已選課程、小組與課程名單
- 讀取成績、教師回饋、評分規準、測驗與測驗作答紀錄
- 瀏覽作業、截止日期、已提交與教師發布的檔案、教學大綱及課程內容主題
- 讀取公告、討論、行事曆事件、通知,並進行課程內全文搜尋
- 查看診斷資訊、快取狀態與本機寫入稽核紀錄
- 啟用寫入後可提交作業、回覆討論、將公告標示為已讀
- 適用情境
- 適合使用 D2L Brightspace 的學生或教師,希望助理依本人帳號資料彙整課業、追蹤截止日期、核對成績或規劃讀書計畫。
- 執行需求
- 透過 npm 套件 brightspace-mcp 在本機以 stdio 執行,需要 Node.js 20 以上版本;需要 Brightspace 站台網址,以及 BRIGHTSPACE_CONFIG 指向的設定檔。驗證可選 Valence API 權杖、使用者名稱加密碼、無頭瀏覽器登入(Playwright 與 Chromium)或貼上工作階段 Cookie;多因素驗證支援 TOTP、Duo Push 或手動輸入。密鑰透過環境變數、系統鑰匙圈或加密檔案引用。可選用 Redis 作為共用快取。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Brightspace,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
brightspace-mcp
[CI] [Docs] [npm version] [License: MIT] [Node.js]
MCP server for D2L Brightspace. Gives Claude (and any MCP-compatible client) access to your courses, grades, assignments, content, calendar, and more — with multi-strategy authentication, full MFA support, and production-grade resilience built in.
Quick start
The interactive wizard handles everything: base URL, auth strategy, MFA, credential storage, and auto-registration with Claude Desktop / Cursor / Windsurf.
For CI pipelines or DevContainers with no TTY, use the non-interactive init command instead:
Documentation
Deep-dive guides live in docs/ — start with docs/README.md.
For AI assistants and contributors, AGENTS.md is a one-page map of the repo.
Table of contents
- Installation
- Authentication strategies
- MFA strategies
- Configuration reference
- Output: timezone and language
- Redis cache
- Write operations
- Available tools
- MCP Resources
- MCP Prompts
- TUI dashboard
- Register with an MCP client
- CLI reference
- Docker
Installation
npx (recommended — no install needed)
Global install
From source
Requirements: Node.js ≥ 20.
Staying up to date
- npx (recommended) — the MCP client config written by
setuprunsnpx --yes brightspace-mcp@latest serve, so every client restart picks up the newest release. Nothing else to do. - Global install —
npm install -g brightspace-mcp@latest(brightspace-mcp upgradechecks npm and prints the right command). - Docker —
docker pullthe latest image and recreate the container.
The server checks npm at most once a day (3 s timeout, cached in ~/.brightspace-mcp/update-check.json). When a newer version exists — or when your installed version has been deprecated because of a security fix — the notice is appended to the first tool response of the session, so your assistant tells you about it. It also shows up under update in get_diagnostics. Set BRIGHTSPACE_NO_UPDATE_CHECK=1 to opt out.
Authentication strategies
Pick the strategy that matches your Brightspace setup. Run npx brightspace-mcp@latest setup and it will walk you through the right one.
API Token (simplest)
Requires a Valence API token from your Brightspace admin panel.
Headless (username + password)
Automates HTTP-level login — no browser window. Supports all MFA strategies including Duo Push.
Browser (Playwright)
Launches a headless Chromium instance and automates the login UI. Best for SSO flows (Microsoft Azure AD, SAML) where the login page has complex JavaScript.
The setup wizard includes a Microsoft SSO preset that fills all selectors automatically.
Session Cookie
Paste the D2L session cookies from your browser's DevTools. Useful when other strategies are blocked.
MFA strategies
TOTP example
Duo Push example
Configuration reference
Full config file (~/.brightspace-mcp/config.yaml):
Credential references
Secret values are never stored in plain text. Use ref: notation to point to the actual value:
Output: timezone and language
All tool responses are formatted in your configured timezone and language.
Run brightspace-mcp setup and choose your timezone and language. Or set it in ~/.brightspace-mcp/config.yaml.
Redis cache
When running multiple instances or want cache persistence across restarts, enable Redis:
1. Add the redis section to config:
2. Install ioredis (optional dependency):
3. Start Redis and the server:
The domain cache (courses, grades, assignments, etc.) automatically uses Redis as persistent layer when the redis: section is present in config. Session tokens are stored with TTL derived from the token expiry.
Write operations
Write tools (submit_assignment, post_discussion_reply, mark_announcement_read) are disabled by default and require two separate opt-ins:
1. Config file:
2. CLI flag:
All write operations:
- Require a client-supplied
idempotency_key(8–128 chars). Repeat calls with the same key return the cached response without re-executing. - Emit a WARN-level audit log line with correlation ID, tool name, and redacted args.
- Respect
dry_run: trueto return a preview response without touching D2L.
Available tools
Read tools (always available)
Write tools (require --enable-writes)
MCP Resources
Four stable URIs for Brightspace content (readable by any MCP client via resources/read):
Obtain IDs from tools like list_my_courses, get_assignments, get_announcements.
MCP Prompts
Four pre-built prompt templates visible in your MCP client's prompt picker:
TUI dashboard
Full-screen interactive terminal UI (Ink + React). Six tabs navigated with Tab / → / ←:
Press Ctrl+C to exit.
Register with an MCP client
See docs/clients.md for Claude Desktop, Cursor, and Windsurf snippets, or run brightspace-mcp setup which auto-detects and registers for you.
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
CLI reference
Docker
Standalone
With Redis (docker-compose)
The config.yaml inside ~/.brightspace-mcp/ must have the redis: section pointing to redis://redis:6379 when using the compose profile.
Architecture highlights
- Resilience: retry with exponential backoff + jitter, circuit breaker (5 failures → 30s cooldown), request coalescing, bulkhead (max 5 concurrent requests)
- Cache tiers: HTTP response cache (L1, in-memory, 60s TTL) + domain cache (L2, layered memory → file or Redis)
- Security: HTTPS-only transport, secrets redaction in all log output, OS keychain integration, AES-256-GCM encrypted credential file, session tokens expire with the D2L token
- DDD structure: bounded contexts (
assignments,authentication,calendar,communications,content,courses,grades,groups,notifications,quizzes) with clean domain / application / infrastructure separation
License
MIT © Jhostin Aleck
來源:README.md,提交 1b85c44
工具
0版本歷史
3- v1.3.2最新Nov 5, 2026
- v1.2.0Sep 28, 2026
- v1.1.1Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分