- Home
- MCP servers
- Canvas
Canvas
- 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.
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.