Canvas LMS MCP Server
Provides tools for interacting with Canvas LMS, enabling users to manage courses, assignments, grades, announcements, modules, and calendar events through natural language.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Canvas LMS MCP ServerWhat assignments do I have due this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ 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 |
| List all active enrolled courses |
| Get all assignments (all courses or filtered) |
| Deadlines in the next N days, color-coded by urgency |
| Full details of a specific assignment |
| Submitted vs. missing across all courses |
๐ Grades
Tool | Description |
| Current grades with visual progress bars |
| Assignment-level breakdown with running total |
| All unsubmitted assignments |
๐ข Announcements & Modules
Tool | Description |
| Recent announcements across courses |
| Modules with locked/completed status |
| Items in a module with completion checkboxes |
๐ Calendar
Tool | Description |
| All events for the next N days |
| Week-at-a-glance view |
| Next N events across all courses |
๐ Setup
1. Clone the repo
git clone https://github.com/yourusername/canvas-mcp.git
cd canvas-mcp2. Install dependencies
pip install -r requirements.txt3. Configure your Canvas credentials
cp .env.example .envEdit .env:
CANVAS_BASE_URL=https://yourschool.instructure.com
CANVAS_API_TOKEN=your_token_hereHow to get your Canvas API Token:
Log into Canvas
Go to Account โ Settings
Scroll to Approved Integrations
Click New Access Token
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
This server cannot be installed
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