Skip to main content
Glama

Update Module Item

update_module_item
DestructiveIdempotent

Edit an existing module item in place: rename it, repoint an ExternalUrl/ExternalTool item, reposition or re-indent it, publish/unpublish it, or move it to another module.

Instructions

Edit an existing module item in place: rename it, repoint an ExternalUrl/ExternalTool item, reposition or re-indent it, publish/unpublish it, or move it to another module. ExternalUrl items exist only as module items, so a stale link carried in by a course copy can only be fixed here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleNoNew title for the module item
indentNoNew indent level (0 = flush left)
item_idYesThe Canvas module item ID
new_tabNoWhether an external item opens in a new tab
positionNoNew 1-based position within the module
course_idYesThe Canvas course ID
module_idYesThe Canvas module ID the item currently belongs to
publishedNoWhether the item is published
external_urlNoNew URL for an ExternalUrl or ExternalTool item
target_module_idNoMove the item to this module ID (omit to leave it where it is)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.18.15

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=false... rather, destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered structurally. The description adds useful context (in-place editing, cross-module moves, the ExternalUrl edge case) but does not disclose whether omitted fields are preserved or cleared, which matters for a partial-update mutation whose idempotency is asserted.

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, front-loaded with the enumerated capabilities, and the second sentence carries a genuine justification for the tool's existence rather than filler. Nothing is redundant or repeatable boilerplate.

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 10-parameter mutation with no output schema, the definition covers scope, the field-to-intent mapping, and one important edge case, while annotations carry the destructive/idempotent/open-world profile. The remaining gap — partial-update semantics and any permission prerequisites — keeps it from being fully complete.

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 the baseline is 3, but the description maps fields to intent beyond the per-property docstrings: external_url/new_tab are scoped to 'ExternalUrl/ExternalTool' items, position/indent map to repositioning, target_module_id to cross-module moves, and published to publish state. This intent mapping adds meaning over the raw schema text.

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 names a specific verb (edit/update) and resource (module item) and enumerates the distinct operations it supports: rename, repoint external items, reposition/re-indent, publish/unpublish, and move between modules. This granularity ('module item' vs the sibling 'update_module') lets an agent pick the right tool without opening the schema.

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?

It gives a concrete usage scenario — fixing a stale ExternalUrl link carried in by a course copy — and notes that such items exist only as module items, which is a clear cue for when this tool is the only option. However, it never explicitly contrasts itself with update_module, create_module_item, or delete_module_item, so the when-not-to-use boundary is left implicit.

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