Skip to main content
Glama

Create Assignment

create_assignment

Create a new assignment in a Canvas course by providing the course ID and title; optionally set due dates, points, grading type, submission types, and publication status.

Instructions

Create a new assignment in a course.

Input Schema

NameRequiredDescriptionDefault
nameYesAssignment name/title
due_atNoDue date in ISO 8601 format
lock_atNoLock date in ISO 8601 format
publishedNoWhether to publish immediately (default: False)
unlock_atNoAvailable date in ISO 8601 format
descriptionNoHTML description
grading_typeNoOne of: points, letter_grade, pass_fail, percent, not_graded
peer_reviewsNoEnable peer reviews
points_possibleNoMaximum points
submission_typesNoComma-separated types (online_text_entry, online_url, online_upload, discussion_topic, none, on_paper, external_tool)
course_identifierYesCourse code or Canvas ID
allowed_extensionsNoComma-separated file extensions (e.g., "pdf,docx,txt")
assignment_group_idNoAssignment group ID
automatic_peer_reviewsNoAuto-assign peer reviews

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. Changed33 schema fields changedv1.8.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / allowed_extensions / description
      Added value: +"Comma-separated file extensions (e.g., \"pdf,docx,txt\")"
    • removedInput schema / properties / allowed_extensions / title
      Removed value: -"Allowed Extensions"
    • addedInput schema / properties / assignment_group_id / description
      Added value: +"Assignment group ID"
    • removedInput schema / properties / assignment_group_id / title
      Removed value: -"Assignment Group Id"
    • addedInput schema / properties / automatic_peer_reviews / description
      Added value: +"Auto-assign peer reviews"
    • removedInput schema / properties / automatic_peer_reviews / title
      Removed value: -"Automatic Peer Reviews"
    • 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 / description / description
      Added value: +"HTML description"
    • removedInput schema / properties / description / title
      Removed value: -"Description"
    • addedInput schema / properties / due_at / description
      Added value: +"Due date in ISO 8601 format"
    • removedInput schema / properties / due_at / title
      Removed value: -"Due At"
    • addedInput schema / properties / grading_type / description
      Added value: +"One of: points, letter_grade, pass_fail, percent, not_graded"
    • removedInput schema / properties / grading_type / title
      Removed value: -"Grading Type"
    • addedInput schema / properties / lock_at / description
      Added value: +"Lock date in ISO 8601 format"
    • removedInput schema / properties / lock_at / title
      Removed value: -"Lock At"
    • addedInput schema / properties / name / description
      Added value: +"Assignment name/title"
    • removedInput schema / properties / name / title
      Removed value: -"Name"
    • addedInput schema / properties / peer_reviews / description
      Added value: +"Enable peer reviews"
    • removedInput schema / properties / peer_reviews / title
      Removed value: -"Peer Reviews"
    • addedInput schema / properties / points_possible / description
      Added value: +"Maximum points"
    • removedInput schema / properties / points_possible / title
      Removed value: -"Points Possible"
    • addedInput schema / properties / published / description
      Added value: +"Whether to publish immediately (default: False)"
    • removedInput schema / properties / published / title
      Removed value: -"Published"
    • addedInput schema / properties / submission_types / description
      Added value: +"Comma-separated types (online_text_entry, online_url, online_upload, discussion_topic, none, on_paper, external_tool)"
    • removedInput schema / properties / submission_types / title
      Removed value: -"Submission Types"
    • addedInput schema / properties / unlock_at / description
      Added value: +"Available date in ISO 8601 format"
    • removedInput schema / properties / unlock_at / title
      Removed value: -"Unlock At"
    • removedInput schema / title
      Removed value: -"create_assignmentArguments"
    • removedOutput schema / properties / result / title
      Removed value: -"Result"
    • removedOutput schema / title
      Removed value: -"create_assignmentOutput"
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  3. Addedv1.3.0

TDQS

C2.6/5.0
Behavior2/5

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

Annotations declare idempotentHint=false and destructiveHint=false, but notably omit readOnlyHint, so the description carries real weight and adds none of it. It does not warn that retrying will create duplicate assignments, does not state that the assignment starts unpublished by default, and says nothing about permissions or side effects on the gradebook.

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?

A single short sentence with no filler, so it is concise and front-loaded. The low absolute size reflects under-specification rather than padding, but as far as structure goes it wastes nothing.

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

Completeness2/5

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

For a 14-parameter mutation with no output schema and no readOnly hint, one sentence is far too thin. An agent gets no picture of what the created assignment returns, what happens with unpublished defaults, or how course_identifier is resolved when it can be a code or a Canvas ID.

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 each of the 14 parameters carries its own description (formats, enums for grading_type and submission_types, defaults), so the schema does the heavy lifting. The description adds no meaning beyond it, which is the expected baseline of 3 here.

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

Purpose3/5

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

The sentence identifies a verb and resource ('Create a new assignment') and adds scope ('in a course'), so the basic purpose is clear. However, it is close to a restatement of the name/title and does nothing to separate it from sibling mutations such as update_assignment or delete_assignment_with_confirmation.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus update_assignment, when creation should be avoided, or what prerequisites (instructor role, course manage permission) are needed. The agent must infer all of this from the name alone.

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