关于 brightspace-d2l-mcp
brightspace-d2l-mcp 为使用 D2L Brightspace 的学生提供课程只读访问,可查看截止日期、真实提交状态、成绩、课程内容和公告。它通过浏览器完成学校登录,不保存密码。
主要功能
- 01汇总待办事项和截止日期
- 02核对作业提交状态
- 03查看成绩与目标分数
- 04读取课程资料和公告
- 05导出未完成任务日历
适用场景
- 01按课程整理尚未提交的作业
- 02查看期末达到目标成绩所需分数
- 03汇总考试安排和课程新动态
MCP 相关
该 MCP 服务向 AI 应用和 Agent 提供 D2L Brightspace 的只读工具,涵盖课程、作业、成绩、内容及日历。支持本地 stdio 和 streamable HTTP 连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
13收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| daysAhead | integer | 否 | 向前包含的天数 |
| includeOverdueDays | integer | 否 | 同时包含逾期这么多天的未完成工作 |
详细介绍
Brightspace D2L MCP 服务
将 D2L Brightspace 连接到 Claude、ChatGPT、Cursor 和 Copilot。
它知道你已经提交了什么,因此只会显示真正还需要完成的内容。
一条命令。像往常一样登录。不存储密码。
一个 MCP(模型上下文协议)服务,为 AI 助手和 Agent 提供对 Brightspace 课程的只读访问权限:包括截止日期和真实的提交状态、成绩、作业、评分标准、课程内容、公告、讨论和班级名单。凡是使用 D2L Brightspace 的学校都可以使用,包括采用 Microsoft、Duo、Okta 或 Shibboleth 单点登录的学校。
快速开始
你需要安装 Node.js 20 或更高版本以及 Google Chrome 或 Microsoft Edge。
npx brightspace-d2l-mcp setup
就这么简单。设置程序会询问你的学校,打开浏览器供你登录,并连接它找到的所有 AI 应用。 然后向 AI 提问:
“我现在应该做什么?”
刚开始使用?分步设置指南通过每一步的图片带你完成所有操作。 正在使用特定应用?请查看 Claude 和 ChatGPT 指南,或了解与其他 Brightspace MCP 服务的比较。
对比情况
大家通常会在选择 Brightspace MCP 服务前比较几个选项。以下是最常见的三项区别,其他区别请参阅完整对比:
| 服务 | 提交状态 | 登录(SSO) | 目标成绩 |
|---|---|---|---|
Brightspace MCP(本仓库,brightspace-d2l-mcp) | 每个截止日期都会说明你是否已提交作业,待办列表也会跳过已完成的事项 | 打开真实浏览器窗口,由你自行登录,因此支持任何 SSO:Microsoft、Duo、Okta、Shibboleth。不存储密码 | get_grade_outlook 会显示你当前的百分比成绩、最终成绩的最高和最低可能值,以及要达到任意目标所需的剩余作业成绩 |
| brightspace-mcp-server(由 RohanMuppa 开发) | 在其作业工具中显示 | 自动登录,会将密码保存到 Keychain 或 Credential Manager,并提供九所学校的预设 | 已发布的工具列表中没有目标成绩工具 |
| brightspace-mcp(由 JhostinAleck 开发) | 列出你提交的文件 | 可配置的自动化方式:HTTP 登录、带 Microsoft 预设的无头浏览器、Duo 推送通知或粘贴 Cookie | grade_audit 会回答“通过课程需要达到什么成绩” |
| @n35da/brightspace-mcp | 显示在每个 Dropbox 文件夹中 | 打开真实浏览器窗口,让你使用学校的 SSO 登录 | 已发布的工具列表中没有目标成绩工具 |
| @exhabition/brightspace-mcp(Rust) | 提供作业和提交内容读取器 | 打开可见的 Chromium 窗口,仅支持 Microsoft SSO | 已发布的工具列表中没有目标成绩工具 |
“已发布的工具列表中没有目标成绩工具”表示,截至 2026 年 10 月,我们在各项目公开的 README 和工具列表中都找不到此类工具,并不意味着以后永远不会添加。发现表格有误?请提交 issue,我们会修正。
从 brightspace-mcp-server 切换
如果你正在运行 RohanMuppa 开发的 brightspace-mcp-server,并想试试这个项目,只需更改包名,其他内容保持不变。
在 MCP 配置中,找到 mcpServers 里的 brightspace 条目并替换命令:
{
"mcpServers": {
"brightspace": {
"command": "npx",
"args": ["-y", "brightspace-d2l-mcp@latest"]
}
}
}
在 Windows 上,像现在一样使用 cmd /c 包装启动命令:
{
"mcpServers": {
"brightspace": {
"command": "cmd",
"args": ["/c", "npx", "-y", "brightspace-d2l-mcp@latest"]
}
}
}
然后重启应用。如果你不想编辑文件,可以运行 npx brightspace-d2l-mcp setup:它会询问你的学校,打开浏览器窗口供你登录,并为你写入此条目。你也可以运行 npx brightspace-d2l-mcp config,为任意应用输出准确的 JSON。
哪些内容会保留,哪些不会
| 状态 | |
|---|---|
mcpServers 中的 brightspace 服务名称 | 这里也使用相同名称,因此指向 brightspace 服务的配置项和已保存提示词仍然适用 |
| 工具名称 | 名称不同。请查看上方 工具 表格,了解此服务提供的工具,并改用这些名称向 AI 提问 |
| 你的 Brightspace 账户和课程 | 无需迁移。此服务会以你的身份登录,并查看你选修的课程,与之前相同 |
D2L_INCLUDE_COURSES 或 D2L_EXCLUDE_COURSES 设置 | 这里也会读取这两个名称,因此环境变量块中的课程筛选设置仍然有效。D2L_ACTIVE_ONLY 的行为也相同,这里同样会读取 |
| 第一个服务保存在你电脑上的内容 | 会原样保留。此服务会在 ~/.brightspace-d2l-mcp/ 中存储自己的设置和会话,因此除非你亲自删除,否则那里不会有任何变化 |
想要切换回去?把旧命令放回原处即可。你甚至可以使用两个不同的服务名称并排配置这两个服务,但一个 AI 应用同时连接两个 Brightspace 服务通常会让事情变得更复杂,得不偿失。
第一个服务具备的一些功能在这里没有:它可以将密码保存到电脑的凭据存储中,从而无需打开浏览器窗口即可登录;它还附带了几所指定学校的预设。此服务始终会打开一个普通的浏览器窗口,由你自行登录,这样才能使用单点登录;之后它只会保留你的浏览器会话。
你可以这样提问
| 试着问 | |
|---|---|
| ✅ 待完成事项 | “我现在应该做什么?” · “我还有什么没提交?” |
| 📅 截止日期 | “这周有哪些截止日期?” · “明天有截止的事项吗?” |
| 📊 成绩 | “我的成绩怎么样?” · “我微积分及格了吗?” |
| 📢 公告 | “今天有教授发布什么内容吗?” |
| 📚 课程内容 | “查找期中复习课件” · “总结实验 3 的说明” |
| 📎 作业文件 | “项目的评分标准有哪些要求?” |
| 💬 讨论 | “大家在期末项目讨论串里都说了什么?” |
| 👥 班级名单 | “我的网络课程助教是谁?” |
| 🎯 目标成绩 | “期末考试要考多少才能拿到 80 分?” · “我还有机会及格吗?” |
| 🗓️ 日历 | “把我的截止日期加到日历里” |
| 📝 考试 | “我的期中考试是什么时候?” · “我这周的日程安排是什么?” |
| 🔔 最新动态 | “告诉我最近的情况” · “有什么东西已经评分了吗?” |
它知道你已经提交了什么
大多数工具只能查看截止日期,所以会一直提醒你做已经完成的作业。 此工具会检查每项作业的实际提交状态:
| 状态 | 含义 |
|---|---|
submitted / graded | 已完成。绝不会将其列为待办事项。 |
not_submitted / draft | 仍需完成。 |
not_open_yet | 作业提交箱尚未开放;会显示开放时间。 |
closed / past_due | 你已无法提交。 |
unknown | 测验:Brightspace 不会向学生显示测验尝试记录,因此 AI 会询问你。 |
工具
提供 17 个用于 D2L Brightspace 的 MCP 工具。所有工具都只读取 Brightspace 中的信息,不会对其进行任何修改:
| 工具 | 功能 |
|---|---|
get_todo | 汇总所有课程的待办事项,并按优先级排序:即将到期、已逾期、尚未开放和已完成的事项 |
get_upcoming_due_dates | 查看即将到来的截止日期,以及每项作业的实际提交状态 |
get_my_courses | 查看你选修的课程及其名称、代码和 ID |
get_my_grades | 查看每门课程的成绩明细,包括分数、百分比和教师评语 |
get_assignments | 查看作业(投递箱)和测验,包括截止日期、状态和评分标准 |
get_assignment_files | 读取作业附带的说明、讲义和评分标准文件 |
get_course_content | 查看课程模块、讲课幻灯片、文件和链接 |
get_syllabus | 查看课程大纲和概述 |
get_announcements | 查看教师发布的近期公告(新闻) |
get_discussions | 查看讨论论坛、主题和帖子 |
get_roster | 查看教师和助教的联系信息,也可选择查看完整班级名单 |
get_classlist_emails | 获取课程中所有人的电子邮件地址 |
download_file | 将课程文件或提交内容保存到你选择的文件夹 |
get_grade_outlook | 查看你目前的课程成绩,以及要达到目标成绩,剩余作业需要取得的分数 |
export_due_dates_calendar | 创建未完成事项截止日期的日历文件(.ics),供 Google Calendar、Apple Calendar 和 Outlook 使用 |
get_calendar_events | 查看课程日历中的考试、测验、实验课、课程和其他活动 |
get_whats_new | 汇总所有课程的最新动态:新公告、新标记的作业、未读讨论和未尝试的测验 |
提示词和示例问题
支持 MCP 提示词的应用会将它们显示为一键快捷方式或斜杠命令。你不必记住提示词名称:在普通聊天中输入示例问题也能使用,因为每个提示词只是告诉 AI 要调用哪些工具。
| 提示词 | 示例问题 | 使用的工具 |
|---|---|---|
what_should_i_do_now | “我现在应该做什么?” | get_todo |
plan_my_week | “我这周应该怎么安排?” | get_todo |
weekly_digest | “能给我一份包含截止日期、活动和成绩的每周摘要吗?” | get_todo、get_calendar_events、get_whats_new、get_my_grades |
grade_target | “期末考试需要考多少分才能拿到 80 分?” | get_my_courses、get_grade_outlook、get_syllabus |
exam_prep | “能帮我准备下周五的网络考试吗?” | get_my_courses、get_syllabus、get_course_content、get_announcements、get_todo |
summarize_assignment | “能总结一下实验 3 的说明和评分标准吗?” | get_assignments、get_assignment_files |
put_deadlines_in_my_calendar | “能把我的截止日期添加到日历里吗?” | export_due_dates_calendar |
catch_me_up | “有什么新消息吗?有作业评分了吗?” | get_whats_new、get_my_grades |
when_are_my_exams | “我的考试都在什么时候?” | get_calendar_events、get_announcements、get_syllabus |
适用于任何 Brightspace 学校
每所学校的登录方式都不同:Microsoft、ADFS、Duo、Shibboleth、Okta、Google、校区选择器或 Brightspace 自带的表单。 无需猜测学校的登录方式,设置时会打开一个普通浏览器窗口,让你像平时一样登录,包括输入短信验证码和使用身份验证器应用。
登录后,它会在后台静静保持登录状态。如果学校要求你重新登录,浏览器窗口便会自动弹出,并在你完成登录后自行关闭。
我的学校能用吗?
如果你的学校使用 D2L Brightspace,就可以。设置时会打开一个普通浏览器窗口,因此支持任何登录方式,包括 Microsoft、Duo、Okta 和 Shibboleth。
| 学校 | 状态 |
|---|---|
| 一所学院 | 作者已测试 |
| 其他任何使用 D2L 的学校 | 应该都能用。请提交一个包含你的学校的 issue,我会把它添加到这里 |
兼容你的 AI 应用或 Agent
设置后自动连接: Claude Desktop · Claude Code · Cursor · VS Code(GitHub Copilot)· Windsurf · OpenAI Codex · Gemini CLI · Cline · Roo Code · OpenCode · Zed · LM Studio · Kiro
只需复制粘贴即可使用: ChatGPT(开发者模式)· Continue · Goose · JetBrains AI Assistant · Warp · Amp · Msty · Jan · AnythingLLM
Agent 框架: OpenAI Agents SDK · Claude Agent SDK · LangChain / LangGraph · Vercel AI SDK · Mastra · CrewAI · Pydantic AI · LlamaIndex
本地应用通过 stdio 运行,ChatGPT 和托管 Agent 通过 streamable HTTP(serve --http)运行。
请参阅 docs/agents.md,了解这些应用各自的复制粘贴式设置方法。
使用你的 AI 安装
将以下内容粘贴到 Claude Code、Cursor、Windsurf、Copilot 或 Codex 中,它会为你完成所有设置。
Install brightspace-d2l-mcp for me by following
https://github.com/AnonymousOnyx22/brightspace-d2l-mcp/blob/main/llms.txt
命令
| 命令 | 功能 |
|---|---|
npx brightspace-d2l-mcp setup | 选择学校、登录并连接你的 AI 应用。在 Windows 上,完成后窗口会自动关闭(使用 --keep-open 可阻止窗口关闭) |
npx brightspace-d2l-mcp login | 重新登录 |
npx brightspace-d2l-mcp status | 显示你的学校、登录状态和已连接的应用 |
npx brightspace-d2l-mcp doctor | 检查 Node、学校、登录状态和已连接的应用,并说明如何修复问题 |
npx brightspace-d2l-mcp logout | 删除已保存的会话 |
npx brightspace-d2l-mcp uninstall | 从所有 AI 应用中移除,并删除所有本地数据 |
npx brightspace-d2l-mcp serve --http | 通过 HTTP 运行,以供 ChatGPT 和基于 HTTP 的 Agent 使用 |
npx brightspace-d2l-mcp config | 输出适用于其他应用的 MCP 配置 JSON |
有新版本时,命令会先询问是否更新。设置 BRIGHTSPACE_NO_UPDATE_CHECK=1 可关闭此功能。
设置选项
npx brightspace-d2l-mcp setup --school yourschool.brightspace.com # skip the school question
npx brightspace-d2l-mcp setup --apps claude-desktop,cursor # only connect these apps
npx brightspace-d2l-mcp setup --skip-login # sign in later, on first use
npx brightspace-d2l-mcp setup --yes # accept every default
应用 ID:claude-desktop、claude-code、cursor、vscode、windsurf、codex、gemini-cli、cline、roo-code、opencode、zed、lm-studio、kiro。
隐私与安全
- 绝不会获取或存储你的密码。 你会在真实浏览器中,输入学校自己的登录页面。
- 只读。 它无法在 Brightspace 中提交、发布或更改任何内容。所有工具只会发送 GET 请求,API 客户端完全没有写入方法;如果将来添加了此类方法,测试会导致构建失败。请参阅如何强制执行只读限制。
- 仅在本地运行。 所有操作都在你的电脑上运行,并且只与学校的 Brightspace 通信。中间没有服务器,也不会收集分析数据。
- 使用官方 Brightspace API,权限与您在浏览器中的权限相同。
- 你的会话保存在
~/.brightspace-d2l-mcp/中,只有你的用户帐户可以读取。logout会删除该会话;uninstall会删除所有内容。
故障排除
遇到问题了?docs/troubleshooting.md 会介绍如何解决应用中没有显示 Brightspace 工具、设置窗口始终不打开,以及单点登录一直失败的问题,并列出每种情况打印的具体消息。首先运行 npx brightspace-d2l-mcp doctor。
“未找到受支持的浏览器”
安装 Google Chrome,或使用 Microsoft Edge(Windows 已预装)。
也可以通过 npx playwright install chromium 安装一份独立的 Chromium。
无法接受我的学校地址
先在浏览器中登录 Brightspace,然后从地址栏复制地址(任何页面都可以)。 如果页面显示你们学校“运行 Blackboard”或“运行 Canvas”,说明学校没有使用 Brightspace。
Claude Desktop 中没有显示 Brightspace
完全退出 Claude Desktop(点击系统托盘图标 → 退出,不要只关闭窗口),然后再次运行 setup。
Claude Desktop 在运行期间会重写设置,因此 setup 会提示你重新启动它。
它一直要求我登录
有些学校每隔几小时就会结束会话。发生这种情况时,浏览器窗口会打开,让你重新登录。
运行 npx brightspace-d2l-mcp doctor 查找问题,运行 status 快速查看状态,或运行 login 立即登录。
如果你不希望它自动打开窗口,可将 "autoLogin": false 添加到 ~/.brightspace-d2l-mcp/config.json。
我想过滤掉旧课程
将课程 ID 添加到 ~/.brightspace-d2l-mcp/config.json:
{ "excludeCourses": [123456, 789012] }
也可以使用 "includeCourses" 仅保留指定课程。向 AI 提问“列出我的课程及其 ID”即可查找课程。
如何将 D2L Brightspace 连接到 Claude?
运行 npx brightspace-d2l-mcp setup。它会自动连接 Claude Desktop 和 Claude Code。然后就可以向 Claude 询问课程相关问题。
有没有适用于 D2L Brightspace 的 AI 助手?
有。它可以将 Brightspace 连接到你已经在使用的 AI 应用(Claude、ChatGPT、Cursor、GitHub Copilot、Gemini 等),这样你就可以用日常英语询问截止日期、成绩和课程文件,而不必逐个点击查看课程。
如何在 Brightspace 中使用 ChatGPT?
运行 npx brightspace-d2l-mcp serve --http,通过隧道公开它,然后在 ChatGPT 开发者模式中将 URL 添加为连接器。docs/agents.md 逐步介绍了每个步骤。
如何将 Brightspace 连接到 Cursor、VS Code Copilot 或 Windsurf?
运行 npx brightspace-d2l-mcp setup。它会找到 Cursor、VS Code、Windsurf 和另外 10 个应用,并为你完成连接。
可以将它与 ChatGPT、自定义 Agent 或 Claude Agent SDK 一起使用吗?
可以。本地 Agent 和 SDK 使用 npx -y brightspace-d2l-mcp@latest 启动它;ChatGPT 或基于 HTTP 的 Agent 则使用 npx brightspace-d2l-mcp serve --http。docs/agents.md 提供了适用于 ChatGPT、OpenAI Agents SDK、Claude Agent SDK、LangChain、Vercel AI SDK 等的复制粘贴式配置说明。
需要 API 密钥或学校管理员权限吗?
不需要。Brightspace API 密钥通常需要管理员提供。此工具改用你自己的学生账号登录,因此它看到的内容与你在 Brightspace 中看到的完全一致,也不需要学校里的任何人进行设置。
如何从 brightspace-mcp-server 切换到这个工具?
在 MCP 配置中更改包名:在同一个 brightspace 条目中,将 brightspace-mcp-server 替换为 brightspace-d2l-mcp,然后重启应用。或者运行 npx brightspace-d2l-mcp setup,让它为你写入该条目。从 brightspace-mcp-server 切换介绍了哪些内容会保留,哪些不会。
它支持 Duo、Microsoft Authenticator 或短信验证码吗?
支持。你会在真实的浏览器窗口中自行登录,因此学校使用的任何登录方式都适用。
它能告诉我期末考试需要考多少分才能达到目标成绩吗?
可以。询问“我需要在期末考试中考多少分,才能让微积分成绩达到 80 分?”get_grade_outlook 就会根据 Brightspace 报告的权重,提供你当前的百分比、期末总评的最高和最低可能分数,以及剩余所有作业所需的平均分。
我可以将 Brightspace 的截止日期添加到 Google Calendar、Apple Calendar 或 Outlook 吗?
可以。让 AI 将截止日期添加到你的日历中。export_due_dates_calendar 会生成一个 .ics 文件,其中包含指向 Brightspace 的链接,并为每个日历事件设置提前一天的提醒;文件只包含你尚未提交的作业。
它适用于哪些学校?
任何使用 D2L Brightspace 的学校都适用,无论地址是 yourschool.brightspace.com、yourschool.desire2learn.com,还是 learn.yourschool.edu 这样的自定义域名。
它能替我提交作业或发帖吗?
不能。它是专为只读而设计的。
这是 D2L 开发的吗?
不是。这是一个独立的开源项目,通过你的账号使用官方 Brightspace API。它与 D2L 无关,也未获得 D2L 背书。
开发
git clone https://github.com/AnonymousOnyx22/brightspace-d2l-mcp.git
cd brightspace-d2l-mcp
npm install
npm run build
npm test
node build/index.js setup # connects your AI apps to this local build
工具位于 src/tools/,登录功能位于 src/auth/,配置功能位于 src/cli/。
欢迎提交问题和拉取请求。
更多免费的学生 MCP 服务
全部免费、开源;涉及你的账户时均为只读。访问 brightspacemcp.com/more-mcps 查看完整列表。
| 服务 | 功能 |
|---|---|
| Canvas MCP | 面向 AI 的 Canvas LMS,只读。查看截止日期、缺交作业、成绩和公告。 |
| Moodle MCP | 面向 AI 的 Moodle,只读。查看截止日期、逾期作业、成绩和公告。 |
| Google Classroom MCP | 面向 AI 的 Google Classroom,只读。查看待办事项、截止日期、缺交作业和成绩。 |
| GPA Calculator MCP | 面向 AI 的 GPA、成绩换算,以及期末考试所需分数计算。可离线使用,无需账户。 |
| Citations MCP | 根据 DOI、ISBN 或手动输入的详细信息生成 APA、MLA 和 Chicago 引用。无需账户。 |
| Study Planner MCP | 制定考试学习计划、间隔重复日期、番茄钟计划和作业里程碑。可离线使用。 |
| Paper Finder MCP | 通过 OpenAlex 搜索学术论文、查找开放获取版本和相关研究。无需密钥。 |
许可证
MIT © AnonymousOnyx22
D2L 和 Brightspace 是 D2L Corporation 的商标。本项目与 D2L 无关。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。