Skip to main content
Glama

Module progress

get_course_modules
Read-only

Retrieve a Canvas course's modules with their lock status and completion requirements, so students can identify what to study or finish next. Filter out completed modules when needed.

Instructions

Your progress through the modules of one Canvas course. Each module shows its state (locked, unlocked, started or completed) and each item shows what Canvas requires of you (view it, submit it, contribute or reach a minimum score) and whether you have done it, so you can see what to study next. Pass course_id as the Canvas course ID or as the course name. Set only_open to true to hide completed modules. Example: "Which modules do I still have to finish in my Canvas Networking course?"

Input Schema

NameRequiredDescriptionDefault
course_idYesCanvas course ID, the number Canvas shows for the course, or the course name such as "Networking 1". Ask get_my_courses for the list of IDs and names.
only_openNoOptional, hide modules that are already completed. Defaults to false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.10

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral context: it explains what each module exposes (state) and what each item exposes (requirement type plus completion), which is meaningful disclosure beyond the annotations.

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?

The return-value explanation is front-loaded and the parameter notes and example follow in a logical order. It is a bit dense in the opening sentence, but every sentence carries information the agent can use.

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?

There is no output schema, so the description carries the burden of describing returns, and it does so adequately by naming module states and item requirement/completion fields. With only two parameters and full schema coverage, little else is missing; a note on ordering or whether items nest under modules would make it complete.

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 both parameters are fully documented in the schema. The description's parameter guidance ('Pass course_id as the Canvas course ID or as the course name', 'Set only_open to true to hide completed modules') essentially restates what the schema already says, adding no new syntax or format detail. Baseline 3 is appropriate.

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?

The description states a specific verb and resource ('Your progress through the modules of one Canvas course') and enumerates the returned state (locked/unlocked/started/completed) and per-item requirements. It is clearly distinct from siblings like get_assignments or get_course_content, though it never explicitly names those alternatives.

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

Usage Guidelines3/5

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

Usage is implied by 'so you can see what to study next' and the sample question, which gives the agent a sense of the use case. However, it never states when to prefer this over get_todo, get_missing_assignments, or get_course_content, which cover overlapping 'what's left to do' territory.

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