返回市场
画布-lms-mcp

画布-lms-mcp

作者:ahnopologetic6 星标更新:2025-09-27

项目介绍

Canvas LMS MCP 服务器

smithery 徽章 这是一个最小化的 Canvas LMS MCP(机器对话协议)服务器,用于通过您的 Canvas LMS 实例轻松访问教育数据。此服务器提供了一个桥梁,连接 AI 系统(如 Cursor)与 Canvas 学习管理系统。

功能

  • 列出计划表项目(作业、测验等)
  • 获取并列出作业
  • 获取并列出测验
  • 获取并列出课程
  • 获取课程大纲
  • 获取课程模块
  • 列出文件

安装

通过 Smithery 安装

要通过 Smithery 自动安装 Canvas LMS 服务器到 Claude Desktop:

npx -y @smithery/cli install @ahnopologetic/canvas-lms-mcp --client claude

先决条件

  • Python 3.13+
  • Canvas LMS API 令牌
  • uv 包管理器(推荐)

安装方法

选项 1:使用 uvx 安装(推荐)

最简单的方式是使用 uvx 安装和运行 canvas-lms-mcp:

uvx canvas-lms-mcp

这将在隔离环境中运行服务器,而不会永久安装它。

要永久安装工具:

uv tool install canvas-lms-mcp

选项 2:从源码安装

  1. 克隆仓库:

    git clone https://github.com/yourusername/canvas-lms-mcp.git
    cd canvas-lms-mcp
    
  2. 使用 uv 安装:

    # 如果还没有 uv,请先安装
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # 创建虚拟环境并安装依赖
    uv venv
    uv pip install -e .
    

    或者使用传统方法:

    python -m venv .venv
    source .venv/bin/activate  # 在 Windows 上:.venv\Scripts\activate
    pip install -e .
    

配置

设置以下环境变量:

export CANVAS_API_TOKEN="your_canvas_api_token"
export CANVAS_BASE_URL="https://your-institution.instructure.com"  # 默认值:https://canvas.instructure.com

您可以在您的 Canvas 账户设置中获取 Canvas API 令牌。

运行服务器

使用 uv 启动服务器:

uv run src/canvas_lms_mcp/main.py

如果已使用 uvx 工具安装:

canvas-lms-mcp

默认情况下,服务器在 http://localhost:8000 上运行。您可以使用 FastMCP 接口在 http://localhost:8000/docs 与 API 进行交互。

可用工具

服务器提供了以下工具来与 Canvas LMS 进行交互:

课程

list_courses

列出用户当前注册的所有课程。

参数:

  • page(可选,默认值为 1):页码(从 1 开始)
  • items_per_page(可选,默认值为 10):每页项数

get_course

通过 ID 获取单个课程。

参数:

  • course_id(必需):课程 ID
  • include(可选):需要包含的附加数据列表

get_course_syllabus

获取课程的大纲。

参数:

  • course_id(必需):课程 ID

get_course_modules

获取课程的模块。

参数:

  • course_id(必需):课程 ID
  • include(可选):需要包含的附加数据列表

作业

list_assignments

列出课程的作业。

参数:

  • course_id(必需):课程 ID
  • bucket(必需):按类型过滤作业("past", "overdue", "undated", "ungraded", "unsubmitted", "upcoming", "future")
  • order_by(必需):排序字段("due_at", "position", "name")
  • page(可选,默认值为 1):页码(从 1 开始)
  • items_per_page(可选,默认值为 10):每页项数

get_assignment

通过 ID 获取单个作业。

参数:

  • course_id(必需):课程 ID
  • assignment_id(必需):作业 ID

测验

list_quizzes

列出课程的测验。

参数:

  • course_id(必需):课程 ID
  • include(可选):需要包含的附加数据列表
  • page(可选,默认值为 1):页码(从 1 开始)
  • items_per_page(可选,默认值为 10):每页项数

get_quiz

通过 ID 获取单个测验。

参数:

  • course_id(必需):课程 ID
  • quiz_id(必需):测验 ID

文件

list_files

列出课程或文件夹的文件。

参数:

  • course_id(可选):课程 ID
  • folder_id(可选):文件夹 ID
  • include(可选):需要包含的附加数据列表
  • page(可选,默认值为 1):页码(从 1 开始)
  • items_per_page(可选,默认值为 10):每页项数

计划表项目

list_planner_items

列出经过身份验证用户的计划表项目。

参数:

  • start_date(必需):开始日期,ISO 8601 格式
  • end_date(必需):结束日期,ISO 8601 格式
  • context_codes(可选):上下文代码列表(例如,["course_123"])
  • page(可选,默认值为 1):页码(从 1 开始)
  • items_per_page(可选,默认值为 10):每页项数

与 Cursor 的集成

Cursor 是一个由 AI 驱动的 IDE,可以与 Canvas LMS MCP 服务器交互,直接在您的开发环境中提供教育数据。

设置 Cursor 集成

  1. https://cursor.sh/ 安装 Cursor IDE

  2. 在您的项目目录中创建一个 .cursor/mcp.json 文件,内容如下:

    {
        "mcpServers": {
            "canvas": {
                "command": "uvx",
                "args": [
                     "canvas-lms-mcp"
                ],
                "env": {
                    "CANVAS_API_TOKEN": "your_canvas_api_token",
                    "CANVAS_BASE_URL": "https://your-institution.instructure.com"
                }
            }
        }
    }
    

    替换:

    • your_canvas_api_token 为您实际的 Canvas API 令牌
    • your-institution.instructure.com 为您 Canvas 机构的 URL
  3. 重启 Cursor 以使更改生效。

Cursor 时间集成(可选)

您还可以通过在 mcp.json 中添加一个 "time" 服务器来集成时间服务器,用于时区相关的查询:

"time": {
    "command": "uvx",
    "args": [
        "mcp-server-time",
        "--local-timezone=America/New_York"
    ]
}

这允许您使用与 Canvas 数据相关的时间函数。

使用示例

一旦连接,您可以向 Cursor AI 查询您的 Canvas 数据:

  • "我下周有哪些作业到期?"
  • "显示我的生物学课程大纲"
  • "列出我即将进行的所有测验"
  • "明天我的日程是什么?"

示例对话:

您:我近期有哪些作业到期?

Cursor:我将检查您的即将到期的作业。

根据您的 Canvas 数据,以下是您的即将到期的作业:
- "最终项目" 对于 CS101,截止日期为 2023 年 12 月 10 日
- "实验报告 #5" 对于 BIOL200,截止日期为 2023 年 12 月 7 日
- "研究论文" 对于 ENGL301,截止日期为 2023 年 12 月 15 日

开发

有关详细的开发说明,请参阅 DEVELOPMENT.md 文件。

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。 </中文翻译>