Canvas MCP is a set of tools that allows your AI agents to interact with Canvas LMS and Gradescope.
- Find relevant resources - Ability to find relevant resources for a given query in natural language!
- Query upcoming assignments - Not only fetch upcoming assignments, but also provide its breakdown for a given course.
- Get courses and assignments from Gradescope - Query your Gradescope courses and assignments with natural language, get submission status, and more!
- Get courses
- Get modules
- Get module items
- Get file url
- Get calendar events
- Get assignments
- and so much more...
Note down the following beforehand:
- Canvas API Key from
Canvas > Account > Settings > Approved Integrations > New Access Token
- Gemini API key from https://aistudio.google.com/app/apikey
- Gradescope Email and Password https://www.gradescope.com/
To install Canvas MCP for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @aryankeluskar/canvas-mcp --client claude
Or, for Cursor IDE to use canvas-mcp with other models:
npx -y @smithery/cli install @aryankeluskar/canvas-mcp --client cursor
Or, for Windsurf:
npx -y @smithery/cli install @aryankeluskar/canvas-mcp --client windsurf
Download the repository and run the following commands:
git clone https://github.com/aryankeluskar/canvas-mcp.git
cd canvas-mcp
# Install dependencies with uv (recommended)
pip install uv
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -r requirements.txt
# Or install with pip
pip install -r requirements.txt
Create a .env
file in the root directory with the following environment variables:
CANVAS_API_KEY=your_canvas_api_key
GEMINI_API_KEY=your_gemini_api_key
Add the following to your mcp.json
or claude_desktop_config.json
file:
{
"mcpServers": {
"canvas": {
"command": "uv",
"args": [
"--directory",
"/Users/aryank/Developer/canvas-mcp",
"run",
"canvas.py"
]
}
}
}
Built by Aryan Keluskar :)