
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 分