An open API service indexing awesome lists of open source software.

https://github.com/aryankeluskar/canvas-mcp

Collection of Canvas LMS and Gradescope tools for the ultimate EdTech model context protocol. Allows you to query your courses, find resources, and chat with upcoming assignments in the AI app of your choice. try now!
https://github.com/aryankeluskar/canvas-mcp

anthropic canvas mcp python uv

Last synced: 2 months ago
JSON representation

Collection of Canvas LMS and Gradescope tools for the ultimate EdTech model context protocol. Allows you to query your courses, find resources, and chat with upcoming assignments in the AI app of your choice. try now!

Awesome Lists containing this project

README

        

# Canvas MCP

[![smithery badge](https://smithery.ai/badge/@aryankeluskar/canvas-mcp)](https://smithery.ai/server/@aryankeluskar/canvas-mcp)

Canvas MCP is a set of tools that allows your AI agents to interact with Canvas LMS and Gradescope.

![gradescope](assets/gradescope_mcp_ant.png)

![example](assets/example.png)

## Features

- **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...

## Usage

Note down the following beforehand:
1. Canvas API Key from `Canvas > Account > Settings > Approved Integrations > New Access Token`
2. Gemini API key from https://aistudio.google.com/app/apikey
3. Gradescope Email and Password https://www.gradescope.com/

### Installing via Smithery (**Preferred**)

To install Canvas MCP for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@aryankeluskar/canvas-mcp):

```bash
npx -y @smithery/cli install @aryankeluskar/canvas-mcp --client claude
```

Or, for Cursor IDE to use canvas-mcp with other models:

```bash
npx -y @smithery/cli install @aryankeluskar/canvas-mcp --client cursor
```

Or, for Windsurf:

```bash
npx -y @smithery/cli install @aryankeluskar/canvas-mcp --client windsurf
```

---

### Manual Installation (ONLY for local instances)

Download the repository and run the following commands:

```bash
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
```

### Manual Configuration

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:

```json
{
"mcpServers": {
"canvas": {
"command": "uv",
"args": [
"--directory",
"/Users/aryank/Developer/canvas-mcp",
"run",
"canvas.py"
]
}
}
}
```

---

Built by [Aryan Keluskar](https://aryankeluskar.com) :)