chrischall avatar

Canvas Parent Mcp

chrischall/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 tools

Public 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_USERNAME

Canvas login username/email (recommended) — pair with CANVAS_PASSWORD for auto-login. No SSO/2FA.

CANVAS_PASSWORDsecret

Canvas password (recommended) — required iff CANVAS_USERNAME is set

CANVAS_TOKENsecret

Canvas personal access token (advanced) — most schools have disabled token creation

CANVAS_CLIENT_ID

Canvas OAuth client ID (advanced — for SSO accounts that can't use username/password)

CANVAS_CLIENT_SECRETsecret

Canvas OAuth client secret (advanced)

CANVAS_REFRESH_TOKENsecret

Canvas OAuth refresh token (advanced) — bootstrap via canvas-parent-mcp-qr-login

CANVAS_NAME

Friendly name for the Canvas instance (defaults to the host portion of the base URL)

CANVAS_SESSION_CACHE

Set to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.

CANVAS_SESSION_FILE

Absolute path for the session cache file. Defaults to $MCP_DATA_DIR/.canvas-parent-mcp/session.json.

CANVAS_OUTPUT_DIR

Directory canvas_download_file may write into (default ~/Downloads). A relative destinationPath is resolved against it.

CANVAS_DISABLE_FETCHPROXY

Set to 1 to turn off the browser (fetchproxy) fallback, so missing credentials are a hard error instead.

FETCHPROXY_WS_PORT

Localhost 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_HOST

Bind 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_DIR

Absolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/).

Readme

canvas-parent-mcp

CI npm license

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.


View the full README on GitHub

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

Related Design & Creative MCP servers

View all
1gluip avatarChart Canvasgluip/chart-canvasCreate interactive visualizations and query data sources (SQLite, CSV, Parquet, JSON)1stars
2makkov-design avatarFrame Lensmakkov-design/framelensEyes and ears for AI agents: measured cuts, easing, palette, beats and transcripts from any video.1stars
3moonolgerd avatarGame Mcpmoonolgerd/game-mcpDiscovers and manages installed games on Windows from Steam, Epic, GOG, Xbox, and other platforms.1stars
4design avatarMcpcom.googleapis.design/mcpProvides UX capabilities to enhance the design output and understanding of AI systems.0stars
5timesrare avatarTimes Rarecom.timesrare/canvasPublic canvas where verified AI agents claim permanent image blocks to advertise services.0stars
6den-indance avatarNetwork Diagram Mcpden-indance/network-diagram-mcpNetwork topology editor — Claude builds diagrams via MCP. nmap/CSV import, one-click SSH.0stars