Canvas Lms MCP logo

Canvas Lms MCP

Connects AI clients to Canvas LMS for course management, grading, submissions, rubrics, quizzes, and related workflows.

Install Canvas Lms MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "canvas-lms-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "canvas-lms-mcp"
      ],
      "env": {
        "CANVAS_API_TOKEN": "YOUR_VALUE_HERE",
        "CANVAS_BASE_URL": "YOUR_VALUE_HERE",
        "CANVAS_PSEUDONYMIZE_STUDENTS": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

The canvas-lms-mcp MCP server exposes Canvas LMS operations to AI agents through MCP tools. It connects to an institution’s Canvas API using a base URL and access token, supporting course, assignment, submission, rubric, and quiz workflows. Read operations cover discovery and retrieval, while write tools can create or update courses and assignments, grade submissions, add comments, and manage rubrics. Reach for it when an AI client needs authenticated access to Canvas data or instructor workflows.

Use cases

  • List courses and assignments for an instructor
  • Grade submissions and add feedback
  • Review submissions awaiting human grading
  • Create and attach rubrics to assignments
  • Inspect quiz questions and student answers

Key features

  • Canvas course and syllabus access
  • Assignment creation, updates, and deletion
  • Submission grading, comments, and file manifests
  • Rubric creation and assessment workflows
  • Quiz and quiz-submission inspection
  • Optional student-name pseudonymization

Tools174

What Canvas Lms MCP lets your agent do. Expand a tool for its parameters.

Verified live~41.2k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

5/5 checks healthy over the last 40d

What it can do

From the 174 tools this server returned when we ran it; 174 declare their own safety hints.

Can delete or modify data · 52Writes files · 1Handles credentials · 1Makes network requests · 174Read-only tools · 122
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceSigned build
Package age184 days
Maintainers1

Observed 2026-10-15 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 15d ago via OSV.dev · canvas-lms-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars10Stargazers on the source repository.
npm downloads9.2kPackage downloads in the last 30 days.
Last commit1d agoMost recent push to the default branch.
Tools exposed174Callable tools this server registers over MCP.
Directory activity2 viewsConfig copies, upvotes, and views on AllMCPs.

How Canvas Lms MCP works

What canvas-lms-mcp does

The canvas-lms-mcp MCP server connects AI clients to Canvas LMS through the Canvas REST API. It is intended for instructors, staff, and other authorized users who need to inspect or modify Canvas data from an MCP-compatible agent. The repository is written in TypeScript and supports stdio, HTTP, and library-import deployment modes.

The listed capabilities cover core academic administration. Agents can check API connectivity, enumerate courses and assignments, retrieve syllabus content, inspect submissions, review quizzes, and work with rubrics. Write operations include creating and updating courses and assignments, deleting assignments, grading submissions, adding submission comments, creating rubrics, attaching rubrics, and submitting rubric assessments. The broader project also documents workflows involving files, users, groups, enrollments, discussions, modules, pages, calendars, conversations, analytics, outcomes, and other Canvas areas.

How it works

An MCP host launches or connects to the server, which uses the configured Canvas credentials to make API requests. Course and assignment listing tools offer slim responses for selection and fuller responses after an agent identifies a target. Optional Canvas include fields can add related data such as teachers, syllabus content, submissions, overrides, score statistics, or rubric associations.

Submission tools support filtering by student, workflow state, and grading period. The awaiting-grading workflow groups ungraded assignment and Classic Quiz submissions for triage, including submissions in submitted or pending_review states. New Quizzes may not expose pending review items through this workflow, and the tool does not provide per-question detail.

Setup and configuration

The canvas-lms-mcp MCP server requires a Canvas API token and the base URL of the institution’s Canvas instance. The base URL should identify the institution origin, such as https://school.instructure.com, without appending /api/v1.

A terminal setup can be started with npx canvas-lms-mcp init. The wizard detects supported clients, asks for the token and base URL, validates the credentials, and writes configuration for selected clients. The package can also be installed through npx add-mcp canvas-lms-mcp. Claude Desktop users can install the provided .mcpb package, while Cursor, VS Code, and Claude Code have documented installation paths.

The optional FERPA setting CANVAS_PSEUDONYMIZE_STUDENTS replaces displayed student names with stable per-course pseudonyms. Raw Canvas user IDs remain available for stable identification, and resolve_pseudonym can be used where supported to recover an identity.

Tools and capabilities

Core tools include:

  • health_check for validating Canvas reachability and token validity.
  • Course and syllabus discovery with list_courses, get_course, and get_syllabus.
  • Assignment browsing and management through listing, retrieval, creation, updates, and deletion.
  • Submission retrieval, grading, commenting, file manifests, and awaiting-grading triage.
  • Rubric listing, creation, attachment, assessment retrieval, and assessment submission.
  • Quiz listing, retrieval, question inspection, submission listing, and answer retrieval.

Limitations and notes

Write actions depend on the Canvas permissions granted to the authenticated user. Deleting assignments and deleting rubrics are permanent operations. Submission download URLs are temporary; use the returned file ID to obtain a fresh URL when needed. File manifests are bounded by max_files, which defaults to 500.

The awaiting-grading workflow does not reliably surface New Quizzes pending review, does not show auto-marked fill-in-the-blank answers, and returns submission-level rather than question-level state. Student pseudonymization changes displayed names, so agents handling FERPA-sensitive data should account for that behavior.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Canvas Lms MCP

canvas-lms-mcp is an MCP server that connects AI clients to Canvas LMS through the Canvas API. Its main tools list and manage courses and assignments, retrieve and grade submissions, add comments, work with rubrics, inspect quizzes, and check API health. It supports authenticated read and write workflows based on Canvas permissions.

Install it with `npx canvas-lms-mcp init`, which detects supported clients and writes their configuration. You can also use `npx add-mcp canvas-lms-mcp`, install the `.mcpb` package in Claude Desktop, or use the documented one-click setup for Cursor and VS Code.

The server requires `CANVAS_API_TOKEN` and `CANVAS_BASE_URL` when configured through environment variables. The base URL should be the institution’s Canvas origin without `/api/v1`. Student pseudonymization is controlled separately by the optional `CANVAS_PSEUDONYMIZE_STUDENTS` setting.

Yes, canvas-lms-mcp works with Cursor. The README provides a Cursor installation link and a manual configuration path. Replace the placeholder Canvas API token and institution base URL with valid credentials after installation.

Yes, canvas-lms-mcp can grade submissions and add text comments when the authenticated Canvas user has grading permissions. It also supports rubric assessments and provides tools for finding submissions that still need human grading.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewCanvas Lms MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/canvas-lms-mcp?style=directory)](https://allmcps.com/mcp/canvas-lms-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/canvas-lms-mcp"><img src="https://allmcps.com/api/badge/canvas-lms-mcp?style=directory" alt="Canvas Lms MCP on AllMCPs" /></a>