Local-first MCP server for Canvas LMS. Stdio transport, no third-party broker.
Connect Runs on your machine
claude mcp add canvas-mcp -e CANVAS_BASE_URL=<CANVAS_BASE_URL> -e CANVAS_TOKEN=<CANVAS_TOKEN> -- uvx canvas-local-mcp==0.1.3
{
"mcpServers": {
"canvas-mcp": {
"command": "uvx",
"args": [
"canvas-local-mcp==0.1.3"
],
"env": {
"CANVAS_BASE_URL": "<CANVAS_BASE_URL>",
"CANVAS_TOKEN": "<CANVAS_TOKEN>"
}
}
}
}
{
"mcpServers": {
"canvas-mcp": {
"command": "uvx",
"args": [
"canvas-local-mcp==0.1.3"
],
"env": {
"CANVAS_BASE_URL": "<CANVAS_BASE_URL>",
"CANVAS_TOKEN": "<CANVAS_TOKEN>"
}
}
}
}
{
"servers": {
"canvas-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"canvas-local-mcp==0.1.3"
],
"env": {
"CANVAS_BASE_URL": "<CANVAS_BASE_URL>",
"CANVAS_TOKEN": "<CANVAS_TOKEN>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
CANVAS_BASE_URLRequired | Canvas institution root URL (no /api/v1 suffix), e.g. https://your-institution.instructure.com |
CANVAS_TOKENRequired, secret | Canvas personal access token (Account -> Settings -> Approved Integrations -> New Access Token) |
Details
| Package | [email protected] (PYPI, stdio) |
| First published | 24 Jul 2026 |
| Last updated | 24 Jul 2026 |
| Registry name | io.github.admin978/canvas-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
