Skip to main content
Glama

get_activity_completion_status

Read-only

Retrieve per-activity completion status for a course, including tracking rules like must view or must spend a set number of minutes, to verify whether each module is complete.

Instructions

Get this account's completion status for every activity/module in a course -- richer than get_course_contents's per-module completed flag (includes tracking rules, e.g. 'must view' vs 'must spend N minutes'). For vod (video lecture) modules specifically, prefer get_course_contents, whose per-module vod_progress field also includes watch-percentage and deadline info this function doesn't return.

Input Schema

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

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, yet the description still adds real behavioral detail: results include tracking rules ('must view' vs 'must spend N minutes') and, importantly, explicitly does NOT return watch-percentage or deadlines for vod modules. That negative disclosure is the kind of information annotations cannot convey.

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 core scope statement is front-loaded in the first clause, followed by the richer-than comparison and then the exception for vod modules. The backtick-heavy formatting is slightly dense but each sentence carries distinct information.

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?

An output schema exists, so return-value shape need not be explained; the description instead covers what the tool uniquely adds and where its data falls short. Only the omission of the closely related get_course_completion_status comparison 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, including where to source the course_id ('e.g. from list_courses'). The description adds nothing about the parameter, which is acceptable at this coverage level but not compensating beyond baseline.

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 names a specific verb and resource ('Get this account's completion status for every activity/module in a course') and explicitly contrasts its output with get_course_contents' per-module `completed` flag. It never addresses get_course_completion_status, the closest-sounding sibling, so the differentiation is strong but incomplete.

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 an explicit routing rule: for `vod` modules prefer get_course_contents because that tool returns watch-percentage and deadline data this one lacks. That is genuine when-to-use guidance. It stops short of explaining when an agent should pick this over get_course_completion_status.

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