Canvas MCP Server 使用说明

项目简介

Canvas MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在连接 AI 助手(如 Claude)和 Canvas 学习管理系统 (LMS)。通过此服务器,AI 助手可以安全地访问和操作 Canvas LMS 中的数据,例如课程信息、公告、评分细则、作业和学生信息,从而扩展 AI 助手在教育领域的应用能力。

主要功能点

  • 课程管理: 列出当前用户参与的课程及其详细信息。
  • 公告发布: 在指定课程中发布新的公告。
  • 评分标准查看: 查看课程的评分标准 (Rubrics)。
  • 学生信息获取: 获取课程中学生 enrollment 信息。
  • 作业管理: 访问作业详情和提交状态。
  • 提交记录查看: 查看学生的作业提交历史和评论。
  • 数据分析: 分析评分标准的统计数据,并生成可视化报告(Prompt 功能)。

安装步骤

  1. 克隆仓库并安装依赖:
    git clone https://github.com/r-huijts/canvas-mcp
    cd canvas-mcp
    npm install
  2. 构建项目:
    npm run build
  3. 配置环境变量:
    • 在项目根目录下创建 '.env' 文件。
    • 添加 Canvas API Token:
      CANVAS_API_TOKEN=你的Canvas API Token
    • (可选)设置 Canvas 域名 (默认为 "https://fhict.instructure.com"):
      CANVAS_DOMAIN=你的Canvas域名
    • 注意: Canvas API Token 需要在 Canvas LMS 中生成,并确保具有访问课程信息的权限。请妥善保管 API Token,避免泄露。

服务器配置

要将 Canvas MCP Server 集成到 MCP 客户端(例如 Claude Desktop),您需要配置客户端以连接到此服务器。以下是 Claude Desktop 客户端的配置示例,您需要将以下 JSON 配置添加到 Claude Desktop 的配置文件 'claude_desktop_config.json' 中。

配置信息 (JSON 格式):

{
  "mcpServers": {
    "canvas": {
      "command": "node",
      "args": [
        "/path/to/canvas-mcp/build/index.js"  //  请替换为 canvas-mcp 项目 build 目录下的 index.js 文件的绝对路径
      ],
      "env": {
        "CANVAS_API_TOKEN": "你的Canvas API Token", // 请替换为您的 Canvas API Token,或者确保在运行环境中已设置 CANVAS_API_TOKEN 环境变量
        "CANVAS_DOMAIN": "https://your-canvas-instance.com" // 请替换为您的 Canvas 域名,或者确保在运行环境中已设置 CANVAS_DOMAIN 环境变量
      }
    }
  }
}

配置参数说明:

  • 'server name': '"canvas"' (服务器名称,在客户端中用于标识和调用)
  • 'command': '"node"' (启动服务器的命令,这里使用 Node.js 运行时)
  • 'args': '["/path/to/canvas-mcp/build/index.js"]' (命令参数,指向编译后的服务器入口文件 'index.js' 的绝对路径)
  • 'env': (环境变量配置)
    • 'CANVAS_API_TOKEN': 您的 Canvas API Token,用于服务器访问 Canvas LMS API。
    • 'CANVAS_DOMAIN': 您的 Canvas LMS 实例的域名。

请务必将 '/path/to/canvas-mcp/build/index.js' 替换为实际的 'index.js' 文件在您系统中的绝对路径。 您可以通过在终端中进入 'canvas-mcp/build' 目录,然后输入 'pwd' 命令来获取当前目录的绝对路径。

完成配置后,重启 Claude Desktop 客户端使配置生效。

基本使用方法

成功配置并启动 Canvas MCP Server 后,您可以在 MCP 客户端(如 Claude)中使用以下工具 (Tools) 和 Prompt:

可用工具 (Tools):

  • 'list-courses': 列出所有可用的课程。
  • 'post-announcement': 在指定课程发布公告,需要 'courseId', 'title', 'message' 参数。
  • 'list-rubrics': 列出指定课程的评分标准,需要 'courseId' 参数。
  • 'list-students': 列出指定课程的学生,需要 'courseId' 参数,可选 'includeEmail' 参数。
  • 'list-assignments': 列出指定课程的作业,需要 'courseId' 参数,可选 'studentId', 'includeSubmissionHistory' 参数。
  • 'list-assignment-submissions': 列出指定课程特定作业的提交,需要 'courseId', 'assignmentId' 参数,可选 'includeComments' 参数。
  • 'list-section-submissions': 列出指定课程特定 section 中特定作业的提交,需要 'courseId', 'assignmentId', 'sectionId' 参数,可选 'includeComments' 参数。
  • 'list-sections': 列出指定课程的 section,需要 'courseId' 参数,可选 'includeStudentCount' 参数。
  • 'post-submission-comment': 对学生的作业提交添加评论,需要 'courseId', 'assignmentId', 'studentId', 'comment' 参数。
  • 'get-rubric-statistics': 获取指定课程特定作业的评分标准统计信息,需要 'courseId', 'assignmentId' 参数,可选 'includePointDistribution' 参数。

可用 Prompt (Prompts):

  • 'analyze-rubric-statistics': 分析课程中形成性作业的评分标准统计数据,并创建可视化报告,需要 'courseName' 参数。

您可以通过自然语言指示 AI 助手使用这些工具和 Prompt,例如:

  • "列出我的课程" (对应 'list-courses' 工具)
  • "在课程 ID 为 123 的课程中发布标题为 '重要通知',内容为 '下周考试'" (对应 'post-announcement' 工具)
  • "分析 '高等数学' 课程的评分标准统计数据" (对应 'analyze-rubric-statistics' Prompt)

请参考仓库的 'README.md' 文件获取更详细的工具和 Prompt 参数信息。

信息

分类

生产力应用