canvas-grader-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVAS_BASE_URL | No | Your Canvas instance URL (e.g. https://canvas.instructure.com) | |
| CANVAS_API_TOKEN | No | Your Canvas access token |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiC | The Canvas account and instance this server is connected to. |
| list_grading_coursesB | Courses where you are a teacher/TA (or similar) and have permission to grade. |
| list_assignmentsC | Assignments in a course, with how many submissions still need grading. |
| get_assignmentB | Everything needed to grade an assignment: description, rubric, points, due dates and late policy. |
| list_submissionsC | Students' submissions for an assignment with status, lateness and current score. |
| get_submissionC | A student's submitted work as text (text entry, URL, PDF/DOCX/code/notebook/.sb3 files, linked Google Docs), QR-code links, lateness, previous comments and grade. |
| get_submission_imagesB | Screenshots, photos and scanned pages from a student's submitted files, as images. PDF pages that contain pictures are rendered whole (so screenshots keep their captions); images embedded in Word files and uploaded image files are returned directly. Duplicates are skipped. |
| find_shared_filesB | Groups of students who submitted byte-identical files (team or copied work), so identical work can be graded consistently. Downloads every submission's non-video attachments to the local cache. |
| set_grading_guidelinesA | Save grading guidelines and a manual late-penalty scale for a course (stored only on this computer). |
| get_grading_guidelinesC | The saved grading guidelines and late-penalty tiers for a course. |
| stage_gradeA | Save a proposed grade/comment locally (nothing is sent to Canvas). Review with list_staged, send with post_staged_grades. |
| list_stagedB | Grades and comments staged locally but not yet posted to Canvas. |
| discard_stagedA | Delete staged grades (all for the assignment, or only the given students). Does not touch Canvas. |
| post_staged_gradesA | Send staged grades/comments to Canvas (they appear in SpeedGrader). Without confirm=true, only previews. |
| post_commentC | Post a feedback comment on a student's submission without changing the grade. |
| open_in_speedgraderB | Open SpeedGrader in the user's browser (optionally on a specific student). |
| clear_downloaded_filesA | Delete locally cached copies of student submission files. |
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 17 tools
Most tools have clearly distinct purposes (listing vs. getting vs. staging vs. posting), and the stage/post/discard lifecycle is well separated. Minor potential confusion exists between get_submission, get_submission_images, and list_submissions, and between the two guideline tools, but descriptions disambiguate them.
Nearly all tools use a consistent snake_case verb_noun pattern (list_assignments, get_submission, stage_grade, post_staged_grades). The only real deviation is whoami, which breaks the verb_noun convention but is still readable and unambiguous.
17 tools is slightly heavy but justified by a genuine multi-stage grading workflow (courses, assignments, submissions, media, caching, staging, posting). Each tool maps to a distinct step with little redundancy.
The surface covers the full grading lifecycle: discover courses/assignments, read submissions and images, manage guidelines, stage/discard/post grades, comment, and open SpeedGrader. Minor gaps like rubric-score retrieval or bulk filtering exist but core workflows have no dead ends.