← 返回目录
C

Canvas MCP Server

社区
面向 Canvas LMS 的全面 MCP 服务器,支持学生、教师及账户管理功能。
分类
其他 第 198 / 230
Stars
★ 103 热门
传输方式
stdio(本地进程) · Streamable HTTP
运行环境
Node.js · Docker
凭据
需要 API Key / 凭据
最近提交
工具数
53
40FMRS · D

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

最强项 · 安装易用性 10/20 最弱项 · 可靠性 6/20

可靠性
6/20
安全与权限
6/20
维护活跃度
10/20
文档质量
8/20
安装易用性
10/20
查看各项评分依据
可靠性 6/20
证据仅来自README,声称有50+工具和v2.2.0,但未提供实际的源码、测试或CI配置。无法验证工具是否真实存在或init握手是否能成功。README提到错误修复(如account_id),但没有测试证据。存在行为测试的声明,但未提供文件。因此,可靠性得分低,主要是由于缺乏可验证的执行证据。
安全与权限 6/20
README详细说明了安全问题披露,表明作者具有安全意识。但需要API令牌,且代码中可能没有实现最小权限或危险操作的确认机制。README建议使用限权限令牌,但未显示代码实现。存在学生数据泄露的披露历史,但未提供漏洞详情。未发现直接的恶意行为,但因缺少源码审计,风险未知。
维护活跃度 10/20
仓库活跃,有102个星标、4个开放问题,且未被归档。README显示版本2.3.0,有发布历史。但未提供LICENSE文件,虽然README声称MIT。未看到依赖更新或安全响应渠道,但活跃度和版本管理较好。
文档质量 8/20
README非常全面,包含安装、认证、工具列表、示例和故障排除。但缺少详细的工具参数和限制说明。有示例对话和工作流,但未说明API速率限制或成本。文档总体良好,但部分内容可能过时(如版本号不一致)。
安装易用性 10/20
README提供了多种安装方法:npx、npm、Docker,以及Claude Desktop配置示例。设置步骤清晰,环境变量明确。存在Docker和Kubernetes示例,但未提供实际配置验证。快速启动步骤简单,但需要API令牌。考虑到未执行,设置评分上限为15,但文档提供了足够信息。

静态评测 · 未实际运行收录于 2026-08-07

查看 FMRS 评分方法 →

选型与风险

能访问什么访问网络修改第三方账户数据

适合谁

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

不适合谁

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

所需权限

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

风险与副作用

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

安装接入

准备工作

运行环境:Node.js · Docker

CANVAS_API_TOKEN 必填密钥 Canvas API 访问令牌,在 Canvas 网页的 Account → Settings → Approved Integrations 中点击 + New Access Token 生成。
CANVAS_DOMAIN 必填 你的 Canvas 站点域名,例如 your_school.instructure.com。
其他可选配置项(9 个)
MCP_TRANSPORT 可选 传输模式选择,取值 stdio 或 streamable-http,默认 stdio。
MCP_HTTP_HOST 可选 streamable-http 模式监听的主机地址,默认 127.0.0.1。
MCP_HTTP_PORT 可选 streamable-http 模式监听端口,默认 3000。
MCP_HTTP_PATH 可选 HTTP 端点路径,默认 /mcp。
MCP_HTTP_STATEFUL 可选 是否启用有状态 HTTP 会话。
MCP_HTTP_JSON_RESPONSE 可选 是否返回 JSON 响应。
MCP_HTTP_ALLOWED_ORIGINS 可选 允许的跨域来源列表。
CANVAS_TIMEOUT 可选 API 请求超时时间,超时可适当调大。
LOG_LEVEL 可选 日志级别,设为 debug 可开启调试日志。
  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"
      }
    }
  }
}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "canvas-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "canvas-mcp-server"
      ],
      "env": {
        "CANVAS_API_TOKEN": "your_token_here",
        "CANVAS_DOMAIN": "your_school.instructure.com"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add canvas-mcp-server -e CANVAS_API_TOKEN=your_token_here -e CANVAS_DOMAIN=your_school.instructure.com -- npx -y canvas-mcp-server

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

在客户端工具列表中确认出现 canvas_health_check 和 canvas_list_courses,然后运行 canvas_health_check 验证 API 连通性。

常见排障

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

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 我这周有哪些即将截止的作业?
  • 帮我把我的英语论文提交给 English 101 的作业 3
  • 我现在生物课的成绩是多少?
  • 在账号 123 里创建一个名为 Advanced Biology 的新课程

工具能力 53

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 只读
列出课程模块
展开其余 45 个工具
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 写入
生成账户报告

使用场景

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

支持客户端

Claude Desktop
Codex
Cursor

依据项目文档列出,未经本站实测。

详细介绍

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

同类可选方案

BioMCP 75 · B

统一的命令行语法,接入约30个可信生物医学数据源。

★ 653 · 工具数 11 与当前对比 →

源版本 c0646ba10ac2 数据同步于 2026-10-11 查看 FMRS 评分方法