Canvas MCP Server
About
A Canvas Model Context Protocol (MCP) server implemented in Python that exposes Canvas API functionalities as MCP tools using the canvas-lms-sdk. It is intended for users who want to programmatically interact with their Canvas LMS instance via MCP-compatible clients.
Details
- Author
- avarant
- Downloads
- 238
- Categories
- Other
Jump to
- Fetches active courses for the current user
- Retrieves assignments for a specific course ID
- Checks calendar due dates for specified context codes
- Lists upcoming calendar events and assignments
- Returns detailed information for a given course ID
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 MCP ServerCommand (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
Set the CANVAS_API_URL and CANVAS_API_KEY environment variables with your Canvas credentials, install dependencies using uv (or pip) from the required repositories, then run python main.py. The server will start and listen for MCP client connections.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"canvas mcp server": {
"canvas-mcp-server": {
"command": "uv",
"args": [
"pip",
"install",
"-r",
"requirements.txt",
"#",
"Assuming",
"a",
"requirements.txt",
"might",
"be",
"added",
"later"
]
}
}
}
}
McpServers
{
"canvas-mcp-server": {
"command": "uv",
"args": [
"pip",
"install",
"-r",
"requirements.txt",
"#",
"Assuming",
"a",
"requirements.txt",
"might",
"be",
"added",
"later"
]
}
}
Canvas MCP Server
A Canvas Model Context Protocol (MCP) server implemented in Python using the canvas-lms-sdk. This server exposes Canvas API functionalities as MCP tools.
Prerequisites
Python 3.8+
uv (for installation, though pip can also be used)
Canvas API Credentials:
An API URL for your Canvas instance (e.g., https://<your-institution>.instructure.com)
An API Key generated from your Canvas account.
Setup
1. Clone the repository (if you haven't already):
git clone <repository-url>
cd canvas-mcp-server
2. Set Environment Variables:
Export your Canvas API URL and Key as environment variables. Replace <your-canvas-api-url> and <your-canvas-api-key> with your actual credentials.
export CANVAS_API_URL="<your-canvas-api-url>"
export CANVAS_API_KEY="<your-canvas-api-key>"
Note: For production environments, consider more secure ways to manage secrets.
3. Install Dependencies:
Use uv to install the required packages, including the canvas-lms-sdk:
uv pip install -r requirements.txt # Assuming a requirements.txt might be added later
uv pip install "git+https://github.com/avarant/canvas-lms-sdk.git#subdirectory=generated_python_sdk"
uv pip install "mcp-sdk"
Alternatively, if you prefer pip:
# pip install -r requirements.txt
pip install "git+https://github.com/avarant/canvas-lms-sdk.git#subdirectory=generated_python_sdk"
pip install "mcp-sdk"
Running the Server
Once the setup is complete and environment variables are set, run the server:
python main.py
The server will start and print messages indicating it's running and using the configured Canvas URL. It will listen for MCP client connections.
Available Tools
The server currently provides the following tools:
get_active_courses: Fetches the list of active courses for the current user.get_assignments_for_course: Fetches the list of assignments for a specific course ID.get_calendar_due_dates: Fetches calendar events (assignments) for specified context codes (defaults to user).get_upcoming_assignments: Fetches upcoming calendar events (including assignments) for the user.get_class_information: Fetches detailed information for a specific course ID.Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



