canvas-mcp
Local-first MCP server for Canvas LMS. Stdio transport, no network round-trips beyond the official Canvas API.
Status: alpha. Single-user, no warranty, API surface may still shift. File issues if it breaks.
Why
Canvas is built for instructors. As a student you get a fragmented UI, no cross-course search, and notifications that arrive late or never. This server exposes the Canvas REST API as MCP tools so you can drive the LMS from any MCP-compatible client (Claude Code, Claude Desktop, etc.).
Architecture
[client] ──stdio──> [server.py] ──https──> [Canvas API]- Token lives in
~/.canvas.env(chmod 600) - Server runs locally, no third party in the path
- Single file, fully auditable
Tools exposed
list_courses, list_assignments, list_modules, list_announcements, get_page, get_file_info, get_grades, planner_items, upcoming_events, todo.
Setup
1. Mint a Canvas personal access token
In Canvas: Account → Settings → Approved Integrations → + New Access Token. Copy the token shown — it is not retrievable afterwards.






