# canvas-lms-mcp

Brings Canvas LMS into your AI agent: read courses and assignments, post grades, handle files and admin tasks.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 10
- Author: bruchris
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/bruchris/canvas-lms-mcp
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/canvas-lms-mcp

## What it does

This TypeScript server exposes 187 tools spanning 42 Canvas domains. The list covers courses, assignments, submissions, rubrics, quizzes, files, users, groups, enrollments, discussions, modules, pages, calendar, conversations, peer reviews, accounts, analytics, outcomes, grading standards, content exports and migrations, link and accessibility audits, and health checks.

Three deployment modes are available: stdio, HTTP, and library import. Claude users can install it as a plugin from the marketplace, which also pulls in 17 Agent Skills with ready-made workflows. Anywhere else you register the command `npx -y canvas-lms-mcp` and pass the environment variables.

You need a Canvas API token and your institution's base URL. Put only the origin in `CANVAS_BASE_URL` — appending `/api/v1` breaks the requests. Generate the token under Account > Settings, in Approved Integrations; Canvas shows it once. For anyone handling student records, there is a FERPA mode that pseudonymizes students.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `CANVAS_API_TOKEN`, `CANVAS_BASE_URL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add canvas-lms-mcp -e CANVAS_API_TOKEN=<CANVAS_API_TOKEN> -e CANVAS_BASE_URL=<CANVAS_BASE_URL> -- npx -y canvas-lms-mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add canvas-lms-mcp --env CANVAS_API_TOKEN=<CANVAS_API_TOKEN> --env CANVAS_BASE_URL=<CANVAS_BASE_URL> -- npx -y canvas-lms-mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "canvas-lms-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "canvas-lms-mcp"
            ],
            "env": {
                "CANVAS_API_TOKEN": "<CANVAS_API_TOKEN>",
                "CANVAS_BASE_URL": "<CANVAS_BASE_URL>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "canvas-lms-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "canvas-lms-mcp"
            ],
            "env": {
                "CANVAS_API_TOKEN": "<CANVAS_API_TOKEN>",
                "CANVAS_BASE_URL": "<CANVAS_BASE_URL>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e CANVAS_API_TOKEN=<CANVAS_API_TOKEN> -e CANVAS_BASE_URL=<CANVAS_BASE_URL> canvas-lms-mcp npx -y canvas-lms-mcp
```
Replace <…> with your own values

## When to use it
- pull assignment lists and due dates for a course
- grade a submission and leave a comment
- spot students with missing work
- review rubrics and grading standards
- move content from one course to another

## Example prompts
- List every assignment in this course with its due date
- Grade this submission and add a comment for the student
- Find students with missing assignments in this course

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
