Skip to main content
Glama

Score Quiz Question

score_quiz_question
DestructiveIdempotent

Set the score and an optional feedback comment for one question in one student's Classic quiz submission, overwriting any existing score for that question on the chosen attempt — it replaces the question's recorded score rather than adding…

Instructions

Set the score and an optional feedback comment for one question in one student's Classic quiz submission, overwriting any existing score for that question on the chosen attempt — it replaces the question's recorded score rather than adding to it, so calling again with the same score and comment leaves the submission unchanged. Omit attempt to score the latest attempt. Find submission_id with list_quiz_submissions and question_id with list_quiz_questions or get_quiz_question_responses. Returns { success: true }; Canvas does not hand back the updated submission to this endpoint. Requires grading permission in the course.

Input Schema

NameRequiredDescriptionDefault
scoreYesThe score to assign
attemptNoQuiz attempt number to score (omit for latest)
commentNoOptional feedback comment
quiz_idYesThe Canvas quiz ID
course_idYesThe Canvas course ID
question_idYesThe Canvas quiz question ID
submission_idYesThe Canvas quiz submission ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv1.18.15
    • addedInput schema / properties / course_id / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / course_id / type
      Removed value: -"number"
    • addedInput schema / properties / question_id / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / question_id / type
      Removed value: -"number"
    • addedInput schema / properties / quiz_id / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / quiz_id / type
      Removed value: -"number"
    • addedInput schema / properties / submission_id / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / submission_id / type
      Removed value: -"number"
  2. Changed1 schema field changedv1.18.11
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. First observedv1.18.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructive, idempotent and openWorld, and the description goes further: the write replaces rather than accumulates the recorded score, re-calling with identical values is a no-op, and the endpoint returns only { success: true } rather than the updated submission. That last point prevents a real agent mistake (assuming a full object comes back), and the grading-permission requirement is disclosed.

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

Conciseness4/5

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

The overwrite-vs-add and idempotency facts are front-loaded, and every later sentence supplies a distinct operational detail (ID discovery, return shape, permission). The opening sentence is long and parenthesis-heavy, packing several clauses with em dashes, so it is slightly harder to parse than it needs to be.

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?

For a 7-parameter mutation with no output schema, the description covers everything an agent needs: what it changes, how repeated calls behave, which attempts are affected by default, where the IDs come from, what comes back, and what authorization is required. No meaningful gap remains.

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 earns above baseline by explaining the overwrite semantics of score, the optionality and feedback role of comment, and where to obtain submission_id and question_id, which the schema descriptions do not cover. It repeats the schema's 'omit for latest' note on attempt rather than adding to it, keeping this short of a 5.

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

Purpose5/5

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

The description states a precise verb and resource: set the score (plus optional comment) for one question in one student's Classic quiz submission. The scope is narrowed to a single question on a single attempt, which cleanly separates it from grade_submission and other grading siblings. There is no ambiguity about what the call mutates.

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

Usage Guidelines5/5

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

It explicitly routes the agent to the right sources for the two opaque IDs — list_quiz_submissions for submission_id, list_quiz_questions or get_quiz_question_responses for question_id. It also states the default behavior (omit attempt to score the latest attempt) and names the permission prerequisite. An agent can sequence the calls without 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