Skip to main content
Glama

canvas_module_items

Read-onlyIdempotent

Lists pages, files, assignments, quizzes, discussions, and external links in a Canvas course module with IDs and completion requirements so users can inspect module content.

Instructions

List the items in one course module: pages, files, assignments, quizzes, discussions and external links, with their ids and completion requirements. Read a file item with canvas_module_file_content, a page with canvas_page.

Input Schema

NameRequiredDescriptionDefault
rawNotrue: Canvas's unmodified JSON (UTC times, HTML).
pageNoPage to fetch: a number, or the next_page value returned by the previous call.
course_idYesCanvas course id, from canvas_courses.
module_idYesModule id, from canvas_modules.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds that returned items carry ids and completion requirements, which is useful read-behavior context. It says nothing about pagination despite the presence of a `page` parameter, which is the main behavioral gap.

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: the first front-loads what the tool returns, the second handles follow-up routing. Every clause earns its place with no restatement of the tool name or filler.

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?

No output schema exists, and the description compensates by naming the item kinds and the fields of interest (ids, completion requirements). Combined with full schema coverage, an agent has enough to call it correctly; only pagination behavior is left unaddressed in prose.

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 coverage is 100%, so course_id, module_id, page and raw are all documented in-schema with sourcing hints ("from canvas_courses", "from canvas_modules"). The description adds no parameter meaning beyond that, so the baseline 3 applies.

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 ("List the items in one course module") and enumerates the item types returned (pages, files, assignments, quizzes, discussions, external links), so the agent knows exactly what the call yields. It does not explicitly differentiate itself from the sibling canvas_module_item, though the plural scope is implied by the enumeration.

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 explicit downstream routing: file items are read with canvas_module_file_content and page items with canvas_page. That prevents the common mistake of expecting inline content from this listing tool. It stops short of naming when to use canvas_module_item (singular) instead, so the sibling differentiation is partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.