Skip to main content
Glama

canvas_grade_submission

Post a grade, feedback comment, or excused status to a Canvas student submission. Confirm the student, assignment, and grade before writing to the live gradebook.

Instructions

Post a grade and/or a comment to a submission. MUTATES STUDENT RECORDS.

Writes to the live gradebook immediately and cannot be undone from here. ALWAYS show the instructor the exact student, assignment, grade, and comment text and get an explicit go-ahead before calling. Never call this to "try" something or as part of exploratory reasoning.

Args: assignment_id: numeric assignment id. user_id: numeric Canvas user id of the student. grade: points ("18"), percentage ("88%"), or a letter grade. Omit to post a comment only. comment: comment posted alongside the grade; the student sees it. excused: True to excuse the student from the assignment entirely. course_id: numeric course id; defaults to CANVAS_DEFAULT_COURSE_ID.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
gradeNo
commentNo
excusedNo
user_idYes
course_idNo
assignment_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full behavioral burden and does so well: 'MUTATES STUDENT RECORDS', writes to the live gradebook immediately, and cannot be undone from here. It also discloses that the comment is visible to the student and that course_id defaults to CANVAS_DEFAULT_COURSE_ID.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the destructive warning before the mechanics, then organizes parameters in a clean Args block. Given 0% schema coverage, every line of the parameter documentation earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a six-parameter mutation tool with no annotations, the description covers safety, side effects, defaults, and every argument's semantics — nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: all six parameters are documented, including grade formats ('18', '88%', letter), the omit-to-comment-only behavior, excused semantics, and the course_id default. This adds substantial meaning beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Post a grade and/or a comment to a submission') that an agent can act on immediately. It does not, however, differentiate itself from the sibling canvas_bulk_grade, which an agent must disambiguate against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating conditions: always show the instructor the exact student/assignment/grade/comment and get an explicit go-ahead, and never call it to 'try' something. Strong guidance, but it covers confirmation workflow rather than when to choose this tool over canvas_bulk_grade.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.