drio
Open app

Canvas MCP Server v2.0

Source

Version 2.0 - 37 tools available - an MCP server for interacting with the Canvas LMS API. This server allows you to manage courses, assignments, enrollments, and grades within Canvas.

Catalog onlyCatalog onlySTDIO

Overview

Canvas MCP Server is a Model Context Protocol (MCP) server designed to interact with the Canvas API, allowing users to manage educational resources such as courses, assignments, enrollments, and grades.

To use the Canvas MCP Server, clone the repository from GitHub, install the necessary dependencies, configure environment variables with your Canvas API token and domain, and start the server to listen for MCP requests.

  • Manage courses, assignments, and user enrollments in Canvas. - Provides specific commands for creating and updating courses and assignments. - Robust error handling to ensure smooth operation and troubleshooting.
  1. Automating course creation and management for educators.
  2. Submitting grades for student assignments efficiently.
  3. Integrating with educational tools like Claude Desktop to extend functionality.

Add to your AI client

Use these steps to connect Canvas MCP Server v2.0 in Cursor, Claude, VS Code, and other MCP-compatible apps. The same JSON appears in the Use with menu above for one-click copy.

Cursor

Add this to your .cursor/mcp.json file in your project root, then restart Cursor.

.cursor/mcp.json

{
  "mcpServers": {
    "mcp-canvas-lms-dmontgomery40": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mcp-canvas-lms-dmontgomery40"
      ]
    }
  }
}

Claude Desktop

Add this server entry to the mcpServers object in your Claude Desktop config, then restart the app.

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

{
  "mcpServers": {
    "mcp-canvas-lms-dmontgomery40": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mcp-canvas-lms-dmontgomery40"
      ]
    }
  }
}

Claude Code

Add this to your project's .mcp.json file. Claude Code will detect it automatically.

.mcp.json (project root)

{
  "mcpServers": {
    "mcp-canvas-lms-dmontgomery40": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mcp-canvas-lms-dmontgomery40"
      ]
    }
  }
}

VS Code (Copilot)

Add this to your .vscode/mcp.json file. Requires the GitHub Copilot extension with MCP support enabled.

.vscode/mcp.json

{
  "servers": {
    "mcp-canvas-lms-dmontgomery40": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mcp-canvas-lms-dmontgomery40"
      ]
    }
  }
}

Windsurf

Add this to your Windsurf MCP config file, then restart Windsurf.

~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "mcp-canvas-lms-dmontgomery40": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mcp-canvas-lms-dmontgomery40"
      ]
    }
  }
}

Cline

Open Cline settings, navigate to MCP Servers, and add this server configuration.

Cline MCP Settings (via UI)

{
  "mcpServers": {
    "mcp-canvas-lms-dmontgomery40": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-mcp-canvas-lms-dmontgomery40"
      ]
    }
  }
}

FAQ

What are the prerequisites for using Canvas MCP Server?

You need Node.js version 18 or higher, a Canvas API token, and your Canvas domain.

Is there a way to troubleshoot errors?

Yes, the server includes error handling with meaningful messages, and you can refer to the troubleshooting section for common issues.

How can I contribute to the project?

Contributions are welcome! You can open issues or submit pull requests on the GitHub repository.