Skip to main content
Glama

get_course_updates_since

Read-only

Retrieve course configuration, completion, grade, and submission changes after a specified Unix timestamp to identify what was updated in a course.

Instructions

Get what changed in a course since a given time -- configuration, completion, grades, submissions, etc. Only reports modules that implement Moodle's change-tracking (confirmed: the standard assign module does; this platform's own custom lecture-file/board/video modules do not, so this won't catch a new ubfile lecture or ubboard post -- use get_course_contents/list_notices to check those instead.

Input Schema

NameRequiredDescriptionDefault
sinceYesUnix timestamp -- report changes after this point in time.
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

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds genuinely useful behavioral context: coverage is limited to modules implementing Moodle change-tracking, with the standard assign module confirmed and custom modules explicitly excluded. That coverage caveat is the key failure mode an agent needs to know about; it says nothing about result volume or truncation, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in the first clause, but the caveat is folded into an unwieldy run-on with an unbalanced parenthesis, which hurts readability. The content is worth keeping but the structure could be split into two clean sentences.

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 values need not be explained, and both required parameters are documented. The description supplies the critical coverage caveat that the structured fields cannot convey; only pagination/result-size behavior is left unspecified.

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 description coverage is 100%, so both parameters (course_id, since) are fully documented in the schema, and the description adds no syntax or format detail beyond 'a given time'. Baseline 3 applies when the schema already does the heavy lifting.

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 what changed in a course since a given time') and enumerates the change domains covered (configuration, completion, grades, submissions). It also names the sibling tools to use for the cases it does not cover, so an agent can distinguish it from get_course_contents and list_notices 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?

Gives an explicit when-not with alternatives: it warns that platform-specific lecture-file/board/video modules are not tracked and directs the agent to get_course_contents/list_notices for those. It does not contrast with other recency-oriented siblings such as get_recent_items or get_upcoming_action_events, but the primary exclusion is well covered.

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