Canvas

Provides an MCP interface to Canvas LMS for listing courses, searching assignments, and retrieving assignment details.
  • typescript

2

GitHub Stars

typescript

Language

4 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

You can connect Canvas LMS to any MCP-compatible client by running a lightweight MCP server that exposes Canvas data and actions over a standard mesh proxy. This server lets you list courses, search for assignments, and retrieve detailed assignment information from Canvas through simple MCP client calls, enabling seamless integration with tools like chat assistants or automation pipelines.

How to use

Once you have the Canvas MCP Server running, you connect an MCP client to the server endpoint. The server provides a remote interface to Canvas data, including courses you can filter by enrollment and assignments you can inspect in detail. Use the client to enumerate courses, locate specific assignments, and fetch granular information about each item. Your client will communicate using the MCP protocol to perform these actions.

How to install

Prerequisites: you need a modern runtime that supports Bun, Node, or a compatible environment for running the server. You will also prepare an encryption key and a local environment configuration before starting the server.

# Install dependencies
bun install

# Generate encryption key
bun run generate-key

# Copy and configure environment
cp .env.example .env
# Add the generated encryption key to .env

# Run development server
bun dev

Configuration and connection details

To expose a remote MCP endpoint for clients, use the HTTP configuration pointing to the hosted Canvas MCP service. You can attach authorization headers required by the client during the MCP handshake.

{
  "mcpServers": {
    "canvas": {
      "url": "https://canvas.dunkirk.sh/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MCP_TOKEN_HERE"
      }
    }
  }
}

Security

Sensitive data is protected at rest and in transit. Canvas tokens are encrypted with AES-256-GCM before storage, MCP tokens are hashed with Argon2id, and MCP clients never receive raw Canvas tokens.

Notes and examples

If you prefer to run a local development instance, you can start the server directly in your environment. The local development flow shown here uses Bun to install, configure, and run the server for testing.

Available tools

list_courses

List Canvas courses with enrollment filtering to identify relevant classes.

search_assignments

Search across courses for assignments by keyword, due date, or other metadata.

get_assignment

Retrieve detailed information for a specific assignment including description, due date, and rubric.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational