Skip to main content
Glama

๐ŸŽ“ 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

Tool

Description

canvas_get_course_list

List all active enrolled courses

canvas_get_assignments

Get all assignments (all courses or filtered)

canvas_get_upcoming_deadlines

Deadlines in the next N days, color-coded by urgency

canvas_get_assignment_details

Full details of a specific assignment

canvas_get_submission_status

Submitted vs. missing across all courses

๐Ÿ“Š Grades

Tool

Description

canvas_get_course_grades

Current grades with visual progress bars

canvas_get_grade_breakdown

Assignment-level breakdown with running total

canvas_get_missing_assignments

All unsubmitted assignments

๐Ÿ“ข Announcements & Modules

Tool

Description

canvas_get_announcements

Recent announcements across courses

canvas_get_course_modules

Modules with locked/completed status

canvas_get_module_items

Items in a module with completion checkboxes

๐Ÿ“… Calendar

Tool

Description

canvas_get_calendar_events

All events for the next N days

canvas_get_weekly_schedule

Week-at-a-glance view

canvas_get_upcoming_events

Next N events across all courses


๐Ÿš€ Setup

1. Clone the repo

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

2. Install dependencies

pip install -r requirements.txt

3. Configure your Canvas credentials

cp .env.example .env

Edit .env:

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

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 the token into your .env

4. 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"
      }
    }
  }
}

5. 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?"


๐Ÿ—‚๏ธ Project Structure

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

๐Ÿ”’ 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


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