MCP server/other

Canvas LMS MCP Server

A Model Context Protocol (MCP) server implementation for the Canvas LMS API.

enkhbold470/mcp-server-canvas ↗by enkhbold470updated
1

Add it to Claude Code

claude mcp add -e "CANVAS_BASE_URL=${CANVAS_BASE_URL}" -e "CANVAS_ACCESS_TOKEN=${CANVAS_ACCESS_TOKEN}" canvas-lms -- npm start
Required:CANVAS_BASE_URLCANVAS_ACCESS_TOKEN
2

Make your agent remember this setup

canvas-lms's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.

npx conare@latest

Free · one command · indexes the sessions already on disk. Set up in the browser instead →

What it does

  • List courses from Canvas LMS
  • Filter courses by enrollment type (teacher, student, ta)
  • Interactive help prompts for tool usage

Tools 2

list_coursesLists all courses from Canvas LMS.
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
CANVAS_ACCESS_TOKENrequiredYour Canvas API access token

Try it

List all the courses I am currently enrolled in.
Show me only the courses where I am a teacher.
Can you help me understand how to use the list_courses tool?
List all available courses from my Canvas account.
Original README from enkhbold470/mcp-server-canvas

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

Frequently Asked Questions

What are the key features of Canvas LMS?

List courses from Canvas LMS. Filter courses by enrollment type (teacher, student, ta). Interactive help prompts for tool usage.

What can I use Canvas LMS for?

Quickly retrieving course lists for academic planning. Automating the organization of course materials for instructors. Integrating Canvas LMS data directly into AI-assisted development workflows.

How do I install Canvas LMS?

Install Canvas LMS by running: npm install && npm run build

What MCP clients work with Canvas LMS?

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

Conare · memory for coding agents

Turn this server into reusable context

Keep Canvas LMS docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Set up free$npx conare@latest