Skip to main content
Glama

get_upcoming_action_events

Read-only

Retrieve Moodle's own prioritized feed of upcoming assignments, video watch deadlines, and other required actions, sorted by urgency from now onward.

Instructions

Get Moodle's own "what needs action soon" feed -- assignments due, video lectures with a watch deadline, etc. -- sorted by urgency, from now onward. Unlike combining list_assignments + get_calendar_events, this is Moodle's own cross-activity prioritized view and may surface activity types (e.g. vod watch deadlines) those tools don't.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of upcoming events to return.

Output Schema

NameRequiredDescriptionDefault
resultYes

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 declare readOnlyHint and openWorldHint, so the safety profile is covered; the description adds real value beyond them by disclosing ordering (urgency), temporal bound (from now onward), and that coverage is broader than the obvious sibling tools. It says nothing about pagination or how many results are typical, but with an output schema present that gap is minor.

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, zero filler, and the core definition ('what needs action soon', urgency-sorted, from now onward) is front-loaded before the sibling comparison. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with full schema coverage, an output schema, and annotations covering safety, the description supplies everything an agent needs: what it returns, how it is ordered, its time window, and why it differs from the apparent alternatives.

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?

Only one parameter (limit) and the schema documents it at 100% coverage, including its default of 20. The description adds no guidance on how limit interacts with the urgency ordering or sensible values, so it is baseline adequate rather than additive.

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 ... action events) and pins down the scope: 'what needs action soon', 'sorted by urgency, from now onward'. It also names the concrete content types (assignments due, video watch deadlines), so an agent can distinguish it from list_assignments or list_calendar_events without opening a 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?

Explicitly contrasts itself with the alternative approach ('Unlike combining list_assignments + get_calendar_events') and explains why it is preferred: Moodle's own cross-activity prioritized view surfaces types those tools miss. It stops short of stating when to fall back to those siblings (e.g., for a complete historical list), so there is no explicit exclusion rule.

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