Skip to main content
This page walks you through getting Canvas MCP running end-to-end: cloning the repository, syncing dependencies, verifying that your Chrome session is valid, making your first CLI query, and wiring up an MCP client.

Prerequisites

  • Python 3.11 or later
  • uv installed (pip install uv or brew install uv)
  • Google Chrome with an active Canvas LMS session
1

Clone the repository

Clone the Canvas MCP repository to your machine:
git clone https://github.com/ynbh/canvasmcp.git
cd canvasmcp
2

Sync dependencies

Install all Python dependencies into a local virtual environment using uv:
uv sync
uv reads pyproject.toml and resolves the full dependency tree. This usually takes under a minute.
3

Verify your Canvas auth

Run the live auth probe to confirm that Canvas MCP can find a valid Canvas session in Chrome:
uv run canvas auth-status
A successful response looks like:
{
  "auth_mode": "chrome-session",
  "auth_verified": true,
  "auth_status": "verified",
  "resolved_canvas_base_url": "https://school.instructure.com",
  "detected_canvas_domains": ["school.instructure.com"],
  "probe_status": 200,
  "error": null
}
On macOS, Chrome protects its cookie database with the Keychain. When this command runs for the first time, macOS will show a prompt asking whether to allow access. Click Allow or Always Allow.
If the command reports that no Canvas domain was detected, set CANVAS_BASE_URL explicitly:
CANVAS_BASE_URL=https://school.instructure.com uv run canvas auth-status
4

List your courses

Fetch your Canvas courses from the terminal to confirm the full data path works:
uv run canvas courses
You should see a formatted list of the courses your Canvas account has access to.
You can also inspect a specific course by its ID:
uv run canvas course overview 12345
uv run canvas course context 12345
5

Connect an MCP client

To expose Canvas data to an AI agent or MCP-compatible client (such as Claude Desktop), add the following to your client’s MCP server configuration. Replace /absolute/path/to/canvasmcp with the actual path where you cloned the repository.
{
  "mcpServers": {
    "canvasmcp": {
      "command": "/absolute/path/to/canvasmcp/scripts/start_mcp_server.sh"
    }
  }
}
The helper script runs uv run canvas-mcp with stdio transport, which is the default expected by desktop MCP clients. Restart your MCP client after saving the configuration.

What’s next

Installation options

Install the canvas command globally with uv tool install so you can run it anywhere.

Auth overview

Understand Chrome cookie auth, domain detection, and profile selection in detail.

MCP transports

Run the server over HTTP or SSE instead of stdio for networked agents.

CLI reference

See all available CLI commands for assignments, discussions, files, and more.

Build docs developers (and LLMs) love