🎓 Canvas LMS MCP Server 🎓
About
An MCP (Model Context Protocol) server that integrates with the Canvas LMS API to let students access their Canvas resources—courses, announcements, and assignments—directly through an MCP‑compatible client.
Explore
- get_courses – retrieves all courses for the current user.
- get_announcements – fetches announcements from a course after a given date.
- get_assignments – gets assignments from a course due before a specific date.
- Uses stdio transport for easy integration with MCP clients.
- Requires only a Canvas API token and base URL to connect.
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
🎓 Canvas LMS MCP Server 🎓Command (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
{
"mcpServers": {
"canvas-mcp-server": {
"command": "npx",
"args": ["-y", "mcp-canvas-lms"],
"env": {
"CANVAS_ACCESS_TOKEN": "key",
"CANVAS_BASE_URL": "https://..."
},
"transportType": "stdio"
}
}
}
- CANVAS_ACCESS_TOKEN: Canvas LMS API token
- CANVAS_BASE_URL: Base URL for the canvas API (e.g. https://canvas.ust.hk)
Create your access token at sidebar > Profile > Settings (/profile/settings) > Approved Integrations > New Access Token
You might not be able to create a new access token if your admin has disabled this setting.
npm install
get_courses
Get all courses for the current user from Canvas LMS
get_announcements
Get all announcements for a specific course from Canvas LMS
get_assignments
Get all assignments for a specific course from Canvas LMS
1. get_courses 📚
- Get all courses for the current user
2. get_announcements 📣
- Get all announcements from a specific course, made after a specific date
3. get_assignments 📝
- Get all assignments from a specific course, due before a specific date
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"\ud83c\udf93 canvas lms mcp server \ud83c\udf93": {
"canvas-mcp-server": {
"command": "npx",
"args": [
"-y",
"mcp-canvas-lms"
],
"env": {
"CANVAS_ACCESS_TOKEN": "key",
"CANVAS_BASE_URL": "https://..."
},
"transportType": "stdio"
}
}
}
}
McpServers
{
"canvas-mcp-server": {
"command": "npx",
"args": [
"-y",
"mcp-canvas-lms"
],
"env": {
"CANVAS_ACCESS_TOKEN": "key",
"CANVAS_BASE_URL": "https://..."
},
"transportType": "stdio"
}
}
MCP Server for the Canvas LMS API, enabling access to Canvas LMS resources for students. 🚀
Tools
1. get_courses 📚
- Get all courses for the current user
2. get_announcements 📣
- Get all announcements from a specific course, made after a specific date
3. get_assignments 📝
- Get all assignments from a specific course, due before a specific date
Installation
{
"mcpServers": {
"canvas-mcp-server": {
"command": "npx",
"args": ["-y", "mcp-canvas-lms"],
"env": {
"CANVAS_ACCESS_TOKEN": "key",
"CANVAS_BASE_URL": "https://..."
},
"transportType": "stdio"
}
}
}
Usage
Environment Variables
- CANVAS_ACCESS_TOKEN: Canvas LMS API token
- CANVAS_BASE_URL: Base URL for the canvas API (e.g. https://canvas.ust.hk)
Create your access token at sidebar > Profile > Settings (/profile/settings) > Approved Integrations > New Access Token
You might not be able to create a new access token if your admin has disabled this setting.
Development
```bash
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



