Canvas MCP Server

$git clone https://github.com/enkhbold470/mcp-server-canvas && npm install && npm run build && npm start
README.md

Enables programmatic interaction with the Canvas LMS API through MCP

Canvas MCP Server

A Model Context Protocol (MCP) server implementation for the Canvas LMS API. This server provides functionality to interact with Canvas LMS programmatically.

Features

  • List courses from Canvas LMS with optional enrollment type filtering
  • Interactive help prompts for using the tools

Prerequisites

  • Node.js 18 or later
  • A Canvas LMS instance
  • Canvas API access token
  • Cursor (for client integration)

Setup

  1. Clone this repository
  2. Install dependencies:
    npm install
    
  3. Set up environment variables:
    export CANVAS_BASE_URL="https://your-canvas-instance.com"
    export CANVAS_ACCESS_TOKEN="your-api-token"
    
  4. Build the project:
    npm run build
    
  5. Start the server:
    npm start
    

Connecting with Cursor

To use this MCP server with Cursor:

  1. Open Cursor's settings
  2. Navigate to the MCP configuration section
  3. Add a new server configuration:
    {
      "mcpServers": {
        "canvas": {
          "command": "npm",
          "args": [
            "start"
          ],
          "cwd": "/path/to/mcp-server-canvas"
        }
      }
    }
    
  4. Save the configuration and restart Cursor
  5. The Canvas tools will now be available in Cursor's MCP tools panel

Available Tools

list_courses

Lists all courses from Canvas LMS.

Parameters:

  • enrollment_type (optional): Filter courses by enrollment type (teacher, student, ta)

Example response:

{
  "content": [
    {
      "type": "text",
      "text": [
        {
          "id": 1234,
          "name": "Example Course",
          "code": "EX101",
          "state": "available",
          "startDate": "2024-01-01T00:00:00Z",
          "endDate": "2024-12-31T23:59:59Z"
        }
      ]
    }
  ]
}

list-courses-help

An interactive prompt that provides help with using the list_courses tool.

Development

The server is built using TypeScript and the MCP SDK. To add new features:

  1. Add new API methods to the CanvasAPI class
  2. Register new tools using server.tool()
  3. Register help prompts using server.prompt()
  4. Build and test your changes

Troubleshooting

If you encounter issues:

  1. Check that environment variables are set correctly
  2. Verify your Canvas API token has the necessary permissions
  3. Check Cursor's MCP server logs for any error messages
  4. Ensure the server path in Cursor's configuration is correct

License

MIT

Tools (2)

list_coursesLists all courses from Canvas LMS with optional enrollment type filtering.
list-courses-helpAn interactive prompt that provides help with using the list_courses tool.

Environment Variables

CANVAS_BASE_URLrequiredThe URL of your Canvas LMS instance (e.g., https://your-canvas-instance.com)
CANVAS_ACCESS_TOKENrequiredYour Canvas API access token

Configuration

claude_desktop_config.json
{"mcpServers":{"canvas":{"command":"npm","args":["start"],"cwd":"/path/to/mcp-server-canvas"}}}

Try it

List all my courses in Canvas.
Show me the Canvas courses where I am enrolled as a teacher.
I need help using the list_courses tool for Canvas.
Filter my Canvas courses to show only my student enrollments.

Frequently Asked Questions

What are the key features of Canvas MCP Server?

List courses from Canvas LMS. Enrollment type filtering (teacher, student, ta). Interactive help prompts for tool usage. TypeScript-based implementation.

What can I use Canvas MCP Server for?

Students checking their current course list and enrollment status. Teachers managing multiple course sections programmatically. Educational administrators auditing course availability. Developers building custom integrations for Canvas LMS.

How do I install Canvas MCP Server?

Install Canvas MCP Server by running: git clone https://github.com/enkhbold470/mcp-server-canvas && npm install && npm run build && npm start

What MCP clients work with Canvas MCP Server?

Canvas MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use Canvas MCP Server with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free