pyproject.toml: the canvas CLI for interactive terminal use, and the canvas-mcp server that MCP clients connect to. This page covers both installation paths and explains when to use each one.
Entrypoints
Thepyproject.toml scripts section declares both commands:
| Command | Purpose |
|---|---|
canvas | Interactive CLI — list courses, check auth, manage settings |
canvas-mcp | MCP server entrypoint — used by AI clients and the helper script |
Option 1: Development checkout
Use this path when you want to modify the source code or run Canvas MCP from the repository directory.Sync dependencies
.venv directory inside the repository and installs all runtime and dev dependencies declared in pyproject.toml.Option 2: Global tool install
Use this path when you want thecanvas command available system-wide without prefixing uv run.
Install as a uv tool
From inside the cloned repository directory:This installs both
canvas and canvas-mcp into uv’s tool bin directory and makes them available on your PATH.Configuring your Canvas base URL
By default, Canvas MCP infers your Canvas domain from Chrome cookies. If you have multiple Canvas domains in Chrome, or if auto-detection fails, set theCANVAS_BASE_URL environment variable:
.env file in the repository root. The scripts/start_mcp_server.sh helper passes it to the server automatically via --env-file .env.
MCP client setup
Once installed, point your MCP client at the helper script. Use the absolute path to the script:uv run --env-file .env canvas-mcp with stdio transport, which is the default expected by desktop MCP clients such as Claude Desktop.
For HTTP transport instead:
http://127.0.0.1:8000/mcp.
See MCP transports for a full comparison of stdio, HTTP, and SSE transport options.
