Skip to main content
Glama

get_course_completion_status

Read-only

Retrieves a course's overall completion status when course-level completion criteria are configured; use it to check whether a course is completed, or fall back to per-activity progress if unavailable.

Instructions

Get this account's overall course-completion status, if the course has course-level completion criteria configured. Most courses on this platform don't (available=False, with a message explaining why) -- try get_activity_completion_status for per-activity progress instead, or get_course_contents's per-module completed flag.

Input Schema

NameRequiredDescriptionDefault
course_idYesPLATO/Moodle numeric course id, e.g. from list_courses.

Output Schema

NameRequiredDescriptionDefault
messageNo
courseidYes
criteriaNo
availableYes
completedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=true), and the description adds genuinely useful behavioral context: the tool frequently returns available=False with a message explaining why, so the agent knows a null/negative result is normal rather than an error. It stops short of describing the shape of the completion payload, but an output schema exists to carry that.

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?

Three short sentences, front-loaded with the operation and its precondition before the fallback routing. Slightly dense in the parenthetical about available=False, but every sentence earns its place with no 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?

The tool is simple (one required param) and the output schema covers return values, so the description only needs to handle the conditional-result behavior and sibling routing — both are present. The only remaining gap is that it doesn't say what the successful completion payload contains, which the output schema presumably handles.

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% and the single course_id parameter is already documented with format ('PLATO/Moodle numeric course id') and a source hint ('e.g. from list_courses'). The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

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 ('Get this account's overall course-completion status') with the key precondition (course-level completion criteria configured). It explicitly names the two siblings that cover the alternative cases (get_activity_completion_status and get_course_contents), so an agent can distinguish it without opening any 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 both when-to-use and when-not-to-use: most courses return available=False with an explanatory message, and in that case the agent is routed to get_activity_completion_status for per-activity progress or get_course_contents' per-module `completed` flag. The alternative paths are named concretely rather than left to inference.

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