canvas-lms-mcp
Model Context Protocol server

The Canvas LMS
every agent
can speak to.

148 tools spanning courses, grading, quizzes, discussions, and admin workflows — with a one-click Claude Desktop install and FERPA-grade student-data pseudonymization built into the server, not bolted on after.

MIT licensed TypeScript 768 tests Node ≥ 22 stdio · HTTP · Docker · library
148registered tools, one server
Read-only106 tools
Write operations42 tools
MCP resources2 templates
Interactive widgetMCP Apps ✓
Agent skills3 shipped
What sets it apart

Built for classrooms with real students in them.

Not just an API wrapper — a server designed around what happens when the data on the other side belongs to actual, identifiable kids.

01

FERPA-mode pseudonymization

Toggle on and student names, emails, and IDs never reach the model — replaced with stable pseudonyms per course, persisted to disk, audit-logged on reverse lookup.

Unique to this server
02

Role-based tool filtering

Serve students ~46 tools, teachers ~104, admins ~116 — from the same server, same token model. Canvas still enforces real permissions underneath.

03

One-click install

A signed .mcpb bundle for Claude Desktop. No terminal, no Node install, no config file. Paste a token, done.

04

Agent Skills, not just tools

Reusable Canvas workflows — at-risk student surfacing, gradebook audit trails, outcome tracking — installable into 40+ AI clients.

05

Interactive course explorer

view_course_structure renders a collapsible module tree in MCP Apps-capable hosts, and degrades cleanly to JSON everywhere else.

06

Deploy your way

stdio for local clients, streamable HTTP for hosted deployments, Docker compose, or import the factory function straight into your own Node app.

The field

How it stacks up.

Canvas LMS MCP servers, compared
canvas-lms-mcpvishalsachdev/canvas-mcpDMontgomery40/mcp-canvas-lms
LanguageTypeScriptPythonTypeScript
Tool count14880+54
One-click Claude Desktop installYes
FERPA pseudonymization modeYes
Role-based tool filteringYes
LicenseMITMITMIT
Getting started

Two ways in. Three minutes, either way.

1
Generate a Canvas token

Account → Settings → Approved Integrations → New Access Token. Copy it — you won't see it twice.

2
Run the setup wizard

Detects Claude Desktop, Cursor, VS Code, Windsurf, Codex, Continue, and Claude Code — writes config for every client you pick.

3
Ask it something

"What's the average grade on the midterm exam?" is a valid opening line.

terminal
$ npx canvas-lms-mcp init
// detects installed clients, prompts for token + base URL
✓ Claude Desktop configured
✓ Cursor configured
$ npx skills add bruchris/canvas-lms-mcp
✓ 3 agent skills installed
Once it's running

What you'd actually type.

List all my active courses
Grade Alice's essay submission with a B+ and add feedback
Show me the rubric for the final project
Send a message to student 67890 about their missing assignment
What discussions are happening in my Biology course?