Skip to main content
Glama

List Submissions

list_submissions
Read-only

Lists every student's submission record for a single assignment, including non-submitters, with user ID, submitted time, score, and grade.

Instructions

List every submission record for one assignment.

Returns one record per student (user ID, submitted-at time, score, grade), including students who have not submitted. Text is opt-in and requires explicit manage_grades permission, just like get_student_submission. Existing client-layer anonymization still redacts bodies when ENABLE_DATA_ANONYMIZATION is on. Never returns attachments or comments; use get_rubric_assessment for rubric scores.

Input Schema

NameRequiredDescriptionDefault
include_bodyNoInclude plain text fenced as untrusted data (default False). Each body is limited to 12,000 input characters; the entire result is capped at 60,000 characters. Truncation and omitted records are marked. Use get_student_submission for individual records omitted by the total cap.
assignment_idYesCanvas assignment ID
course_identifierYesCourse code or Canvas ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.15.0
    • addedInput schema / properties / include_body
      Added value: +{
      +  "default": false,
      +  "description": "Include plain text fenced as untrusted data (default\nFalse). Each body is limited to 12,000 input characters; the\nentire result is capped at 60,000 characters. Truncation and\nomitted records are marked. Use get_student_submission for\nindividual records omitted by the total cap.",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changedv1.10.0
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "type": "object",
      -  "x-fastmcp-wrap-result": true
      -}New value: +null
  3. Changed9 schema fields changedv1.8.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / assignment_id / description
      Added value: +"Canvas assignment ID"
    • removedInput schema / properties / assignment_id / title
      Removed value: -"Assignment Id"
    • addedInput schema / properties / course_identifier / description
      Added value: +"Course code or Canvas ID"
    • removedInput schema / properties / course_identifier / title
      Removed value: -"Course Identifier"
    • removedInput schema / title
      Removed value: -"list_submissionsArguments"
    • removedOutput schema / properties / result / title
      Removed value: -"Result"
    • removedOutput schema / title
      Removed value: -"list_submissionsOutput"
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  4. Changed1 schema field changedv1.0.0
    • addedInput schema / title
      Added value: +"list_submissionsArguments"
  5. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint annotation: discloses that non-submitting students are included, that text is opt-in and gated behind explicit manage_grades permission, that client-layer anonymization still redacts bodies when ENABLE_DATA_ANONYMIZATION is on, and what is never returned. These are exactly the operational facts an agent needs before calling.

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-loaded with the core purpose, then layered with scope, permission, privacy, and exclusion facts in six tight sentences with no filler. The exclusion/alternative pointer is placed last where an agent checks it after deciding to call.

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?

No output schema exists, yet the description enumerates the returned fields (user ID, submitted-at, score, grade) and the inclusion of non-submitters, plus what is omitted. This is sufficient for an agent to call and interpret results correctly.

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 description coverage is 100%, so baseline is 3, but the description adds real semantics: text inclusion is opt-in, permission-gated, and subject to anonymization redaction. It does not restate the character caps or truncation behavior already covered by the include_body schema description.

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?

States a specific verb and resource ("List every submission record") and pins the scope to exactly one assignment with one record per student. It explicitly distinguishes itself from siblings by declaring what it never returns (attachments, comments) and naming get_rubric_assessment for rubric scores.

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?

Clear context for use (all submissions for one assignment, including non-submitters) and explicit routing to get_rubric_assessment for rubric data and get_student_submission for individual records. It does not give an explicit when-not condition against get_my_submission/get_my_submission_status, so it stops short of the top band.

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