使用说明

项目简介

Canvas学生MCP服务器是一个允许LLM客户端(如Claude)访问Canvas LMS信息的工具。它通过Model Context Protocol (MCP) 标准与客户端通信,提供了一系列工具,使得用户可以通过自然语言与Canvas LMS进行交互,例如查询课程信息、作业、文件、公告、测验以及待办事项等。

主要功能点

  • 课程信息查询: 检索和搜索Canvas上的课程信息,包括课程列表和课程详情。
  • 作业管理: 查找和筛选课程作业,获取即将到期的作业信息。
  • 内容访问: 访问课程内容,包括文件、模块、页面和公告。
  • 内容搜索: 在所有课程内容中执行关键词搜索。
  • 文件内容处理: 直接读取文本文件内容,并提供PDF等其他类型文件的链接。
  • 测验管理: 查询课程测验和所有测验,获取测验详细信息。
  • 待办事项: 查看待办事项和遗漏的作业。

安装步骤

  1. 环境准备:

    • 确保已安装 Python 3.10 或更高版本。
    • 推荐安装 UV Python 包管理器(或使用 pip)。
    • 确保已安装 Claude Desktop 客户端。
  2. 克隆仓库:

    git clone https://github.com/Jon-Vii/canvas-student-mcp.git
    cd canvas-student-mcp
  3. 安装依赖: 进入 'src/canvas-student' 目录,运行安装脚本或手动安装依赖。

    方法一:运行安装脚本 (推荐)

    cd src/canvas-student
    python install.py

    此脚本会自动检测并使用 UV 或 pip 安装必要的依赖,包括 PDF 支持。

    方法二:手动安装 使用 UV (推荐):

    cd src/canvas-student
    uv pip install -e ".[pdf]"

    或者使用 pip:

    cd src/canvas-student
    pip install -e ".[pdf]"
  4. 配置环境变量: 创建 '.env' 文件在 'src/canvas-student' 目录下,并填入您的 Canvas API 凭据。

    CANVAS_API_TOKEN=your_canvas_api_token
    CANVAS_BASE_URL=https://your-institution.instructure.com

    请替换 'your_canvas_api_token' 为您的 Canvas API 令牌,'https://your-institution.instructure.com' 为您的 Canvas 机构 URL。

服务器配置

配置 Claude Desktop 客户端以连接到 Canvas 学生 MCP 服务器。编辑 Claude Desktop 的配置文件:

  • Windows: '%APPDATA%\Claude\claude_desktop_config.json'
  • macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'

在配置文件中添加 'mcpServers' 配置,指定服务器名称、启动命令和参数。

{
  "mcpServers": {
    "canvas": {
      "command": "python",
      "args": ["ABSOLUTE_PATH_TO/src/canvas-student/run_server.py"],
      "env": {
        "CANVAS_API_TOKEN": "your_canvas_api_token",
        "CANVAS_BASE_URL": "https://your-institution.instructure.com"
      }
    }
  }
}

请根据您的实际情况替换以下占位符:

  • 'ABSOLUTE_PATH_TO': 替换为 'src/canvas-student' 目录的绝对路径。例如,如果您将仓库克隆到 '/Users/yourname/repos/canvas-student-mcp',则 'ABSOLUTE_PATH_TO' 应为 '/Users/yourname/repos/canvas-student-mcp/src/canvas-student'。
  • 'your_canvas_api_token': 替换为您的 Canvas API 令牌。
  • 'https://your-institution.instructure.com': 替换为您的 Canvas 机构 URL,例如 'https://canvas.example.edu'。

注意: 'command' 字段指定了用于启动服务器的命令,'args' 字段是一个字符串数组,包含了传递给命令的参数。 'env' 字段允许您设置环境变量,例如 Canvas API 令牌和 Base URL,这些信息将传递给 MCP 服务器进程。

基本使用方法

配置完成后,重启 Claude Desktop 客户端。在与 Claude 聊天时,您应该能看到 MCP 图标,表示 MCP 服务器已连接。现在您可以向 Claude 提出关于 Canvas 的问题,例如:

  • "显示我的所有课程"
  • "查找数据通信课程中的考试"
  • "未来一周内有哪些作业到期?"
  • "搜索所有课程中关于 ‘机器学习’ 的内容"
  • "提取并显示课程 27849 中 Lab1P.pdf 文件的内容"
  • "显示我的待办事项和遗漏的作业"
  • "我的课程里有哪些即将到来的测验?"
  • "显示课程 67890 中测验 12345 的详细信息"
  • "未来 14 天内有哪些作业到期?"

通过这些指令,您可以利用 Claude 与 Canvas LMS 进行交互,获取所需的信息。

信息

分类

生产力应用