Skip to main content
Glama

timetable

Get a week's timetable from Moodle with lesson times, rooms, courses, lecturers, and student numbers. Identify room clashes, double-booked lecturers, and missing rooms; optionally save the week as a browser-ready web page.

Instructions

The lessons of one week across a campus, from Moodle: day, time, room, course, lecturers and number of students, plus room clashes, a lecturer in two places, lessons with no room yet, and the week as a WhatsApp message. The room is read from the attendance session description ('Aula: DREAM'). With page_path it also writes the week as a web page (per room, per lecturer, free rooms) to open in a browser.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
weekNoAny date in the week, YYYY-MM-DD; default this week
searchNoWhich courses: text in their short name, e.g. "262701_FL" = Florence, AY 26/27, term 1_FL
lecturerNoOnly this lecturer's lessons (part of the name)
page_pathNoWhere to save the web page, e.g. "Desktop/orario.html"

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It reveals important behavior beyond the schema: room data is parsed from the attendance session description ('Aula: DREAM'), and providing page_path causes the tool to write a web page with per-room, per-lecturer, and free-room views. It also lists derived outputs like clashes and double-booked lecturers. The only slight ambiguity is 'the week as a WhatsApp message,' which could mean a formatted message or an actual send operation.

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 description is dense but purposeful: it front-loads the core output and then adds the room-source detail and the page_path-dependent behavior. Each sentence carries useful information. It is a bit long and lists many derived outputs, but none are redundant with the schema or annotations, so the length is justified.

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?

Given there is no output schema, the description reasonably enumerates the returned content (lessons, clashes, double-booked lecturers, unassigned rooms, WhatsApp message) and the side-effect when page_path is used. It lacks explicit return formatting or more detail on the WhatsApp message, but it is complete enough for an agent to invoke the tool correctly with optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The input schema already provides 100% description coverage for all four parameters, so the baseline is 3. The description adds semantic value by explaining that page_path triggers a write side effect and by giving concrete examples (e.g., 'Desktop/orario.html' is already in the schema) and context like reading rooms from attendance sessions. This goes slightly beyond the schema's field-level explanations.

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 clearly states that the tool produces lessons for one week across a campus, including day, time, room, course, lecturers, student counts, and specific analyses like clashes and unassigned rooms. It conveys the resource and scope effectively, and it is readily distinguishable from siblings like attendance_sessions or my_courses. However, it is phrased as a noun phrase rather than an explicit verb+resource, and it does not explicitly differentiate itself from a sibling tool.

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?

The description implies its usage context: weekly timetable queries across a campus, with an optional page_path for generating a web page. It does not explicitly state when not to use this tool or mention alternatives, relying on the tool's purpose and sibling names to convey that. This is adequate but leaves exclusion criteria unstated.

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