Canvas MCP 服务器

一个模型上下文协议(MCP)服务器,使AI助手如Claude能够通过Canvas API管理课程、公告、评分标准、作业和学生数据。

  • by ranver
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于

使用说明

Canvas MCP服务器

模型上下文协议(MCP)服务器,使Claude等AI助手能够与Canvas LMS进行交互。该服务器通过Canvas API提供用于管理课程、公告、标题、作业和学生数据的工具。

特性

  • 列出活动课程及其详细信息
  • 向课程发布公告
  • 查看课程评价标准
  • 获取学生注册信息
  • 访问分配详细信息和提交
  • 查看学生提交历史记录和评论

先决条件

  • Node.js(v16或更高版本)
  • Canvas API令牌
  • 画布实例URL(默认为“https://fhict.instructure.com")

安装

  1. 克隆此存储库并安装依赖项:

    git clone <repository-url>
    cd canvas-mcp
    npm install
    
  2. 构建TypeScript项目:

    npm run build
    
  3. 配置环境变量:

    # Create a .env file
    echo "CANVAS_API_TOKEN=your_token_here" > .env
    # Optional: Set custom Canvas URL
    echo "CANVAS_DOMAIN=https://your-canvas-instance.com" >> .env
    

Claude桌面集成

  1. 打开Claude Desktop的配置文件:

    MacOS:

    code ~/Library/Application\ Support/Claude/claude_desktop_config.json
    

    视窗:

    code %AppData%\Claude\claude_desktop_config.json
    
  2. 添加Canvas MCP服务器配置:

    {
      "mcpServers": {
        "canvas": {
          "command": "node",
          "args": [
            "/path/to/canvas-mcp/build/index.js"
          ],
          "env": {
            "CANVAS_API_TOKEN": "your_token_here",
            "CANVAS_DOMAIN": "https://your-canvas-instance.com"
          }
        }
      }
    }
    
  3. 重新启动Claude Desktop以应用更改

可用工具

列出课程

列出经过身份验证的用户的所有活动课程

  • 无需参数
  • 返回课程名称、ID和学期信息

发布公告

向特定课程发布公告

  • 所需参数:
    • 课程ID:字符串
    • title:字符串
    • 消息:字符串

列出量规

列出特定课程的所有评价标准

  • 所需参数:
    • 课程ID:字符串
  • 返回量规标题、ID和描述

列出学生

获取已注册课程的学生的完整列表

  • 所需参数:
    • 课程ID:字符串
  • 可选参数:
    • includeEmail:布尔值(默认值:false)
  • 返回学生姓名、ID和可选电子邮件地址

列出作业

获取具有提交状态的课程中的所有作业

  • 所需参数:
    • 课程ID:字符串
  • 可选参数:
    • studentId:字符串
    • includeSubmitHistory:布尔值(默认值:false)
  • 返回分配详细信息和提交状态

列表作业提交

获取特定作业的所有学生提交的作业

  • 所需参数:
    • 课程ID:字符串
    • assignmentId:字符串
  • 可选参数:
    • includeComments:布尔值(默认值:true)
  • 返回提交详细信息、成绩和评论

可用提示

分析量规统计

分析课程中形成性作业的量规统计数据,并创建可视化

  • 所需参数:
    • courseName:字符串(要分析的课程名称)
  • 创建两个全面的可视化:
    1. 分组堆叠条形图,显示所有作业中每个标准的分数分布
    2. 显示所有作业每个标准平均分数的分组条形图
  • 提供跨任务和标准的比较分析
  • 包括进展分析和趋势识别

故障排除

常见问题

  1. 服务器未出现在Claude Desktop中:

    • 验证配置文件语法
    • 检查文件路径是否为绝对路径
    • 确保Canvas API令牌有效
    • 重新启动克劳德桌面
  2. 连接错误:

    • 检查Canvas API令牌权限
    • 验证Canvas实例是否可访问
    • 查看克劳德的MCP日志:
      # MacOS
      tail -f ~/Library/Logs/Claude/mcp*.log
      # Windows
      type %AppData%\Claude\Logs\mcp*.log
      

调试日志记录

服务器将错误记录到stderr。这些可以在Claude Desktop的日志中查看,也可以在手动运行时重定向:

node build/index.js 2> debug.log

安全说明

  1. API代币安全:

    • 永远不要将Canvas API令牌提交到版本控制
    • 使用环境变量或安全配置
    • 定期轮换您的API代币
  2. 权限:

    • 使用具有最低所需权限的令牌
    • 定期查看Canvas API访问日志

许可证

MIT许可证

版权所有(c)2024

特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:

上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。

软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。