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_coursesA | List active Canvas courses (with course-level grades, total scores, current grading period scores, and term). |
| canvas_get_courseA | Get a single Canvas course with its syllabus, teachers, and term. |
| canvas_list_assignmentsA | 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_submissionA | Get a single submission with rubric assessment and grader comments. userId defaults to 'self'. |
| canvas_list_recent_submissionsA | 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_itemsA | List planner items (assignments + announcements + planner notes + calendar events) for the user or a linked observee. |
| canvas_list_announcementsA | List announcements across one or more courses. |
| canvas_list_conversationsA | 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 map to distinct Canvas resources (files, discussions, courses, assignments, submissions, conversations, announcements). However, canvas_list_calendar_events, canvas_list_upcoming_events, and canvas_list_planner_items overlap meaningfully in what they return, which could mislead an agent.
The canvas_ verb_noun pattern is consistent across nearly every tool (list_*, get_*, download_*). Only canvas_healthcheck breaks the verb_noun convention, as it uses a noun instead of an action-object pair.
Nineteen tools is on the heavier side but reasonable for a Canvas integration covering courses, assignments, submissions, files, discussions, conversations, calendar, and planner data. Each tool addresses a distinct resource or workflow, so the count feels slightly large rather than bloated.
The read-only surface is quite comprehensive for a parent/observer use case: courses, grades, missing submissions, assignments, files, discussions, announcements, conversations, calendar, and planner items are all covered. Minor gaps exist (e.g., modules, pages, or quiz-specific endpoints), but agents can handle the main monitoring workflows without dead ends.