C

Canvas课程管理平台

@DMontgomery40/mcp-canvas-lms
0 Stars 338 次浏览 DMontgomery40 更新于 2026-08-23

一种模型上下文协议服务器,可实现与Canvas学习管理系统API的交互,使用户能够在Canvas中管理课程、作业、注册和成绩。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

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

该服务需要配置环境变量:CANVAS_API_TOKEN、CANVAS_DOMAIN

服务介绍

Canvas MCP 服务器

一个用于与 Canvas API 交互的模型上下文协议 (MCP) 服务器。此服务器允许您在 Canvas 中管理课程、作业、注册和成绩。

先决条件

  • Node.js: 版本 18 或更高
  • Canvas API Token: 从您的 Canvas 账户中获取
  • Canvas 域名: 通常是 canvas.instructure.com

设置

  1. 克隆仓库

    git clone https://github.com/yourusername/canvas-mcp-server.git
    cd canvas-mcp-server
    
  2. 安装依赖

    npm install
    
  3. 配置环境变量

    复制示例环境文件:

    #0
    

    编辑 .env 文件,并将占位符值替换为您实际的 Canvas API token 和域名。

    构建项目

    #1
    
  4. 运行服务器

    npm start
    

    服务器将启动并通过 stdio 监听 MCP 请求。

连接到 Claude 桌面版

  1. 更新 Claude 配置

    将 MCP 服务器配置添加到您的 claude_desktop_config.json 中:

    #2
    

    重启 Claude 桌面版

    • 完全退出 Claude 桌面版。
    • 再次启动 Claude 桌面版。
    • 导航到 🔌 菜单,找到并连接您的 Canvas MCP 服务器。

可用工具(更多面向学生的功能即将推出)

  • canvas_create_course: 在 Canvas 中创建新课程。
  • canvas_update_course: 更新 Canvas 中现有的课程。
  • canvas_create_assignment: 在 Canvas 课程中创建新作业。
  • canvas_update_assignment: 更新现有作业。
  • canvas_submit_grade: 提交学生的作业成绩。
  • canvas_enroll_user: 注册用户参加课程。

错误处理

工具返回带有 isError: true 的错误消息以指示问题。
确保设置所有必需的环境变量以避免运行时错误。

故障排除

  • 构建错误:

    检查 TypeScript 版本:npx tsc --version
    清理并重建:rm -rf build/ && npm run build

  • 运行时错误:

    查看日志以获取详细的错误消息。
    确保环境变量正确设置。

  • 类型错误:

    使用 TypeScript 的类型检查进行验证:npx tsc --noEmit

贡献

欢迎贡献!请针对任何改进或错误修复打开问题或提交拉取请求。

许可证

该项目根据 MIT 许可证发布。


附加说明

  • 类型安全types.ts 文件确保了与 Canvas API 的所有交互都是类型安全的,减少了运行时错误并提高了代码的可维护性。

  • 错误处理:服务器通过带有 isError 标志返回有意义的消息来优雅地处理错误,使客户端(例如 Claude Desktop)能够理解并做出适当的反应。

  • 环境变量:通过环境变量管理敏感信息(如 API 令牌),增强了不同环境下的安全性和灵活性。

  • 模块化:将关注点分离到不同的文件中(types.tsclient.tsindex.ts),使代码库更易于导航和维护。

请根据您项目的具体需求自由调整文件路径和配置。如果您需要进一步的帮助,请告诉我!

相关 MCP 服务