This repository contains our project for building a Model Context Protocol (MCP) server that integrates with the Canvas learning management system (LMS). The goal is to provide an AI-driven assistant (e.g., Claude) with structured access to course information—assignments, due dates, lecture notes—so that it can help students stay organized and succeed academically.
- Install
uvif you haven't already:
# if you're paranoid about piping to sh, go read the script by copy pasting the URL
curl -LsSf https://astral.sh/uv/install.sh | sh- Clone the repository:
git clone https://github.com/AdityaPrakash-26/Canvas-MCP.git && cd Canvas-MCP- Create the virtual environment:
uv venv --seed- Activate the virtual environment:
source .venv/bin/activate- Install the dependencies:
uv syncIf you don't have Claude Desktop MCP setup, you can follow the Quickstart Guide to install it.
To install this MCP server in Claude Desktop:
- Open Claude Desktop
- Go to Settings > Advanced > Edit Configuration
- (MAC ONLY) Add the following to your
claude_desktop_config.jsonfile in thetoolssection: (it is a key under mcpServers) - (WINDOWS ONLY) See instructions below
REPLACE $DIR with the absolute path to the directory where you cloned this repo. (MANDATORY!!!!!) REPLACE $DIR_uv with the uv path. (MANDATORY!!!!!) you can find it by running
which uv"Canvas MCP": {
"command": "$DIR_uv",
"args": [
"run",
"--with",
"canvasapi>=3.3.0",
"--with",
"mcp[cli]",
"--with",
"python-dotenv>=1.0.1",
"--with",
"structlog>=24.1.0",
"--directory",
"$DIR",
"src/canvas_mcp/server.py"
]
}We recommend using WSL (Windows Subsystem for Linux) to use this software. Installation instructions can be founder here.
- Once installed, set up a new user in
/home/<username> - Once you have the virtual environment setup, modify your claude desktop app config to include the following:
"Canvas MCP": {
"command": "wsl.exe",
"args": [
"-d",
"Ubuntu",
"--exec",
"/home/<USER>/.local/bin/uv",
"run",
"--with",
"canvasapi>=3.3.0",
"--with",
"mcp[cli]",
"--with",
"python-dotenv>=1.0.1",
"--with",
"structlog>=24.1.0",
"--directory",
"/home/<USER>/Canvas-MCP",
"src/canvas_mcp/server.py"
]
}Replace <USER> with your username.
To run the mcp command with uv:
uv run mcpAlternatively, you can test it with the MCP Inspector:
mcp dev src/canvas_mcp/server.pyClone .env.example to .env and add your Canvas API key. Also change the variables in the .env file to match your Canvas instance. "CANVAS_API_KEY" "CANVAS_API_URL"
- This public GitHub repository contains our code, documentation, and issues/tasks.
- We maintain a Kanban board under the “Projects” tab with tasks from our roadmap for the first sprint.
Link to the Repo: (https://github.com/AdityaPrakash-26/Canvas-MCP)
Link to the Kanban: (https://github.com/users/AdityaPrakash-26/projects/1)