Skip to main content
Glama

Get Quiz Question Responses

get_quiz_question_responses
Read-only

Retrieve student responses for quiz questions in a Canvas course, optionally filtered by question, to identify items needing manual grading and points.

Instructions

Review every student's answer to one or all questions in a Classic Quiz, pivoted by question instead of by student — for grading essay/short-answer/file-upload questions consistently across a class instead of paging through SpeedGrader one student at a time. Classic Quizzes only (quiz_type: assignment, practice_quiz, graded_survey, survey) — New Quizzes exposes responses through a different API. Omit question_id to get every question; provide it to scope to one. Each question reports needs_manual_grading (true for essay and file-upload questions) and points_possible. Scans one Canvas API call per completed or pending-review submission; a failed per-submission fetch is recorded in submissions_failed rather than aborting the whole call. When CANVAS_PSEUDONYMIZE_STUDENTS is enabled, student names are replaced with stable pseudonyms.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
quiz_idYesThe Canvas quiz ID (Classic Quizzes only)
course_idYesThe Canvas course ID
question_idNoScope the result to a single question ID (from list_quiz_questions). Omit to return every question with every student's response.
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds valuable context: the 'needs_manual_grading' field for certain question types, the per-submission API call behavior with partial failure handling (submissions_failed), and pseudonymization under a config flag. These details go beyond the annotations, enhancing the agent's understanding of output and edge cases. No contradictions with annotations.

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 description is about 160 words, which is longer than the terse example but every sentence adds meaningful information. It is front-loaded with the main purpose and then details usage constraints and behavioral nuances. It could be slightly trimmed, but overall it is efficient and well-structured.

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?

With no output schema, the description compensates by describing key output fields (needs_manual_grading, points_possible), error handling, and environmental behavior (pseudonymization). Combined with the rich annotations and schema, it provides a complete picture for safe invocation and interpretation.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains question_id's optional nature and filtering behavior. The description reiterates this but adds no new semantic details beyond what the schema provides. Thus, baseline score of 3 is appropriate.

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 clearly states the tool's purpose: to review student answers to quiz questions, pivoted by question, for Classic Quizzes. It explicitly differentiates from alternatives like SpeedGrader and mentions the specific quiz types it supports, making the purpose unambiguous and distinct from sibling tools.

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?

Provides explicit when-to-use guidance: for grading essay/short-answer/file-upload questions across a class, and when-not-to-use: New Quizzes (different API). It also clarifies the optional question_id parameter's role in scoping, which guides correct invocation.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bruchris/canvas-lms-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server