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 个事件


🚀 设置

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


F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/adityas0604/MCP-Canvas'

If you have feedback or need assistance with the MCP directory API, please join our Discord server