🎓 Canvas LMS MCP Server 🎓

by MisterCommand

310 downloads Not rated yet

About

An MCP (Model Context Protocol) server that integrates with the Canvas LMS API to let students access their Canvas resources—courses, announcements, and assignments—directly through an MCP‑compatible client.

Explore

- get_courses – retrieves all courses for the current user.
- get_announcements – fetches announcements from a course after a given date.
- get_assignments – gets assignments from a course due before a specific date.
- Uses stdio transport for easy integration with MCP clients.
- Requires only a Canvas API token and base URL to connect.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name 🎓 Canvas LMS MCP Server 🎓
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

{
  "mcpServers": {
    "canvas-mcp-server": {
      "command": "npx",
      "args": ["-y", "mcp-canvas-lms"],
      "env": {
        "CANVAS_ACCESS_TOKEN": "key",
        "CANVAS_BASE_URL": "https://..."
      },
      "transportType": "stdio"
    }
  }
}

- CANVAS_ACCESS_TOKEN: Canvas LMS API token
- CANVAS_BASE_URL: Base URL for the canvas API (e.g. https://canvas.ust.hk)

Create your access token at sidebar > Profile > Settings (/profile/settings) > Approved Integrations > New Access Token

You might not be able to create a new access token if your admin has disabled this setting.

npm install

get_courses

Get all courses for the current user from Canvas LMS

get_announcements

Get all announcements for a specific course from Canvas LMS

get_assignments

Get all assignments for a specific course from Canvas LMS

1. get_courses 📚
- Get all courses for the current user
2. get_announcements 📣
- Get all announcements from a specific course, made after a specific date
3. get_assignments 📝
- Get all assignments from a specific course, due before a specific date

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "\ud83c\udf93 canvas lms mcp server \ud83c\udf93": {
            "canvas-mcp-server": {
                "command": "npx",
                "args": [
                    "-y",
                    "mcp-canvas-lms"
                ],
                "env": {
                    "CANVAS_ACCESS_TOKEN": "key",
                    "CANVAS_BASE_URL": "https://..."
                },
                "transportType": "stdio"
            }
        }
    }
}

McpServers

{
    "canvas-mcp-server": {
        "command": "npx",
        "args": [
            "-y",
            "mcp-canvas-lms"
        ],
        "env": {
            "CANVAS_ACCESS_TOKEN": "key",
            "CANVAS_BASE_URL": "https://..."
        },
        "transportType": "stdio"
    }
}

MCP Server for the Canvas LMS API, enabling access to Canvas LMS resources for students. 🚀

Tools

1. get_courses 📚
- Get all courses for the current user
2. get_announcements 📣
- Get all announcements from a specific course, made after a specific date
3. get_assignments 📝
- Get all assignments from a specific course, due before a specific date

Installation

{
  "mcpServers": {
    "canvas-mcp-server": {
      "command": "npx",
      "args": ["-y", "mcp-canvas-lms"],
      "env": {
        "CANVAS_ACCESS_TOKEN": "key",
        "CANVAS_BASE_URL": "https://..."
      },
      "transportType": "stdio"
    }
  }
}

Usage

Environment Variables

- CANVAS_ACCESS_TOKEN: Canvas LMS API token
- CANVAS_BASE_URL: Base URL for the canvas API (e.g. https://canvas.ust.hk)

Create your access token at sidebar > Profile > Settings (/profile/settings) > Approved Integrations > New Access Token

You might not be able to create a new access token if your admin has disabled this setting.

Development

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.