Mindket

canvas-mcp

新上架第 1 版 · 更新于
星标119

概览

让 Claude、ChatGPT 或其他 MCP 客户端以只读方式回答你的 Canvas LMS 课程问题,例如截止日期、成绩和公告。为使用 Canvas 的学生而做。

canvas-mcp 是一款 GitHub 上的开源项目,属于教育类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。按它的 README 从 GitHub 安装。Mindket 的设置说明可在你的 Mindket 账户获取,以 zip 压缩包下载。

速览

你需要
  • 一个允许个人访问令牌的 Canvas 账号
  • Node.js 20 或更高版本
  • 一个能接收 HTTPS 流量的主机,例如 Railway
  • Claude、ChatGPT 或其他支持自定义连接器的 MCP 客户端
用在
  • Claude 的网页版、桌面版和移动版,作为自定义连接器
  • ChatGPT,需要先为连接器打开开发者模式
  • Claude Code
  • 其他支持 Streamable HTTP 的 MCP 客户端
先运行
node -e "console.log(require('crypto').randomBytes(24).toString('hex'))"

平台

ClaudeAI 对话
ChatGPTAI 对话
Claude Code编程智能体

关于

它是什么

canvas-mcp 是面向 Canvas LMS 的只读 MCP 服务器。你部署一次,把它作为自定义连接器加入 Claude 或 ChatGPT,就能用日常语言询问课程情况。它的 26 个工具都只发送 GET 请求,所以服务器无法提交、发布或删除任何内容。

适合谁

它适合使用 Canvas 的学生,想让 AI 助手回答截止日期、成绩、反馈和课程资料方面的问题。

行业谁在用怎么用例子
高等教育同时修几门课的学生问助手有哪些作业到期,哪些还没提交问本周哪些作业到期,哪些你已经交了
高等教育临近期末的学生问成绩如何加权,期末考试需要多少分问某门课的期末考试要考多少分才能保住目标成绩
在线课程落下一周的学习者请助手总结最近的公告请用几句话总结过去两周的公告
实验和项目课程在实验小组里的学生询问小组成员和助教的反馈问助教有没有在你上一次实验里留下评论

学校限制个人访问令牌的人,或者不使用 Canvas 的人,可以跳过它。

用在哪里

你只需把一个连接器网址加入支持远程 MCP 服务器的客户端。

  • Claude 的网页版、桌面版和移动版,作为自定义连接器
  • ChatGPT,需要先为连接器打开开发者模式
  • Claude Code
  • 其他支持 Streamable HTTP 的 MCP 客户端
  • 托管位置:Railway、Render、Fly.io、VPS 或你自己的机器,只要是 Node.js 20 或更高版本能接收 HTTPS 流量的地方
使用场景谁得到什么
查看截止日期同时修几门课的学生未来几天内所有到期的事项,以及提交状态
查看成绩临近期末的学生当前和最终分数、作业分组、权重和丢弃规则
补上沟通内容落下一周的学生最近的公告、讨论帖和收件箱消息
查看反馈在等成绩的学生作业说明、评分标准、你的分数和评语

如何设置

开始之前你需要几样东西。

  • 一个允许个人访问令牌的 Canvas 账号
  • Node.js 20 或更高版本
  • 一个能接收 HTTPS 流量的主机,例如 Railway
  • Claude、ChatGPT 或其他支持自定义连接器的 MCP 客户端
  1. 在 Canvas 里打开 Account,再打开 Settings。在 Approved Integrations 下添加一个新的访问令牌,写上用途和到期日期,然后复制它。Canvas 只显示一次。
  2. 用下面的第一条命令生成一个随机的连接器密钥。
  3. 部署服务器。Railway 是最快的方式,它的命令在下面第二个代码块里。
  4. 在 Railway 控制台里,设置三个变量,名为 MCP_SECRET、CANVAS_API_TOKEN 和 CANVAS_BASE_URL,然后在网络设置里点击 Generate Domain。
  5. 你的连接器网址是你的域名,接一个斜杠,再接 MCP_SECRET,最后是 /mcp。
node -e "console.log(require('crypto').randomBytes(24).toString('hex'))"
npm i -g @railway/cli
railway login
railway init
railway up

CANVAS_BASE_URL 是你的 Canvas 实例的地址。CANVAS_API_TOKEN 是第 1 步里的令牌。MCP_SECRET 必须至少有 24 个适合放进网址的字符,因为它会成为连接器网址的一部分。

如何使用

先连接你的客户端。在 Claude 里打开 Settings,再打开 Connectors,选择 Add custom connector,粘贴连接器网址,并把 OAuth 字段留空。在 ChatGPT 里,先为连接器打开开发者模式,创建一个连接器,粘贴网址,然后选择 No authentication。接着问一个简单的问题,例如请它列出你的 Canvas 课程,确认连接正常。

工具作用
list_courses列出当前课程,包括 ID、代码和学期
get_syllabus返回教学大纲文本
get_upcoming返回未来若干天内所有到期的事项,以及提交状态
get_missing返回已过期但你还没提交的作业
get_assignment返回作业的说明、评分标准、你的分数和反馈
get_grades返回每门课的当前分数和最终分数
get_grade_breakdown显示每个作业分组的权重、丢弃规则和你的所有分数
get_announcements返回各门课的最近公告
list_discussions列出讨论主题,get_discussion 返回完整的回复串
list_inbox列出收件箱对话,get_inbox_message 返回其中的消息

示例

你问:“这周的作业里,我还有哪些没交?”助手会调用 get_upcoming 或 get_missing,并列出每一项、它的截止日期,以及你是否已经提交。

新手与专家

canvas-mcp 让 AI 助手像你一样查看你的 Canvas 课程,但不会改动任何内容。连接好之后,可以先试着让助手列出你的 Canvas 课程。

在底层,客户端调用一个含有长随机密钥的网址。服务器以恒定时间检查这个密钥。每次工具调用都会变成带着你的个人令牌的 Canvas REST API GET 请求。服务器会翻完较长的结果页,再返回精简后的 JSON。令牌留在服务器上。服务器是无状态的,每个请求都得到一个新的实例,也不缓存任何内容。代价是,拿到连接器网址的人能读到你能读到的内容。

  1. 客户端调用你的连接器网址
  2. 服务器检查密钥
  3. 它带着你的令牌发送 Canvas GET 请求
  4. 它返回精简后的 JSON 结果

注意事项

  • 每个工具都是只读的,所以通过它读取收件箱或讨论不会把任何内容标为已读
  • 有些学校限制个人访问令牌,所以请先查看学校的可接受使用政策
  • 不存储任何内容,也没有数据库
  • 它有三个运行时依赖,没有构建步骤
  • 它托管在远程,所以网页和移动聊天应用也能访问它
  • 它采用 MIT 许可证

README 和文件

README

canvas-mcp

让 Claude、ChatGPT 或其他 MCP 客户端以只读方式回答你的 Canvas LMS 课程问题,例如截止日期、成绩和公告。为使用 Canvas 的学生而做。

由 boyuchengz 在 GitHub 上制作。这些说明是 Mindket 根据其 README 写的,项目自己的文件和许可证在它的仓库里。

简介

它是什么:canvas-mcp 是面向 Canvas LMS 的只读 MCP 服务器。你部署一次,把它作为自定义连接器加入 Claude 或 ChatGPT,就能用日常语言询问课程情况。它的 26 个工具都只发送 GET 请求,所以服务器无法提交、发布或删除任何内容。

适合谁:它适合使用 Canvas 的学生,想让 AI 助手回答截止日期、成绩、反馈和课程资料方面的问题。

行业 | 谁在用 | 怎么用 | 例子
高等教育 | 同时修几门课的学生 | 问助手有哪些作业到期,哪些还没提交 | 问本周哪些作业到期,哪些你已经交了
高等教育 | 临近期末的学生 | 问成绩如何加权,期末考试需要多少分 | 问某门课的期末考试要考多少分才能保住目标成绩
在线课程 | 落下一周的学习者 | 请助手总结最近的公告 | 请用几句话总结过去两周的公告
实验和项目课程 | 在实验小组里的学生 | 询问小组成员和助教的反馈 | 问助教有没有在你上一次实验里留下评论

学校限制个人访问令牌的人,或者不使用 Canvas 的人,可以跳过它。

用在哪里:你只需把一个连接器网址加入支持远程 MCP 服务器的客户端。

  • Claude 的网页版、桌面版和移动版,作为自定义连接器
  • ChatGPT,需要先为连接器打开开发者模式
  • Claude Code
  • 其他支持 Streamable HTTP 的 MCP 客户端
  • 托管位置:Railway、Render、Fly.io、VPS 或你自己的机器,只要是 Node.js 20 或更高版本能接收 HTTPS 流量的地方
使用场景 | 谁 | 得到什么
查看截止日期 | 同时修几门课的学生 | 未来几天内所有到期的事项,以及提交状态
查看成绩 | 临近期末的学生 | 当前和最终分数、作业分组、权重和丢弃规则
补上沟通内容 | 落下一周的学生 | 最近的公告、讨论帖和收件箱消息
查看反馈 | 在等成绩的学生 | 作业说明、评分标准、你的分数和评语

如何设置:开始之前你需要几样东西。

  • 一个允许个人访问令牌的 Canvas 账号
  • Node.js 20 或更高版本
  • 一个能接收 HTTPS 流量的主机,例如 Railway
  • Claude、ChatGPT 或其他支持自定义连接器的 MCP 客户端
  1. 在 Canvas 里打开 Account,再打开 Settings。在 Approved Integrations 下添加一个新的访问令牌,写上用途和到期日期,然后复制它。Canvas 只显示一次。
  2. 用下面的第一条命令生成一个随机的连接器密钥。
  3. 部署服务器。Railway 是最快的方式,它的命令在下面第二个代码块里。
  4. 在 Railway 控制台里,设置三个变量,名为 MCP_SECRET、CANVAS_API_TOKEN 和 CANVAS_BASE_URL,然后在网络设置里点击 Generate Domain。
  5. 你的连接器网址是你的域名,接一个斜杠,再接 MCP_SECRET,最后是 /mcp。
node -e "console.log(require('crypto').randomBytes(24).toString('hex'))"
npm i -g @railway/cli
railway login
railway init
railway up

CANVAS_BASE_URL 是你的 Canvas 实例的地址。CANVAS_API_TOKEN 是第 1 步里的令牌。MCP_SECRET 必须至少有 24 个适合放进网址的字符,因为它会成为连接器网址的一部分。

如何使用:先连接你的客户端。在 Claude 里打开 Settings,再打开 Connectors,选择 Add custom connector,粘贴连接器网址,并把 OAuth 字段留空。在 ChatGPT 里,先为连接器打开开发者模式,创建一个连接器,粘贴网址,然后选择 No authentication。接着问一个简单的问题,例如请它列出你的 Canvas 课程,确认连接正常。

工具 | 作用
list_courses | 列出当前课程,包括 ID、代码和学期
get_syllabus | 返回教学大纲文本
get_upcoming | 返回未来若干天内所有到期的事项,以及提交状态
get_missing | 返回已过期但你还没提交的作业
get_assignment | 返回作业的说明、评分标准、你的分数和反馈
get_grades | 返回每门课的当前分数和最终分数
get_grade_breakdown | 显示每个作业分组的权重、丢弃规则和你的所有分数
get_announcements | 返回各门课的最近公告
list_discussions | 列出讨论主题,get_discussion 返回完整的回复串
list_inbox | 列出收件箱对话,get_inbox_message 返回其中的消息

示例:你问:“这周的作业里,我还有哪些没交?”助手会调用 get_upcoming 或 get_missing,并列出每一项、它的截止日期,以及你是否已经提交。

新手与专家:canvas-mcp 让 AI 助手像你一样查看你的 Canvas 课程,但不会改动任何内容。连接好之后,可以先试着让助手列出你的 Canvas 课程。

在底层,客户端调用一个含有长随机密钥的网址。服务器以恒定时间检查这个密钥。每次工具调用都会变成带着你的个人令牌的 Canvas REST API GET 请求。服务器会翻完较长的结果页,再返回精简后的 JSON。令牌留在服务器上。服务器是无状态的,每个请求都得到一个新的实例,也不缓存任何内容。代价是,拿到连接器网址的人能读到你能读到的内容。

客户端调用你的连接器网址
服务器检查密钥
它带着你的令牌发送 Canvas GET 请求
它返回精简后的 JSON 结果

注意事项:

  • 每个工具都是只读的,所以通过它读取收件箱或讨论不会把任何内容标为已读
  • 有些学校限制个人访问令牌,所以请先查看学校的可接受使用政策
  • 不存储任何内容,也没有数据库
  • 它有三个运行时依赖,没有构建步骤
  • 它托管在远程,所以网页和移动聊天应用也能访问它
  • 它采用 MIT 许可证

GitHub 上的数据(2026年11月7日)

  • 星标:119
  • 复刻:31
  • 关注:3
  • 未关闭的议题和拉取请求:0
  • 语言:JavaScript
  • 许可证:MIT
  • 话题:canvas, canvas-lms, chatgpt, claude, education, instructure, mcp, mcp-server, model-context-protocol, nodejs, students

链接

  • 代码:https://github.com/boyuchengz/canvas-mcp
  • 发布版本:https://github.com/boyuchengz/canvas-mcp/releases
  • 议题:https://github.com/boyuchengz/canvas-mcp/issues
  • 星标历史:https://www.star-history.com/#boyuchengz/canvas-mcp&Date

获取代码

git clone https://github.com/boyuchengz/canvas-mcp.git

然后按它的 README 完成设置。这个工具包里没有会自己运行的东西。

文件
README.md  7 KB

1 个文件,共 7 KB,以 zip 压缩包下载。

更新内容

  • 第 1 版 · 2026-11-06

评价

还没有评分

写评价

还没有评价。

Mindket 的更多商品

查看 Mindket 的全部商品

Bonsai-27B-GGUF

lmstudio-community · 工具包

面向 LM Studio 的 27B Bonsai 模型 GGUF 转换版,含 3.80 GB 的 Q1_0 语言文件和 0.93 GB 的 BF16 视觉投影器。已测试文本、视觉和并行工具调用。

新上架

以每权重 2.9 位的 EXL3 量化运行 DeepSeek-V4.1-Flash-1017,这是一份 196 GiB 的副本,适合在自己硬件上部署大模型的人。困惑度与原模型相差不大。

新上架

MusicGen Small

facebook · 工具包

根据文字描述或音频提示生成短音乐片段,是 facebook MusicGen 的 small 检查点。适合想在自己电脑上试用文字生成音乐的开发者和音乐爱好者。

新上架

Axiocairn MCP

cplj · 工具包

在 AI 对话里检查你持仓的组合风险:集中度、波动率和相对 SPY 的 beta,还有在明确假设下的情景。这是一个托管的 MCP 服务器,用于研究,不构成投资建议。

新上架86

ha-mcp

homeassistant-ai · 工具包

让 Claude、ChatGPT 等 AI 助手配置并自动化 Home Assistant,通过 HACS 或应用市场作为集成安装。适合自己运行 Home Assistant 的人。

新上架7397