Skip to main content
Glama

Create Assignment Group

create_assignment_group
Destructive

Create a gradebook category such as Homework or Exams in a Canvas course and return the new group with its ID, name, position and weight. Use it to build weighted grading categories.

Instructions

Create a new assignment group (a gradebook category such as Homework or Exams) in a course and return the created Canvas assignment group object, including its id, name, position and group_weight. Not idempotent: each call makes another group even when the name matches an existing one, so read list_assignment_groups first and use update_assignment_group to change a group that already exists; the new group starts empty, and assignments move into it through create_assignment or update_assignment's assignment_group_id. group_weight is the group's percent of the final grade, and it changes nothing unless the course is set to weight its final grade by assignment group — a course setting update_course can turn on. Canvas coerces a missing or non-numeric group_weight to 0. Drop rules are deliberately not accepted here: Canvas validates them against the number of active assignments in the group, which is 0 for a group that does not exist yet, so set them with update_assignment_group once the group has assignments. Requires permission to manage assignments in the course.

Input Schema

NameRequiredDescriptionDefault
nameNoThe assignment group name (e.g. Homework)
positionNo1-based position of this group relative to the other assignment groups
course_idYesThe Canvas course ID
group_weightNoThe group's percent of the total grade (e.g. 40 for 40%)
sis_source_idNoThe SIS source ID for the group

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.18.20

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare openWorldHint and destructiveHint; the description goes far beyond with non-idempotency ('each call makes another group even when the name matches'), the empty-on-creation state, group_weight being inert unless the course weights by group, Canvas coercing bad weights to 0, the deliberate omission of drop rules with the reason, and the required permission.

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?

Front-loaded with purpose and return value before the caveats, and every sentence carries information. It is a single dense block of prose covering many clauses, which is harder to scan than a short bulleted caveat list, but nothing is padding.

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?

Covers everything an agent needs for a 5-param mutation tool with no output schema: what is returned, idempotency risk, prerequisites (course weighting setting), permission requirement, and an explicit rationale for a missing capability. 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 baseline is 3; the description nonetheless adds real meaning for group_weight (percent of final grade, conditionally effective, coerced to 0 when missing/non-numeric) and explains why a drop-rule parameter is absent. name, position and sis_source_id get no added semantics, keeping it 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?

States a specific verb and resource plus a parenthetical definition ('a gradebook category such as Homework or Exams') and the return shape (id, name, position, group_weight). It explicitly distinguishes itself from list_assignment_groups and update_assignment_group, so an agent can route without opening a schema.

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?

Gives explicit when-to-use and when-NOT-to-use guidance: read list_assignment_groups first, then use update_assignment_group for an existing group, and use create_assignment/update_assignment's assignment_group_id to populate it. It also names the exact alternative for drop rules.

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