mcpField
C
Canvas MCP Server

Canvas MCP Server

Local
github.com/enkhbold470Science & Education0Updated 83w ago

About Canvas MCP Server

Canvas MCP Server connects MCP clients to the Canvas LMS API, with tools for listing courses and a prompt that explains their use. It is intended for Canvas users working through clients such as Cursor.

Key features

  1. 01List Canvas courses
  2. 02Filter by enrollment type
  3. 03Interactive tool-help prompt

Use cases

  1. 01View courses available to an account
  2. 02Narrow course listings by teacher, student, or TA enrollment

MCP support

It exposes Canvas LMS course listing and tool-help functionality to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.