Canvas MCP 是一个基于模型上下文协议(MCP)的服务器,用于连接 AI 助手与 Canvas Learning Management System(LMS)。它为不同角色提供专门的工作流,目标用户包括学生、教师、教学设计师和开发者。该服务器面向 MCP 兼容客户端设计,可在 Claude Desktop、Cursor、Codex、Windsurf 等 40 多个智能体中使用,具体安装方式和支持能力因客户端而异。
主要能力 Canvas MCP 提供最多 126 个工具,默认配置文件注册的工具数量较少,通过可选的功能门控工具可提升至 126 个。工具按用户类型组织:
学生可使用的工具包括跟踪即将到来的作业和截止日期、跨课程监控成绩、管理同行评审任务、访问课程内容和讨论、组织待办列表。v1.14.0 版本为学生新增只读工具,覆盖小组、成绩、测验、日历以及跨课程的“新动态”信息流,并提供可选的收件箱消息功能。学生写入操作仅在 STUDENT_WRITE_TOOLS 中列出时才会注册,并受 ALLOWED_WRITE_TOOLS 约束。
教师可使用的工具包括作业和评分管理、学生分析和表现跟踪、讨论和同行评审协调、批量消息和通信工具,以及面向 FERPA 考量的隐私控制。
教学设计师可使用课程搭建、质量审计和可访问性审查功能:
- 课程搭建:从规格、模板或克隆现有课程构建完整课程结构。
- 质量审计:学期前对结构、内容、发布和完整性进行质检。
- 可访问性审查:20 项面向 WCAG 的扫描器(标题、表格、范围、对比度、替代文本、链接、字幕、DesignPLUS 迁移),提供优先级报告、引导式修复和验证。
- 课程结构分析:单次调用即可获取完整的模块→条目树,便于快速审查。 相关技能包括 canvas-course-qc(学期前审计)、canvas-accessibility-auditor(面向 WCAG 的审查)和 canvas-course-builder(从规格或模板搭建课程),另有 get_course_structure 工具。
使用方式
- 安装 MCP 服务器(技能等其余部分都依赖它运行):
- Claude Desktop:从最新 release 下载 canvas-mcp.mcpb 并双击。会提示输入 Canvas URL 和 token,无需终端。
- Cursor、Zed、Windsurf、Continue、Claude Code 等客户端:将 pip 安装到虚拟环境,把 token 添加到 .env,并将客户端指向 canvas-mcp-server 二进制文件。本地安装说明提供各客户端的配置块。
- 验证:运行 canvas-mcp-server --test 应报告 Canvas 连接成功,然后重启客户端。
- 可选:添加工作流技能。这些技能教会智能体在工具之上使用多步骤流程(每周计划、晨间检查、批量评分、同行评审、课程质检)。技能列表见 Agent Skills。如果使用 Claude Code,同样的流程也以斜杠命令形式提供。
技能可通过 skills.sh 安装,使用交互式选择器将技能安装到所选智能体(Claude Code、Cursor、Codex、OpenCode、Cline、Zed 等)。技能调用 MCP 工具,因此需要先安装服务器。Claude Code 的技能位于 .claude/skills/,可自定义。
决策树:简单查询使用 MCP 工具;批量评分(10+)使用 bulk_grade_submissions;复杂批量(30+)使用 execute_typescript。
快速参考
- 课程标识符:Canvas ID(12345)、课程代码(badm_350_120251_246794)或 SIS ID。
- 不能做:创建/删除课程、修改课程设置、访问其他用户的数据。
- 速率限制:约 700 请求/10 分钟。批量操作使用 max_concurrent=5。
- 完整文档:AGENTS.md、tools/TOOL_MANIFEST.json、tools/README.md。
适用场景 学生可用于 AI 辅助的作业跟踪、成绩监控、同行评审管理、课程内容和讨论访问、待办组织。教师可用于作业和评分管理、学生分析、讨论和同行评审协调、批量通信,以及支持 FERPA 考量的隐私控制。教学设计师可用于 AI 驱动的课程设计和质量保证,包括课程搭建、质量审计和可访问性审查。
限制与注意事项
- 无法创建或删除课程、修改课程设置或访问其他用户的数据。
- 存在速率限制(约 700 请求/10 分钟),批量操作需控制并发。
- 工具和技能数量取决于客户端、默认配置和功能门控,具体支持能力因客户端而异。
- 版本说明:v1.14.0 为 2026 年 10 月发布的版本,重点为面向学生的工具和正确性改进;v1.13.0 为安全版本,除非设置 ALLOWED_WRITE_TOOLS,HTTP 服务器为只读;v1.12.0 为安全版本,所有删除工具需要确认令牌;v1.9.0 加强了对提示注入的防护,Canvas 生成的文本会作为数据而非指令传入;v1.8.0 修复了安全扫描发现的问题。
- 隐私方面:教师可使用响应匿名化(将身份字段转换为一致匿名 ID,如 Student_xxxxxxxx)、邮件掩码和 PII 模式过滤、本地服务器部署及可配置隐私控制(ENABLE_DATA_ANONYMIZATION=true)。当启用匿名化时,支持的身份字段在工具结果到达 AI 客户端之前会被匿名化。合规性仍取决于部署、配置、机构政策和 AI 提供商。学生工具使用 Canvas 的“self”端点,共享课程内容工具遵循 Canvas 授予账户的权限;本地模式从用户自己的 .env 读取 Canvas token。