canvas-parent-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVAS_NAME | No | Optional name for Canvas instance (defaults to host portion of base URL) | |
| CANVAS_TOKEN | No | Personal access token for Canvas | |
| CANVAS_BASE_URL | Yes | The base URL of your Canvas instance (e.g., https://cms.instructure.com) | https://cms.instructure.com |
| CANVAS_PASSWORD | No | Canvas password (direct accounts only) | |
| CANVAS_USERNAME | No | Canvas username (direct accounts only) | |
| CANVAS_CLIENT_ID | No | OAuth client ID | |
| CANVAS_CLIENT_SECRET | No | OAuth client secret | |
| CANVAS_REFRESH_TOKEN | No | OAuth refresh token | |
| CANVAS_DISABLE_FETCHPROXY | No | Set to '1' to disable fetchproxy fallback | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| canvas_healthcheckA | Resolves the credential the way real tools do, then makes one authenticated request to canvas. Reports which source supplied the credential, whether canvas accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a canvas-side problem'. Read-only; never returns the credential itself. Call this when a real tool fails and you want to know which hop broke. |
| canvas_get_profileA | Get the logged-in user's Canvas profile (id, name, primary_email, login_id, locale, time_zone). Useful first call to confirm credentials. |
| canvas_list_observeesA | List students linked to your Canvas observer account. Returns an empty array for plain student tokens. |
| canvas_list_coursesB | List active Canvas courses (with course-level grades, total scores, current grading period scores, and term). |
| canvas_get_courseB | Get a single Canvas course with its syllabus, teachers, and term. |
| canvas_list_assignmentsB | List a course's assignments (with the user's submission inline). Supports the standard Canvas |
| canvas_list_missing_submissionsA | List past-due unsubmitted assignments for the user (or a linked observee). For an observee, courseIds is required. |
| canvas_get_submissionB | Get a single submission with rubric assessment and grader comments. userId defaults to 'self'. |
| canvas_list_recent_submissionsB | List recently graded submissions in a course. Defaults to a 14-day window for the calling user. |
| canvas_list_enrollmentsB | List active student enrollments with per-course grades (current_score, final_score, current_grade, final_grade, current grading period info). |
| canvas_list_calendar_eventsB | List Canvas calendar events or assignments across selected contexts (courses/users). |
| canvas_list_upcoming_eventsA | List the calling user's upcoming events (Canvas's curated next-7-days view). |
| canvas_list_planner_itemsC | List planner items (assignments + announcements + planner notes + calendar events) for the user or a linked observee. |
| canvas_list_announcementsB | List announcements across one or more courses. |
| canvas_list_conversationsC | List Canvas inbox conversations. Optional |
| canvas_get_conversationA | Get a full Canvas conversation thread with all messages. Read-only: does not mark the conversation as read. |
| canvas_list_discussion_topicsC | List discussion topics for a course (read-only). |
| canvas_list_course_filesA | List a course's files (metadata only — use canvas_download_file with the |
| canvas_download_fileA | Download a Canvas file to disk. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Most tools target distinct resources or views (courses, assignments, submissions, events, conversations, files), and descriptions clarify differences. Some overlap exists between canvas_list_calendar_events, canvas_list_upcoming_events, and canvas_list_planner_items, which could cause mild misselection, but each has a distinguishable scope.
Every tool follows a consistent canvas_verb_noun pattern (canvas_list_courses, canvas_get_course, canvas_download_file, etc.). The convention is predictable and readable throughout.
19 tools for a Canvas LMS integration is reasonable given the breadth of read-oriented operations and one health check. It is on the higher side but still well-scoped for the domain.
The surface is heavily read-only: it covers listing, getting, and downloading, but lacks write operations like creating submissions, posting discussions, sending conversations, or managing assignments. For a student/observer Canvas server this may be intentional, but it leaves notable gaps for workflow completion.