Canvas Learning Management System MCP server

Integrates with the Canvas Learning Management System API to enable course management, assignment tracking, and student engagement analysis in educational settings.
Back to servers
Setup instructions
Provider
Vishal Sachdev
Release date
Feb 28, 2025
Language
Python
Stats
14 stars

Canvas MCP Server is a Message Control Protocol server implementation that bridges Claude Desktop with the Canvas Learning Management System API. It provides educators with a natural language interface to their Canvas environment while maintaining FERPA compliance through comprehensive privacy protection features.

Overview

The Canvas MCP Server enables natural language interactions with Canvas data while prioritizing student privacy. The server includes source-level data anonymization, email masking, local-only processing, and FERPA-compliant analytics features.

Prerequisites

  • Python 3.10 or higher
  • Canvas API access token and institution URL
  • Claude Desktop application

Installation Options

Automated Installation

# Clone the repository
git clone https://github.com/vishalsachdev/canvas-mcp.git
cd canvas-mcp

# Run the automated installer
python scripts/install.py

The installer will:

  • Set up Python environment with uv package manager
  • Install all dependencies
  • Create environment configuration template
  • Configure Claude Desktop integration
  • Test the installation

Manual Installation

1. Install Dependencies

# Install uv package manager
pip install uv

# Install the package
uv pip install -e .

2. Configure Environment

# Copy environment template
cp env.template .env

# Edit with your Canvas credentials
# Required: CANVAS_API_TOKEN, CANVAS_API_URL

Get your Canvas API token from Canvas → Account → Settings → New Access Token

3. Claude Desktop Setup

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "canvas-api": {
      "command": "canvas-mcp-server"
    }
  }
}

Verification

Test your setup with these commands:

# Test Canvas API connection
canvas-mcp-server --test

# View configuration
canvas-mcp-server --config

# Start server (for manual testing)
canvas-mcp-server

Available Tools

The Canvas MCP Server provides tools in several categories:

Tool Categories

  1. Course Tools - List and manage courses, get detailed information
  2. Assignment Tools - Handle assignments, submissions, and peer reviews
  3. Rubric Tools - Full CRUD operations for rubrics
  4. Discussion & Announcement Tools - Manage discussions and announcements
  5. Page & Content Tools - Access pages, modules, and course content
  6. User & Enrollment Tools - Manage enrollments, users, and groups
  7. Analytics Tools - View student analytics and assignment statistics

Using with Claude Desktop

The MCP server integrates with Claude Desktop:

  1. Automatic Startup: Claude Desktop starts the server when needed
  2. Tool Integration: Canvas tools appear in Claude's interface (🔨 hammer icon)
  3. Natural Language: Ask Claude things like:
    • "Show me my courses"
    • "Which students haven't submitted the latest assignment?"
    • "Create an announcement about tomorrow's exam"

Troubleshooting

If you encounter issues:

  1. Server Won't Start - Verify your configuration setup, environment path, and dependencies
  2. Authentication Errors - Check your Canvas API token validity and permissions
  3. Connection Issues - Verify Canvas API URL correctness and network access
  4. Debugging - Check Claude Desktop console logs or run server manually for error output

Security & Privacy Features

FERPA-Compliant Data Protection

  • Automatic anonymization of student data before AI processing
  • PII filtering removes personal information from content
  • Consistent anonymous IDs maintain educational relationships
  • Local de-anonymization mapping for faculty correlation
  • Production-ready error handling with graceful fallbacks
  • Local-only processing - no data leaves your machine except anonymous analytics

Privacy Controls

Configure privacy settings in your .env file:

# Enable automatic student data anonymization (recommended)
ENABLE_DATA_ANONYMIZATION=true

# Debug anonymization process (for testing)
ANONYMIZATION_DEBUG=true

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "canvas-api" '{"command":"canvas-mcp-server"}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "canvas-api": {
            "command": "canvas-mcp-server"
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "canvas-api": {
            "command": "canvas-mcp-server"
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later