← 返回目录
C

Canvas MCP Server

社区
面向 Canvas LMS 的全面 MCP 服务器,支持学生、教师及账户管理功能。
GitHub 源仓库 ↗
★ 103 Stars 分类 · 其他 热门 源版本 c0646ba10ac2
40FMRS · D
可靠性
6/20
安全与权限
6/20
维护活跃度
10/20
文档质量
8/20
安装易用性
10/20

Canvas MCP Server 提供丰富的 Canvas LMS 集成,支持多种部署方式和传输模式。它涵盖了从学生到管理员的广泛功能,并活跃维护。但它是独立项目,不获官方支持,用户需谨慎管理令牌和注意安全风险。

查看 FMRS 评分方法 →

Canvas MCP Server 是一个基于模型上下文协议(MCP)的服务器,用于与 Canvas LMS API 交互,提供 50 多个工具,覆盖课程管理、作业、注册、成绩与账户级管理。它支持 stdio 和 streamable-http 传输,可通过 npx、npm 或 Docker 部署,适合学生、教师和系统管理员使用。服务器独立于 Instructure,未获官方背书。

工具能力

canvas_health_check
检查 API 连接性
canvas_list_courses
列出所有课程
canvas_get_course
获取课程详细信息
canvas_list_assignments
列出课程作业
canvas_get_assignment
获取作业详情
canvas_submit_assignment
提交作业
canvas_get_submission
检查提交状态
canvas_list_modules
列出课程模块
canvas_get_module
获取模块详情
canvas_list_module_items
列出模块中的项目
canvas_mark_module_item_complete
将项目标记为完成
canvas_list_discussion_topics
列出讨论主题
canvas_get_discussion_topic
获取讨论详情
canvas_post_to_discussion
发布讨论
canvas_list_announcements
列出课程公告
canvas_get_user_grades
获取你的成绩
canvas_get_course_grades
获取课程成绩
canvas_get_dashboard
获取仪表盘信息
canvas_get_dashboard_cards
获取课程卡片
canvas_get_upcoming_assignments
获取即将到来的作业
canvas_list_calendar_events
列出日历事件
canvas_list_files
列出课程文件
canvas_get_file
获取文件详情
canvas_list_folders
列出课程文件夹
canvas_list_pages
列出课程页面
canvas_get_page
获取页面内容
canvas_list_conversations
列出消息
canvas_get_conversation
获取对话详情
canvas_create_conversation
发送消息
canvas_list_notifications
列出通知
canvas_get_syllabus
获取课程大纲
canvas_get_user_profile
获取用户资料
canvas_update_user_profile
更新用户资料
canvas_create_course
创建新课程
canvas_update_course
更新课程设置
canvas_create_assignment
创建作业
canvas_update_assignment
更新作业
canvas_list_assignment_groups
列出作业组
canvas_submit_grade
提交成绩
canvas_enroll_user
注册学生
canvas_list_quizzes
列出课程测验
canvas_get_quiz
获取测验详情
canvas_create_quiz
创建测验
canvas_start_quiz_attempt
开始测验尝试
canvas_list_rubrics
列出课程评分标准
canvas_get_rubric
获取评分标准详情
canvas_get_account
获取账户详情
canvas_list_account_courses
列出账户中的课程
canvas_list_account_users
列出账户中的用户
canvas_create_user
在账户中创建用户
canvas_list_sub_accounts
列出子账户
canvas_get_account_reports
列出可用报告
canvas_create_account_report
生成账户报告

安装接入

  1. 获取 Canvas API 令牌:登录 Canvas → 账户 → 设置 → 批准的集成 → 新建访问令牌。2. 使用 Claude Desktop 配置:将提供的 JSON 添加到 claude_desktop_config.json,设置环境变量 CANVAS_API_TOKEN 和 CANVAS_DOMAIN。3. 或者通过 npm 全局安装:npm install -g canvas-mcp-server,然后设置环境变量并运行 canvas-mcp-server。4. 或者使用 Docker:使用提供的 docker run 命令,设置必要的环境变量和传输模式。
claude_desktop_config.json
{
  "mcpServers": {
    "canvas-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "canvas-mcp-server"
      ],
      "env": {
        "CANVAS_API_TOKEN": "your_token_here",
        "CANVAS_DOMAIN": "your_school.instructure.com"
      }
    }
  }
}

选型与风险

适合谁

  • 希望使用 AI 助手直接与 Canvas 交互的学生
  • 需要自动化课程管理和评分的教师
  • 需要账户级监督和报告的管理员

不适合谁

  • 寻求官方 Instructure 支持的用户的场景
  • 需要即时移动访问或离线功能(目前尚未实现)的用例
  • 对令牌安全要求极高且不能提供管理员权限的环境

所需权限

  • 需要 CANVAS_API_TOKEN,具有相应的权限级别:学生、教师或管理员
  • 账户级操作需要管理员权限
  • 服务器可能读取和修改课程、作业、成绩、用户和账户数据

风险与副作用

  • API 令牌泄露可能导致未授权访问
  • 大量工具可能使上下文窗口过载,降低效率
  • 提示注入风险:工具输出可能包含恶意指令,需最小特权原则
  • 非官方服务器,未获支持,可能不符合机构安全策略

常见排障

  1. 401 Unauthorized:检查 API 令牌及权限
  2. 404 Not Found:验证课程/作业 ID 和访问权限
  3. 课程创建时出现“页面未找到”:确保使用 v2.2.0+ 并包含 account_id 参数
  4. 超时:增加 CANVAS_TIMEOUT 或检查网络连接

使用场景

学生查询即将到来的作业、提交作业、查看成绩和参与讨论。
教师创建课程和作业、评分、注册学生。
管理员管理账户、用户、课程和生成报告。

支持客户端

Claude Desktop完整支持
Codex完整支持
Cursor完整支持