NestDaddy

Canvas Parent Mcp

io.github.chrischall/canvas-parent-mcp · v2.3.0

Canvas LMS (Instructure) for Claude — courses, grades, assignments, planner, files

Connect Runs on your machine

Terminal
claude mcp add canvas-parent-mcp -e CANVAS_BASE_URL=<CANVAS_BASE_URL> -e CANVAS_USERNAME=<CANVAS_USERNAME> -e CANVAS_PASSWORD=<CANVAS_PASSWORD> -e CANVAS_TOKEN=<CANVAS_TOKEN> -e CANVAS_CLIENT_ID=<CANVAS_CLIENT_ID> -e CANVAS_CLIENT_SECRET=<CANVAS_CLIENT_SECRET> -e CANVAS_REFRESH_TOKEN=<CANVAS_REFRESH_TOKEN> -e CANVAS_NAME=<CANVAS_NAME> -e CANVAS_SESSION_CACHE=<CANVAS_SESSION_CACHE> -e CANVAS_SESSION_FILE=<CANVAS_SESSION_FILE> -e CANVAS_OUTPUT_DIR=<CANVAS_OUTPUT_DIR> -e CANVAS_DISABLE_FETCHPROXY=<CANVAS_DISABLE_FETCHPROXY> -e FETCHPROXY_WS_PORT=<FETCHPROXY_WS_PORT> -e FETCHPROXY_WS_HOST=<FETCHPROXY_WS_HOST> -e FETCHPROXY_IDENTITY_DIR=<FETCHPROXY_IDENTITY_DIR> -- npx -y [email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "canvas-parent-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "CANVAS_BASE_URL": "<CANVAS_BASE_URL>",
        "CANVAS_USERNAME": "<CANVAS_USERNAME>",
        "CANVAS_PASSWORD": "<CANVAS_PASSWORD>",
        "CANVAS_TOKEN": "<CANVAS_TOKEN>",
        "CANVAS_CLIENT_ID": "<CANVAS_CLIENT_ID>",
        "CANVAS_CLIENT_SECRET": "<CANVAS_CLIENT_SECRET>",
        "CANVAS_REFRESH_TOKEN": "<CANVAS_REFRESH_TOKEN>",
        "CANVAS_NAME": "<CANVAS_NAME>",
        "CANVAS_SESSION_CACHE": "<CANVAS_SESSION_CACHE>",
        "CANVAS_SESSION_FILE": "<CANVAS_SESSION_FILE>",
        "CANVAS_OUTPUT_DIR": "<CANVAS_OUTPUT_DIR>",
        "CANVAS_DISABLE_FETCHPROXY": "<CANVAS_DISABLE_FETCHPROXY>",
        "FETCHPROXY_WS_PORT": "<FETCHPROXY_WS_PORT>",
        "FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
        "FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "canvas-parent-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "CANVAS_BASE_URL": "<CANVAS_BASE_URL>",
        "CANVAS_USERNAME": "<CANVAS_USERNAME>",
        "CANVAS_PASSWORD": "<CANVAS_PASSWORD>",
        "CANVAS_TOKEN": "<CANVAS_TOKEN>",
        "CANVAS_CLIENT_ID": "<CANVAS_CLIENT_ID>",
        "CANVAS_CLIENT_SECRET": "<CANVAS_CLIENT_SECRET>",
        "CANVAS_REFRESH_TOKEN": "<CANVAS_REFRESH_TOKEN>",
        "CANVAS_NAME": "<CANVAS_NAME>",
        "CANVAS_SESSION_CACHE": "<CANVAS_SESSION_CACHE>",
        "CANVAS_SESSION_FILE": "<CANVAS_SESSION_FILE>",
        "CANVAS_OUTPUT_DIR": "<CANVAS_OUTPUT_DIR>",
        "CANVAS_DISABLE_FETCHPROXY": "<CANVAS_DISABLE_FETCHPROXY>",
        "FETCHPROXY_WS_PORT": "<FETCHPROXY_WS_PORT>",
        "FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
        "FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "canvas-parent-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "CANVAS_BASE_URL": "<CANVAS_BASE_URL>",
        "CANVAS_USERNAME": "<CANVAS_USERNAME>",
        "CANVAS_PASSWORD": "<CANVAS_PASSWORD>",
        "CANVAS_TOKEN": "<CANVAS_TOKEN>",
        "CANVAS_CLIENT_ID": "<CANVAS_CLIENT_ID>",
        "CANVAS_CLIENT_SECRET": "<CANVAS_CLIENT_SECRET>",
        "CANVAS_REFRESH_TOKEN": "<CANVAS_REFRESH_TOKEN>",
        "CANVAS_NAME": "<CANVAS_NAME>",
        "CANVAS_SESSION_CACHE": "<CANVAS_SESSION_CACHE>",
        "CANVAS_SESSION_FILE": "<CANVAS_SESSION_FILE>",
        "CANVAS_OUTPUT_DIR": "<CANVAS_OUTPUT_DIR>",
        "CANVAS_DISABLE_FETCHPROXY": "<CANVAS_DISABLE_FETCHPROXY>",
        "FETCHPROXY_WS_PORT": "<FETCHPROXY_WS_PORT>",
        "FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
        "FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
      }
    }
  }
}

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

NameDescription
CANVAS_BASE_URL
Required
Canvas instance base URL, e.g. https://cms.instructure.com
CANVAS_USERNAME
Optional
Canvas login username/email (recommended) — pair with CANVAS_PASSWORD for auto-login. No SSO/2FA.
CANVAS_PASSWORD
Optional, secret
Canvas password (recommended) — required iff CANVAS_USERNAME is set
CANVAS_TOKEN
Optional, secret
Canvas personal access token (advanced) — most schools have disabled token creation
CANVAS_CLIENT_ID
Optional
Canvas OAuth client ID (advanced — for SSO accounts that can't use username/password)
CANVAS_CLIENT_SECRET
Optional, secret
Canvas OAuth client secret (advanced)
CANVAS_REFRESH_TOKEN
Optional, secret
Canvas OAuth refresh token (advanced) — bootstrap via canvas-parent-mcp-qr-login
CANVAS_NAME
Optional
Friendly name for the Canvas instance (defaults to the host portion of the base URL)
CANVAS_SESSION_CACHE
Optional
Set to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.
CANVAS_SESSION_FILE
Optional
Absolute path for the session cache file. Defaults to $MCP_DATA_DIR/.canvas-parent-mcp/session.json.
CANVAS_OUTPUT_DIR
Optional
Directory canvas_download_file may write into (default ~/Downloads). A relative destinationPath is resolved against it.
CANVAS_DISABLE_FETCHPROXY
Optional
Set to 1 to turn off the browser (fetchproxy) fallback, so missing credentials are a hard error instead.
FETCHPROXY_WS_PORT
Optional
Localhost port of the fetchproxy concentrator the ContextMint Bridge extension connects to (default 37149). Every MCP on one machine shares it, so move it for all of them or not at all.
FETCHPROXY_WS_HOST
Optional
Bind interface for the fetchproxy concentrator, a literal IP only (default 127.0.0.1). Keep on loopback; it exists for hosted deployments that run each MCP in its own network namespace.
FETCHPROXY_IDENTITY_DIR
Optional
Absolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/).

Details

Package[email protected] (NPM, stdio)
First published11 Nov 2026
Last updated11 Nov 2026
Registry nameio.github.chrischall/canvas-parent-mcp

More files and documents servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.