admin978 avatar

Canvas Mcp

admin978/canvas-mcp

If you're a student tired of Canvas's scattered interface and want programmatic access to your courses, assignments, and notifications, this server wraps the Canvas LMS REST API into ten MCP tools: list_courses, list_assignments, list_modules, get_grades, planner_items, and more. It runs locally over stdio with your personal access token stored in a chmod 600 env file, so no credentials leave your machine except in direct HTTPS calls to Canvas. The repo includes a bulk dump script that pulls every file you have access to for offline indexing. Alpha status, single Python file, MIT licensed.

GitHub stars
4
tools
13
auth
Secret needed
transport
STDIO
env vars
2
last updated
Jul 24, 2026

Tools

13 tools

Public tool metadata for what this MCP can expose to an agent.

get_coursesRetrieve all available Canvas courses for the current user. Returns a dictionary mapping course names to their corresponding IDs.

Retrieve all available Canvas courses for the current user. Returns a dictionary mapping course names to their corresponding IDs.

No parameter schema in public metadata yet.

get_modulesRetrieve all modules within a specific Canvas course.1 params

Retrieve all modules within a specific Canvas course.

Parameters* required
course_idstring
The unique identifier for the Canvas course. Can be found in the course URL or via get_courses.
get_module_itemsRetrieve all items within a specific module in a Canvas course.2 params

Retrieve all items within a specific module in a Canvas course.

Parameters* required
course_idstring
The unique identifier for the Canvas course. Can be found in the course URL or via get_courses.
module_idstring
The unique identifier for the module within the course. Can be found via get_modules.
get_file_urlGet the direct download URL for a file stored in Canvas.2 params

Get the direct download URL for a file stored in Canvas.

Parameters* required
course_idstring
The unique identifier for the Canvas course. Can be found in the course URL or via get_courses.
file_idstring
The unique identifier for the file. Can be found in module items or file listings.
get_course_assignmentsRetrieve all assignments for a specific Canvas course.2 params

Retrieve all assignments for a specific Canvas course.

Parameters* required
bucketstring
Optional filter for assignment status. Valid values: past, overdue, undated, ungraded, unsubmitted, upcoming, future.
course_idstring
The unique identifier for the Canvas course. Can be found in the course URL or via get_courses.
get_assignments_by_course_nameRetrieve all assignments for a Canvas course using its name.2 params

Retrieve all assignments for a Canvas course using its name.

Parameters* required
bucketstring
Optional filter for assignment status. Valid values: past, overdue, undated, ungraded, unsubmitted, upcoming, future.
course_namestring
The name of the course to search for. Partial matches are supported (e.g., 'Biology' will match 'Introduction to Biology').
get_canvas_coursesAlias for get_courses - retrieve all Canvas courses.

Alias for get_courses - retrieve all Canvas courses.

No parameter schema in public metadata yet.

get_gradescope_coursesRetrieve all Gradescope courses for the current user.

Retrieve all Gradescope courses for the current user.

No parameter schema in public metadata yet.

get_gradescope_course_by_nameFind a Gradescope course by name.1 params

Find a Gradescope course by name.

Parameters* required
course_namestring
The name of the Gradescope course to search for. Partial matches are supported.
get_gradescope_assignmentsRetrieve all assignments for a Gradescope course.1 params

Retrieve all assignments for a Gradescope course.

Parameters* required
course_idstring
The unique identifier for the Gradescope course. Can be found via get_gradescope_courses or get_gradescope_course_by_name.
get_gradescope_assignment_by_nameFind a Gradescope assignment by name.2 params

Find a Gradescope assignment by name.

Parameters* required
assignment_namestring
The name of the assignment to search for. Partial matches are supported.
course_idstring
The unique identifier for the Gradescope course. Can be found via get_gradescope_courses or get_gradescope_course_by_name.
get_cache_statsGet cache statistics for debugging purposes. Returns hit/miss counts and cache size.

Get cache statistics for debugging purposes. Returns hit/miss counts and cache size.

No parameter schema in public metadata yet.

clear_cacheClear all cached data. Use this if you need fresh data from Canvas or Gradescope.

Clear all cached data. Use this if you need fresh data from Canvas or Gradescope.

No parameter schema in public metadata yet.

Sponsors

Configuration

CANVAS_BASE_URL*

Canvas institution root URL (no /api/v1 suffix), e.g. https://your-institution.instructure.com

CANVAS_TOKEN*secret

Canvas personal access token (Account -> Settings -> Approved Integrations -> New Access Token)

Readme

Canvas LMS MCP Server (canvas-mcp)

CI PyPI Python License

Ask Claude about your Canvas courses, assignments, deadlines, modules, and grades from one place.

canvas-mcp is a local-first MCP server for Canvas LMS users (students, instructors, and MCP builders). It turns Canvas REST API actions into MCP tools that work from Claude Code, Claude Desktop, and other MCP-compatible clients.

Status: alpha. Single-user, no warranty, API surface may still shift. File issues if it breaks.

Who this is for


View the full README on GitHub

Details

Repository
github.com/admin978/canvas-mcp
Category
Design & Creative
Package
canvas-local-mcp
Transport
STDIO
Auth
Required
Registry
MCP registry, active

Related Design & Creative MCP servers

View all
1user0856 avatarSnapRenderuser0856/snaprender-integrationsGive AI agents eyes: screenshot any URL as PNG, JPEG, WebP or PDF, or read it as markdown.0stars
2alexalexalex222 avatarFrontend Design Loop MCPalexalexalex222/frontend-design-loop-mcpDesign-first MCP for coding agents that improves websites with screenshot-grounded iteration.2stars
3erajasekar avatarAI Diagram Makererajasekar/ai-diagram-maker-mcpGenerate software diagrams from natural language, code, ASCII, images, Mermaid.2stars
4philpof102-svg avatarMainstreetphilpof102-svg/mainstreetReputation oracle for AI agents on Base: SAFE/CAUTION/BLOCK + 0-100 score before you pay. x402+MCP2stars
5chrischall avatarCanvas Parent Mcpchrischall/canvas-parent-mcpCanvas LMS (Instructure) for Claude — courses, grades, assignments, planner, files1stars
6gluip avatarChart Canvasgluip/chart-canvasCreate interactive visualizations and query data sources (SQLite, CSV, Parquet, JSON)1stars