mcpField
C
Canvas LMS MCP for students

Canvas LMS MCP for students

本地服务
brightspacemcp.com科研与教育02 天前更新

关于 Canvas LMS MCP for students

面向 Canvas 学生的开源 MCP 服务,可供 AI 应用查询课程、作业、成绩和公告。它只读取 Canvas,并可按需在本机生成 due-date 的 .ics 日历文件。

主要功能

  1. 01查询课程、作业和截止日期
  2. 02查看缺交作业与课程成绩
  3. 03读取课程内容、教学大纲和公告
  4. 04汇总近期动态与讨论
  5. 05导出截止日期为 .ics 文件

适用场景

  1. 01检查本周待交和逾期作业
  2. 02查看各课程成绩及作业得分
  3. 03汇总近期教师公告和课程更新
  4. 04将 Canvas 截止日期导入日历

MCP 相关

作为 MCP 服务向 AI 客户端提供 13 个 Canvas 只读工具;唯一写入操作是在指定本机文件夹生成 .ics 日历文件。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"anonymousonyx22-canvas-lms-student": {
"command": "npx",
"args": [
"-y",
"canvas-lms-student-mcp"
],
"env": {
"CANVAS_BASE_URL": "<CANVAS_BASE_URL>",
"CANVAS_API_TOKEN": "<CANVAS_API_TOKEN>"
}
}
}
}
启动命令npx -y canvas-lms-student-mcp
需要配置的环境变量
CANVAS_BASE_URLYour school's Canvas address, for example https://myschool.instructure.com
CANVAS_API_TOKEN密钥A Canvas access token, created in Canvas under Account > Settings > New Access Token

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcanvas-lms-student-mcp0.1.7

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

面向学生的 Canvas LMS MCP

tests

询问 AI,Canvas 里究竟还有哪些任务待完成。

Canvas LMS MCP 是一款免费的开源 MCP 服务,可供 Claude、ChatGPT、Cursor 和其他 AI 应用使用。它会读取你的 Canvas 课程、截止日期、成绩和公告,并且在 Canvas 中只能读取:绝不会在其中提交、编辑或删除任何内容。它唯一会写入的内容,是你自己的电脑上的 .ics 日历文件,而且只有在你提出要求时才会写入。

使用 npx 安装并运行,无需安装步骤:

npx -y canvas-lms-student-mcp

它会读取两个环境变量:CANVAS_BASE_URL,即你学校的 Canvas 地址;以及 CANVAS_API_TOKEN,即你在 Canvas 中创建的令牌。

适用于任何使用 Canvas 的学校。与 Instructure 无关。永久免费,无需注册,也无需订阅。你的登录信息只会发送到你自己的学校。

快速开始

  1. 在 Canvas 中,前往 账户 > 设置,向下滚动到 已批准的集成,然后点击 新建访问令牌。复制令牌。
  2. 将以下内容添加到 AI 应用的 MCP 配置中(对于 Claude Desktop,该文件为 claude_desktop_config.json):
{
  "mcpServers": {
    "canvas": {
      "command": "npx",
      "args": ["-y", "canvas-lms-student-mcp"],
      "env": {
        "CANVAS_BASE_URL": "https://yourschool.instructure.com",
        "CANVAS_API_TOKEN": "paste-your-token-here"
      }
    }
  }
}
  1. 重启 AI 应用,然后询问类似“这周有哪些任务到期?”的问题。

如需先检查设置,请在设置好两个环境变量后运行 npx canvas-lms-student-mcp doctor。

有些学校会关闭学生访问令牌。如果你看不到“新建访问令牌”按钮,说明你的学校已将其禁用,此 MCP 服务无法连接到你的账户。

你可以询问的问题

  • “这周有哪些任务到期?”
  • “我有未完成或逾期的任务吗?”
  • “我每门课的成绩是多少?由哪些作业构成?”
  • “老师最近发布了哪些公告?”
  • “从上周以来,Canvas 中有什么新内容?”
  • “显示 Networking 第 3 周模块中的内容。”
  • “我的 Networking 1 课程中还有哪些作业尚未到期?”
  • “将我的 Canvas 截止日期添加到 Google Calendar。”

工具

全部 13 个工具都从 Canvas LMS 读取信息,没有任何工具能在其中提交、编辑或删除内容。每个工具的说明都包含一个 AI 可以直接使用的示例提示词,“可以这样询问”一栏也列出了这些提示词。最后一个工具 export_due_dates_calendar 会将 .ics 文件写入你指定的文件夹。

如果某个工具针对单门课程,你可以直接提供课程名称,无需查找课程编号。提供 Canvas 课程 ID 或课程名称即可,例如“Networking 1”;工具会在 get_my_courses 显示的列表中匹配名称。如果名称与任何课程都不匹配,工具会说明这一点,并提示你返回 get_my_courses 查看课程列表。

工具功能可以这样询问
get_my_courses你的当前课程及其 ID“这学期我在 Canvas 上有哪些课程?”
get_todo你的 Canvas 待办事项列表“Canvas 上还有哪些事情需要我完成?”
get_upcoming_due_dates即将截止的作业和活动,按时间从近到远排列“Canvas 上这周有哪些截止事项?”
get_missing_assignments你尚未提交且已过截止时间的作业“我在 Canvas 上有哪些作业没交?”
get_assignments按 ID 或名称查询某门课程的作业,包括截止日期和提交状态“Networking 1 这门 Canvas 课程中,哪些作业已经逾期?”
get_my_grades每门课程的当前成绩,以及组成该成绩的作业分数和提交状态“我在每门 Canvas 课程中的成绩是多少?哪些作业计入了成绩?”
get_course_content按 ID 或名称查询某门课程的模块和项目“显示我的 Canvas Networking 课程中的 Week 3 模块。”
get_syllabus按 ID 或名称查询某门课程的教学大纲文本“Canvas 上的 Scripting 教学大纲是怎么说明评分的?”
get_announcements你指定课程或所有课程的近期公告“我的教师最近在 Canvas 上发布了什么公告?”
get_whats_new一次性查看近期公告、新近评分的作业和未读讨论回复“自上周以来,Canvas 上有什么新内容?”
get_discussions按 ID 或名称查询某门课程的讨论主题“我的 Canvas Networking 课程中有哪些讨论正在进行?”
get_calendar_events两个日期之间的日历活动“2026-10-01 到 2026-10-31 之间,我的 Canvas 日历上有哪些事项?”
export_due_dates_calendar包含你所有截止日期的 .ics 文件,可导入 Google Calendar 或 Apple Calendar“把我的 Canvas 截止日期添加到 Google Calendar。”

日历导出

export_due_dates_calendar 会将你的 Canvas 截止日期和 Canvas 日历活动转换为 iCalendar 文件。指定一个文件夹,文件就会保存到那里,例如“将我的 Canvas 截止日期保存到 Documents 文件夹,格式为 .ics 文件”。你可以打开该文件,或将其导入 Google Calendar、Apple Calendar 或 Outlook。

该文件包含接下来 30 天内的事项,且只包含你仍需完成的工作。使用 days_ahead 可设置更长的时间范围,使用 course_id 可按 ID 或名称指定一门课程,使用 include_submitted 可添加你已提交的工作。每项活动都包含课程名称、分数、提交状态、返回 Canvas 的链接,以及提前一天的提醒。如果不指定文件夹,工具会直接返回日历文本,你可以用任意名称保存。

隐私与安全

  • 你的令牌会保留在自己的电脑上,只会发送到你所在学校的 Canvas 地址。
  • 本项目不会向任何其他服务发送数据。
  • 12 个工具标记为只读。日历导出会在你指定的文件夹中写入一个 .ics 文件,仅此而已。
  • 你可以随时在 Canvas 设置中撤销令牌。

故障排查

Canvas 和连接返回的错误会说明出了什么问题,以及该如何修复。最常见的错误如下:

消息修复方法
未登录令牌缺失、已过期或已撤销。在 Canvas 中创建新令牌(Account > Settings > New Access Token),然后运行 npx canvas-lms-student-mcp doctor。
拒绝访问学校关闭了学生使用该功能的权限,或者令牌属于其他 Canvas 账户。
未找到使用 get_my_courses 检查课程名称或 ID。如果所有请求都显示未找到,则 CANVAS_BASE_URL 有误。
请求过多等待消息中指定的秒数,然后重试。
无法连接CANVAS_BASE_URL 中的主机不存在。检查拼写,例如 https://myschool.instructure.com。
未返回 Canvas API JSONCANVAS_BASE_URL 中的地址不是 Canvas 站点。请使用学校的 Canvas 地址,不要添加额外路径。

开发

npm install
npm run build
npm test

测试使用模拟的 Canvas 服务,因此无需账户或网络连接。测试套件涵盖 doctor 命令、令牌错误、拒绝访问、请求过多和回复内容不是 Canvas 格式时的错误消息、.ics 日历导出,以及按名称查找课程。元数据测试会确保 package.json、server.json、glama.json、llms.txt 和服务端代码中的版本号一致,检查文档中的工具列表是否仍与服务端注册的工具一致,根据代码统计只读工具的数量,让文档中的数量与工具保持一致,并检查注册表条目列出的环境变量是否与代码读取的变量相同。推送到 main 和创建拉取请求时都会运行相同的构建和测试,因此本页顶部的徽章会显示当前结果。

npm 包包含两个注册表文件:server.json 用于 Model Context Protocol 注册表,glama.json 用于 Glama 目录。两个文件都包含名称、描述、版本、许可证、关键词、代码仓库和主页,以便目录条目展示服务的用途和代码所在位置。server.json 条目还指定 npx 为运行时,并列出目录站点应询问的两个环境变量,其中 CANVAS_API_TOKEN 标记为机密值。条目还包含 GitHub 仓库 ID,即使仓库重命名,该 ID 也会保持不变。

为什么选择 Canvas MCP

如果学校使用 Canvas,请使用此服务。如果学校使用 Brightspace,请使用 brightspace-mcp-server。两者分别为各自的 LMS 提供相同范围的功能。

Canvas MCPbrightspace-mcp-server
LMSCanvas(Instructure)Brightspace(D2L)
免费是是
不会更改 LMS 中的任何内容是是
一行 npx 命令是是

Canvas MCP 使用你在 Canvas 中创建的 API 令牌登录。brightspace-mcp-server 则通过一次性设置命令,使用学校账号登录。

更多免费的学生 MCP 服务

全部免费、开源;访问你的账户时均为只读。浏览完整列表:brightspacemcp.com/more-mcps。

服务功能
Brightspace MCP面向 AI 的 D2L Brightspace。提供截止日期及真实提交状态、成绩、目标成绩计算器和课程文件。
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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。