Skip to main content
Glama

🎓 Canvas LMS MCP 服务器

一个强大的 模型上下文协议 (MCP) 服务器,可将 Claude AI 连接到您的 Canvas LMS 账户,让您能够使用自然语言与课程内容进行交互。

基于 Python · Canvas REST API · MCP SDK 构建


✨ 功能(涵盖 4 个模块的 14 个工具)

📚 作业与课程

工具

描述

canvas_get_course_list

列出所有已注册的活跃课程

canvas_get_assignments

获取所有作业(所有课程或筛选后的课程)

canvas_get_upcoming_deadlines

未来 N 天内的截止日期,按紧急程度进行颜色编码

canvas_get_assignment_details

特定作业的详细信息

canvas_get_submission_status

所有课程的提交与缺失状态对比

📊 成绩

工具

描述

canvas_get_course_grades

带有可视化进度条的当前成绩

canvas_get_grade_breakdown

包含累计总分的作业级成绩明细

canvas_get_missing_assignments

所有未提交的作业

📢 公告与模块

工具

描述

canvas_get_announcements

各课程的近期公告

canvas_get_course_modules

带有锁定/完成状态的模块

canvas_get_module_items

带有完成复选框的模块项目

📅 日历

工具

描述

canvas_get_calendar_events

未来 N 天的所有事件

canvas_get_weekly_schedule

每周概览视图

canvas_get_upcoming_events

所有课程中接下来的 N 个事件


Related MCP server: Canvas LMS MCP Server

🚀 设置

1. 克隆仓库

git clone https://github.com/yourusername/canvas-mcp.git
cd canvas-mcp

2. 安装依赖

pip install -r requirements.txt

3. 配置您的 Canvas 凭据

cp .env.example .env

编辑 .env 文件:

CANVAS_BASE_URL=https://yourschool.instructure.com
CANVAS_API_TOKEN=your_token_here

如何获取您的 Canvas API 令牌:

  1. 登录 Canvas

  2. 进入 账户 (Account) → 设置 (Settings)

  3. 滚动至 已批准的集成 (Approved Integrations)

  4. 点击 新建访问令牌 (New Access Token)

  5. 将令牌复制到您的 .env 文件中

4. 配置 Claude Desktop

将以下内容添加到您的 claude_desktop_config.json 中:

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "canvas": {
      "command": "python",
      "args": ["/absolute/path/to/canvas-mcp/server.py"],
      "env": {
        "CANVAS_BASE_URL": "canvas_base_url"
        "CANVAS_API_TOKEN": "your_token_here"
      }
    }
  }
}

5. 重启 Claude Desktop

Canvas 工具现在将出现在您的 Claude 侧边栏中!


💬 示例提示词

连接后,尝试询问 Claude:

  • “我这周有哪些作业要交?”

  • “我目前的 GPA 预估是多少?”

  • “我有没有漏交的作业?”

  • “教授最近发布了哪些公告?”

  • “显示课程 12345 的成绩明细”

  • “我这周的日程安排是怎样的?”


🗂️ 项目结构

canvas-mcp/
├── server.py           # MCP server entry point (14 tools)
├── canvas_client.py    # Canvas REST API wrapper with pagination
├── tools/
│   ├── assignments.py  # Assignment & course tools
│   ├── grades.py       # Grade tools
│   ├── announcements.py# Announcement & module tools
│   └── calendar.py     # Calendar tools
├── .env.example        # Environment config template
├── requirements.txt
└── README.md

🔒 隐私与安全

  • 只读 — 此服务器绝不会写入、提交或修改您的 Canvas 数据


🛠️ 技术栈

  • Python 3.10+

  • MCP SDK — 模型上下文协议

  • httpx — 支持异步的 HTTP 客户端

  • python-dotenv — 环境变量配置

  • Canvas LMS REST API


Related MCP Connectors

Related MCP Servers