Skip to main content
Glama
Canvas LMS MCP – Remote Edition

Canvas LMS MCP – Remote Edition

Submit Annotation Assignment

submit_annotation_assignment
Destructive

Submit a completed student annotation assignment in Canvas after marking up the document. Includes a dry-run preview and confirmation step before the irreversible hand-in.

Instructions

Hand in a student-annotation assignment (where you mark up a document inside Canvas). Do the annotating in Canvas first; this submits what is there. [IRREVERSIBLE: call without confirm=true first to preview, then re-call with confirm=true. Apps that can ask the user directly will show a confirmation instead.]

Input Schema

NameRequiredDescriptionDefault
commentNoComment text, visible to your instructor.
confirmNoMust be true to actually execute. Omit or set false to get a dry-run preview first.
course_idYesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
assignment_idYesAssignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.3.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, but the description goes further: it labels the operation IRREVERSIBLE, prescribes a two-call preview-then-confirm protocol, and notes that some apps surface their own confirmation dialog. That is exactly the extra context a mutation tool needs and cannot be derived from the annotations alone.

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?

Three short sentences, front-loaded with the purpose, then the prerequisite, then the irreversibility warning. No filler and the most important safety information comes before any procedural detail.

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

Completeness4/5

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

For a destructive, non-idempotent submission with a fully documented schema and no output schema, the description covers purpose, prerequisite, and safety. It does not say what the tool returns on success/failure or whether previously attached annotations are included, which are minor gaps given the mutation is irreversible.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description still adds meaning by explaining the confirm protocol as a workflow (preview first, then re-call) rather than a bare flag, and it clarifies that the comment is visible to the instructor. The course_id and assignment_id discovery hints live in the schema, not the description.

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?

The description names a specific verb and resource ('Hand in a student-annotation assignment') and immediately qualifies the resource as 'where you mark up a document inside Canvas', which separates it from the text/url/file submission siblings. It does not explicitly name those siblings, so a 4 rather than a 5.

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?

'Do the annotating in Canvas first; this submits what is there' gives a clear precondition, and the confirm/dry-run instruction tells the agent exactly how to sequence calls. It never explicitly contrasts itself with submit_assignment_text, submit_assignment_url, or submit_assignment_file, so alternatives are left to inference.

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

Deploy Server

Other Tools