Skip to main content
Glama

Completed lessons

get_completed_lessons

List completed lessons between two dates, including subject, teacher, topic, and attendance mark; use the returned cursor with the same dates to fetch subsequent pages.

Instructions

List lessons already held between two dates: subject, teacher, topic and attendance mark. Continue with the returned cursor and the same dates. The range also changes what this login's Librus session remembers.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum items in this page.
cursorNonext_cursor from the previous page; omit for the first page.
date_toYesLast day, YYYY-MM-DD, inclusive; at most 370 days after the first.
date_fromYesFirst day, YYYY-MM-DD, inclusive.
max_pagesNoMaximum Librus pages fetched by this call.
account_aliasYesLogin alias from list_accounts.

Output Schema

NameRequiredDescriptionDefault
itemsYes
date_toYes
identityYes
date_fromYes
paginationYes
observationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv2.3.1
    • changedInput schema / $defs / LessonsCursorInput / properties / account / pattern
      Previous value: -"^(?:[^\\s\\x00-\\x1f\\x7f]|[^\\s\\x00-\\x1f\\x7f](?:[^\\s\\x00-\\x1f\\x7f]| )*[^\\s\\x00-\\x1f\\x7f])$"New value: +"^[^\\s\\x00-\\x1f\\x7f](?: *[^\\s\\x00-\\x1f\\x7f])*$"
    • addedInput schema / properties / account_alias / description
      Added value: +"Login alias from list_accounts."
    • changedInput schema / properties / account_alias / pattern
      Previous value: -"^(?:[^\\s\\x00-\\x1f\\x7f]|[^\\s\\x00-\\x1f\\x7f](?:[^\\s\\x00-\\x1f\\x7f]| )*[^\\s\\x00-\\x1f\\x7f])$"New value: +"^[^\\s\\x00-\\x1f\\x7f](?: *[^\\s\\x00-\\x1f\\x7f])*$"
    • addedInput schema / properties / cursor / description
      Added value: +"next_cursor from the previous page; omit for the first page."
    • addedInput schema / properties / date_from / description
      Added value: +"First day, YYYY-MM-DD, inclusive."
    • addedInput schema / properties / date_to / description
      Added value: +"Last day, YYYY-MM-DD, inclusive; at most 370 days after the first."
    • addedInput schema / properties / limit / description
      Added value: +"Maximum items in this page."
    • addedInput schema / properties / max_pages / description
      Added value: +"Maximum Librus pages fetched by this call."
    • changedOutput schema / $defs / LessonsCursorInput / properties / account / pattern
      Previous value: -"^(?:[^\\s\\x00-\\x1f\\x7f]|[^\\s\\x00-\\x1f\\x7f](?:[^\\s\\x00-\\x1f\\x7f]| )*[^\\s\\x00-\\x1f\\x7f])$"New value: +"^[^\\s\\x00-\\x1f\\x7f](?: *[^\\s\\x00-\\x1f\\x7f])*$"
  2. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations mark this as not read-only and open-world; the description adds the non-obvious side effect that the date range changes what the Librus session remembers. That is consistent with readOnlyHint=false, though the phrase 'remembers' is vague about exactly what changes.

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 resource and date-range scope. The session-memory sentence is slightly opaque but still carries behavioral information, so the description is appropriately sized.

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 full schema coverage, an output schema, and annotations, the definition gives enough to call this paginated list correctly and warns of its session side effect. It is not fully self-contained about alternatives, but that gap belongs mainly to usage guidance.

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%, with date, cursor, limit, max_pages, and account_alias documented in the schema. The description adds the useful constraint to reuse the same dates with the cursor, but it does not clarify limit, max_pages, or account_alias beyond what the schema provides.

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?

States a specific verb and resource: list lessons already held between two dates, with the fields returned. It is clear about what this tool returns, but it does not distinguish itself from siblings such as get_timetable or get_attendance.

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?

Explains cursor continuation and that the same dates should be reused, which is useful invocation guidance. It does not say when to choose this tool over timetable, attendance, or date-window siblings, so usage is only implied.

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