Skip to main content
Glama

Assign Peer Review

assign_peer_review

Assigns a peer review to a student for a specific Canvas assignment, requiring the reviewee to have an existing submission record. Refuses to create one when missing.

Instructions

Manually assign a peer review to a student for a specific assignment.

Refuses if the reviewee has no submission record on the assignment (for example, a student not assigned to it); never creates one.

Input Schema

NameRequiredDescriptionDefault
reviewee_idYesUser ID of the student whose submission will be reviewed
reviewer_idYesUser ID of the student who will review
assignment_idYesCanvas assignment ID
course_identifierYesCourse code or Canvas ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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
  2. Changed13 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"
    • addedInput schema / properties / reviewee_id / description
      Added value: +"User ID of the student whose submission will be reviewed"
    • removedInput schema / properties / reviewee_id / title
      Removed value: -"Reviewee Id"
    • addedInput schema / properties / reviewer_id / description
      Added value: +"User ID of the student who will review"
    • removedInput schema / properties / reviewer_id / title
      Removed value: -"Reviewer Id"
    • removedInput schema / title
      Removed value: -"assign_peer_reviewArguments"
    • removedOutput schema / properties / result / title
      Removed value: -"Result"
    • removedOutput schema / title
      Removed value: -"assign_peer_reviewOutput"
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  3. Changed1 schema field changedv1.0.0
    • addedInput schema / title
      Added value: +"assign_peer_reviewArguments"
  4. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare idempotentHint=false and destructiveHint=false; the description adds genuine value by disclosing the failure mode (no submission record → refusal) and a non-obvious side-effect guarantee ("never creates one"). It does not cover permission requirements or what happens on a duplicate assignment.

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?

Two sentences with zero waste; the action is front-loaded and the caveat follows. Nothing is repeated from the title or schema.

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 four-required-parameter mutation with no output schema, the definition covers purpose, precondition, and failure behavior. Minor gaps remain: no statement of required permissions or of the expected result of a successful assignment (Canvas peer review object).

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%, so all four parameters are already documented in the schema; baseline 3 applies. The description only indirectly clarifies reviewee_id semantics through the submission-record precondition and adds nothing about formats for course_identifier or assignment_id.

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: "Manually assign a peer review to a student for a specific assignment." The word "Manually" distinguishes it from auto-assignment flows and from the read-only peer review siblings (list_peer_reviews, get_peer_review_assignments), though it never names an alternative explicitly.

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 a concrete precondition/exclusion: refuses when the reviewee has no submission record on the assignment. That is a real when-not condition rather than implied usage. It stops short of naming an alternative path (e.g., using a bulk/auto assignment tool) for the refusal case.

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