💻 You're viewing the Local Edition. Want it on your phone or several computers? See the Remote Edition →
🧩 Model Context Protocol · stdio · 209 tools

Canvas meets AI,
right on your computer.

Add one entry to your AI app's MCP config and ask about grades, deadlines and assignments. No tunnel, no passwords, nothing exposed to the internet.

Example chat: asking what score is needed on the final and what's due this week (sample data)
209tools
0open ports
2settings to fill in
MITlicensed
Choose your edition

Local or Remote?

Both editions have the same 209 tools. The difference is where you can use them.

You are here

💻 Local

Best if you only need it on one computer.

  • Desktop and command-line MCP clients
  • Your AI app starts it automatically
  • Nothing exposed to the internet
  • Needs only Node.js and a Canvas token
  • Set up in about 5 minutes
Other edition

🌐 Remote

Best if you want Canvas everywhere.

  • Web, desktop and mobile AI apps
  • Always on, in the background
  • Password-protected ngrok tunnel
  • Automatic failover across several computers
  • Set up in about 15 minutes
Go to Remote Edition →
How it works

Three pieces, no plumbing

Your AI app starts the server as a child process and talks to it through a private pipe. Nothing listens on the network.

Your AI appstarts the server
→stdio
node index.js209 tools · your .env
→HTTPS
Canvas APIyour school
What you can ask

Built for how students actually use Canvas

Higher-level tools answer real questions, not just raw API calls.

📊

“What do I need on the final?”

What-if grades, needed scores, weighted breakdowns and which assignments matter most.

📅

“What's due this week?”

Week-ahead view, semester snapshot and every missing assignment across all courses in one call.

📝

“Submit my essay”

Text, link and file submissions. You see a preview first, and nothing is sent until you confirm.

💬

“Summarize the discussion”

Full threads in one request, plus inbox messages to instructors.

Setup

Up and running in 5 minutes

You need Node.js 18+ and a Canvas account. There's nothing to download yourself: your AI app fetches the server with npx.

Create a Canvas token

In Canvas, go to Account → Settings → Approved Integrations → + New Access Token. Copy it right away, because Canvas only shows it once.

Add it to your AI app

Open your app's MCP config file (usually under Settings → Developer or MCP servers) and add this entry with your token and school address:

{
  "mcpServers": {
    "canvas": {
      "command": "npx",
      "args": ["-y", "canvas-lms-mcp-local"],
      "env": {
        "CANVAS_API_TOKEN": "your_token_here",
        "CANVAS_BASE_URL": "https://yourschool.instructure.com"
      }
    }
  }
}

Then fully quit the app and reopen it. On Windows, use the tray icon → Quit; on macOS, press ⌘Q.

Say hello

Ask your assistant: “Run test_connection.” Then try “What's due this week?”

Prefer running from source? See the README.

Configuration

Settings

Set these in the env block of your config (or in .env if you run from source). Only the first two are required.

VariableDefaultDescription
CANVAS_API_TOKEN required—Your Canvas personal access token
CANVAS_BASE_URL required—Your school's Canvas address
CANVAS_ALLOW_WRITEStruefalse = read-only mode
CANVAS_PROFILEfullcore = curated subset of tools
CANVAS_CACHE_TTL60Response cache time in seconds
CANVAS_TIMEZONEsystemTime zone for due-date math
CANVAS_DOWNLOAD_DIRnext to index.jsWhere downloads are saved
Tools

209 tools in 15 groups

Covers everything a student account can reach, plus raw_canvas_request for anything else.

Content33

Files, pages, modules, captions, exports

Identity24

Profile, token expiry, rate limits

Discussions17

Full threads, replies, ratings

Courses16

Permissions, nicknames, favorites

Submissions16

Submit, comment, rubric results

Inbox14

Messages and recipients

Grades13

What-if, needed score, impact

Assignments12

Missing work, late policy

Quizzes12

Read-only: dates, attempts

Calendar11

Events, office-hours booking

Groups11

Group workspaces

Rubrics11

Rubrics and peer reviews

Planning11

Week ahead, priorities

Meta4

Raw requests, diagnostics

Search3

Smart and keyword search

Troubleshooting

If something's off

The most common fixes.

SymptomFix
Canvas tools don't appearCheck that the config is valid JSON and the path is absolute, then fully quit and reopen your AI app
spawn npx ENOENTInstall Node.js and restart the app. If it still fails, use the full path as command, e.g. "C:/Program Files/nodejs/npx.cmd"
The first start is slownpx downloads the package the first time. Later starts are fast
“CANVAS_API_TOKEN is not set”Add it to the env block of the canvas entry in your config
Canvas returns 401Your token expired. Create a new one
Where are the logs?In your AI app's MCP log folder. Every line from this server starts with [canvas-mcp]