
Canvas Parent Mcp
Connects Claude to Canvas LMS (Instructure) with 18 read-only tools covering courses, assignments, submissions, grades, planner items, announcements, conversations, and files. Designed for parent observers and students checking their own data. Supports four auth modes: personal access tokens, OAuth refresh tokens, username/password session scraping, or the fetchproxy browser extension that reads your existing Canvas session cookies. The OAuth flow cleverly bootstraps credentials by hijacking the mobile app's QR login endpoint. All API calls go direct to Canvas once authenticated. Scoped identically to the author's Infinite Campus MCP, so you get consistent tooling across different LMS platforms if your district uses both systems.
- GitHub stars
- 1
- tools
- 18
- auth
- Secret needed
- transport
- STDIO
- env vars
- 15
- last updated
- Nov 11, 2026
Tools
18 toolsPublic tool metadata for what this MCP can expose to an agent.
canvas_get_profileProfile
Profile
No parameter schema in public metadata yet.
canvas_list_observeesObservees
Observees
No parameter schema in public metadata yet.
canvas_list_coursesCourses
Courses
No parameter schema in public metadata yet.
canvas_get_courseCourses
Courses
No parameter schema in public metadata yet.
canvas_list_assignmentsAssignments
Assignments
No parameter schema in public metadata yet.
canvas_list_missing_submissionsAssignments
Assignments
No parameter schema in public metadata yet.
canvas_get_submissionSubmissions
Submissions
No parameter schema in public metadata yet.
canvas_list_recent_submissionsSubmissions (default 14d window)
Submissions (default 14d window)
No parameter schema in public metadata yet.
canvas_list_enrollmentsGrades
Grades
No parameter schema in public metadata yet.
canvas_list_calendar_eventsCalendar
Calendar
No parameter schema in public metadata yet.
canvas_list_upcoming_eventsCalendar
Calendar
No parameter schema in public metadata yet.
canvas_list_planner_itemsPlanner
Planner
No parameter schema in public metadata yet.
canvas_list_announcementsAnnouncements
Announcements
No parameter schema in public metadata yet.
canvas_list_conversationsConversations
Conversations
No parameter schema in public metadata yet.
canvas_get_conversationConversations
Conversations
No parameter schema in public metadata yet.
canvas_list_discussion_topicsDiscussions
Discussions
No parameter schema in public metadata yet.
canvas_list_course_filesFiles
Files
No parameter schema in public metadata yet.
canvas_download_fileFiles
Files
No parameter schema in public metadata yet.
Sponsors
Configuration
CANVAS_BASE_URL*Canvas instance base URL, e.g. https://cms.instructure.com
CANVAS_USERNAMECanvas login username/email (recommended) — pair with CANVAS_PASSWORD for auto-login. No SSO/2FA.
CANVAS_PASSWORDsecretCanvas password (recommended) — required iff CANVAS_USERNAME is set
CANVAS_TOKENsecretCanvas personal access token (advanced) — most schools have disabled token creation
CANVAS_CLIENT_IDCanvas OAuth client ID (advanced — for SSO accounts that can't use username/password)
CANVAS_CLIENT_SECRETsecretCanvas OAuth client secret (advanced)
CANVAS_REFRESH_TOKENsecretCanvas OAuth refresh token (advanced) — bootstrap via canvas-parent-mcp-qr-login
CANVAS_NAMEFriendly name for the Canvas instance (defaults to the host portion of the base URL)
CANVAS_SESSION_CACHESet to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.
CANVAS_SESSION_FILEAbsolute path for the session cache file. Defaults to $MCP_DATA_DIR/.canvas-parent-mcp/session.json.
CANVAS_OUTPUT_DIRDirectory canvas_download_file may write into (default ~/Downloads). A relative destinationPath is resolved against it.
CANVAS_DISABLE_FETCHPROXYSet to 1 to turn off the browser (fetchproxy) fallback, so missing credentials are a hard error instead.
FETCHPROXY_WS_PORTLocalhost port of the fetchproxy concentrator the ContextMint Bridge extension connects to (default 37149). Every MCP on one machine shares it, so move it for all of them or not at all.
FETCHPROXY_WS_HOSTBind interface for the fetchproxy concentrator, a literal IP only (default 127.0.0.1). Keep on loopback; it exists for hosted deployments that run each MCP in its own network namespace.
FETCHPROXY_IDENTITY_DIRAbsolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/).
Readme
canvas-parent-mcp
MCP server for Canvas LMS (Instructure), scoped for parent observers and student self-access. Targets https://cms.instructure.com by default but works against any Canvas instance.
Mirrors the read-only parent-portal scope of sibling infinitecampus-mcp. Users interact via the canvas_* tool prefix.
Tools
18 tools across profile, observees, courses, assignments, submissions, grades, calendar, planner, announcements, conversations, discussions, and files.
Details
- Repository
- github.com/chrischall/canvas-parent-mcp
- Category
- Design & Creative
- Package
canvas-parent-mcp- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active
More from chrischall
- Gogcli Mcp Classroom1
- Gogcli Mcp Drive1
- Gogcli Mcp Slides1
- Honeybook Mcp1
- Opentable Mcp1
- Compass Mcp
- Evite Mcp
- Gemini Mcp
- Hellofresh Mcp
- Homes Mcp
- Signupgenius Mcp
- Zillow Mcp
- Musicbrainz Mcp
- Skylight Mcp23
- Ofw Mcp15
- Redfin Mcp3
- Zola Mcp3
- Infinitecampus Mcp5
- Resy Mcp2
- Creditkarma Mcp1
- Gogcli Mcp Docs1
- Gogcli Mcp Sheets1
- Onehome Mcp1
- Setlist Mcp1