canvas-lms-mcp — Claude Code MCP server: 187 Canvas LMS tools
Brings Canvas LMS into your AI agent: read courses and assignments, post grades, handle files and admin tasks.
claude mcp add canvas-lms-mcp -e CANVAS_API_TOKEN=<CANVAS_API_TOKEN> -e CANVAS_BASE_URL=<CANVAS_BASE_URL> -- npx -y canvas-lms-mcpWhat canvas-lms-mcp 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.
What it helps with
- 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 for the agent
- 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
How to install canvas-lms-mcp
Platform CLI
claude mcp add canvas-lms-mcp -e CANVAS_API_TOKEN=<CANVAS_API_TOKEN> -e CANVAS_BASE_URL=<CANVAS_BASE_URL> -- npx -y canvas-lms-mcpReplace <…> with your own values
Platform CLI
codex mcp add canvas-lms-mcp --env CANVAS_API_TOKEN=<CANVAS_API_TOKEN> --env CANVAS_BASE_URL=<CANVAS_BASE_URL> -- npx -y canvas-lms-mcpReplace <…> with your own values
Config file
{
"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
Config file
{
"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
Platform CLI
gemini mcp add -e CANVAS_API_TOKEN=<CANVAS_API_TOKEN> -e CANVAS_BASE_URL=<CANVAS_BASE_URL> canvas-lms-mcp npx -y canvas-lms-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about canvas-lms-mcp
How do I install canvas-lms-mcp in Claude Code?
Use the plugin marketplace: run /plugin marketplace add bruchris/canvas-lms-mcp, then /plugin install canvas-lms-mcp. Claude asks for your Canvas API token and base URL when the plugin is enabled.
What does canvas-lms-mcp do?
It gives an agent access to Canvas LMS: reading courses, assignments, submissions and rubrics, posting grades, managing course content, and running admin workflows. There are 187 tools in total.
What do I need before running it?
A Canvas API token and your institution's base URL. Use the origin only — do not append /api/v1.