MCP.so
Sign In
C

Canvas LMS MCP Server

@bruchris

Basic information

Category

Productivity

Transports

stdio, streamable-http

Author

bruchris

Submitted by

Christian Bru

About Canvas LMS MCP Server

TypeScript MCP server for Canvas LMS: 175+ tools for courses, grading, quizzes and admin.

Canvas LMS MCP Server config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "canvas-lms": {
      "command": "npx",
      "args": [
        "-y",
        "canvas-lms-mcp"
      ],
      "env": {
        "CANVAS_API_TOKEN": "<YOUR_TOKEN>",
        "CANVAS_BASE_URL": "https://your-institution.instructure.com"
      }
    }
  }
}

Canvas LMS MCP Server tools

Tool list not available yet

This listing does not currently have a tool list to display. This does not mean the server has no tools; check its documentation for supported capabilities.

Fetch the live tool list by running this server in a temporary sandbox using the button above.

Overview

What is Canvas LMS MCP?

Canvas LMS MCP is a TypeScript Model Context Protocol (MCP) server for Canvas LMS. It gives AI agents 175+ tools across 42 Canvas domains, so they can read courses, assignments, submissions, rubrics and quizzes, and grade, comment, manage course content and handle Canvas admin workflows.

How to use Canvas LMS MCP?

  • Claude Desktop (one click): download canvas-lms-mcp.mcpb from the latest release and double-click it. No Node.js or config files needed.
  • Setup wizard: run npx canvas-lms-mcp init. It detects Claude Desktop, Cursor, VS Code, Windsurf, Codex, Continue and Claude Code, validates your Canvas token and writes the config for each client you pick.
  • Claude Code plugin: /plugin marketplace add bruchris/canvas-lms-mcp, then /plugin install canvas-lms-mcp.
  • Manual: add the server configuration above to your MCP client with your CANVAS_API_TOKEN and CANVAS_BASE_URL.

Key features of Canvas LMS MCP

  • 175+ tools across 42 Canvas domains, including New Quizzes, gradebook history, outcomes, analytics, content migrations and accessibility and link audits
  • Three deployment modes: stdio (default), Streamable HTTP with an OAuth 2.1 login for Claude, ChatGPT and Codex (oauth_brokered), and library import
  • FERPA mode: optional student pseudonymization
  • Role-based tool filtering and a destructive-tool policy
  • 16 reusable Canvas workflows as Agent Skills and MCP prompts
  • Listed in the official MCP Registry as io.github.bruchris/canvas-lms-mcp
  • Node.js 22 or newer for the npm package

Use cases of Canvas LMS MCP

  • See courses, upcoming work, missing submissions and grades at a glance
  • Grade submissions with rubrics and leave feedback
  • Build and update modules, pages, discussions, assignments and quizzes
  • Find students who need attention and send targeted messages
  • Audit a course for accessibility and broken links before launch
  • Track learning-outcome mastery and gradebook changes

Frequently asked questions

1

What environment variables are required?

`CANVAS_API_TOKEN` (your Canvas personal access token) and `CANVAS_BASE_URL` (your institution's Canvas origin, e.g. `https://school.instructure.com`, without `/api/v1`). The OAuth HTTP mode needs no personal token.

2

How do I get a Canvas API token?

In Canvas, go to Account > Settings > Approved Integrations, click **+ New Access Token**, name it and copy it straight away.

3

What deployment modes are supported?

stdio (default, local), Streamable HTTP with a static token (self-managed only) or with OAuth login through a Canvas Developer Key, Docker, and import as a Node.js library.

4

Is it safe to use with student data?

Write tools follow a destructive-tool policy, Canvas content is fenced as untrusted input, and FERPA mode can pseudonymize student identities. See the README on GitHub for details.

Comments

More Productivity MCP servers