MCP Hub
Back to servers

Canvas LMS MCP Server

Connects Claude AI to your Canvas LMS account, enabling natural language interaction with coursework including assignments, grades, announcements, and calendar.

glama
Updated
Apr 28, 2026

🎓 Canvas LMS MCP Server

A robust Model Context Protocol (MCP) server that connects Claude AI to your Canvas LMS account — letting you interact with your coursework using natural language.

Built with Python · Canvas REST API · MCP SDK


✨ Features (14 Tools across 4 Modules)

📚 Assignments & Courses

ToolDescription
canvas_get_course_listList all active enrolled courses
canvas_get_assignmentsGet all assignments (all courses or filtered)
canvas_get_upcoming_deadlinesDeadlines in the next N days, color-coded by urgency
canvas_get_assignment_detailsFull details of a specific assignment
canvas_get_submission_statusSubmitted vs. missing across all courses

📊 Grades

ToolDescription
canvas_get_course_gradesCurrent grades with visual progress bars
canvas_get_grade_breakdownAssignment-level breakdown with running total
canvas_get_missing_assignmentsAll unsubmitted assignments

📢 Announcements & Modules

ToolDescription
canvas_get_announcementsRecent announcements across courses
canvas_get_course_modulesModules with locked/completed status
canvas_get_module_itemsItems in a module with completion checkboxes

📅 Calendar

ToolDescription
canvas_get_calendar_eventsAll events for the next N days
canvas_get_weekly_scheduleWeek-at-a-glance view
canvas_get_upcoming_eventsNext N events across all courses

🚀 Setup

1. Clone the repo

git clone https://github.com/adityas0604/MCP-Canvas.git
cd canvas-mcp

2. Install dependencies

pip install -r requirements.txt

How to get your Canvas API Token:

  1. Log into Canvas
  2. Go to Account → Settings
  3. Scroll to Approved Integrations
  4. Click New Access Token
  5. Copy and save this token.

3. Configure Claude Desktop

Add this to your 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"
      }
    }
  }
}

4. Restart Claude Desktop

The Canvas tools will now appear in your Claude sidebar!


💬 Example Prompts

Once connected, try asking Claude:

  • "What assignments do I have due this week?"
  • "What's my current GPA estimate?"
  • "Am I missing any assignments?"
  • "What announcements have my professors posted recently?"
  • "Show me my grade breakdown for course 12345"
  • "What does my week look like?"

🔒 Privacy & Security

  • Read-only — this server never writes, submits, or modifies your Canvas data

🛠️ Tech Stack

  • Python 3.10+
  • MCP SDK — Model Context Protocol
  • httpx — Async-ready HTTP client
  • python-dotenv — Environment config
  • Canvas LMS REST API

Reviews

No reviews yet

Sign in to write a review