Skip to main content
Glama

Messages

get_messages

List Librus message summaries with correspondent, subject, date, and read state to review inbox or sent mail without opening each message; filter unread or archived mail and paginate with a cursor.

Instructions

List message summaries (correspondent, subject, date, read state) without opening them; use get_message_content for the text. On legacy accounts the folder choice changes the view Librus remembers. Modern accounts can list the archive or filter current mail by correspondent or unread_only; archives cannot be filtered. Repeat the same filters with cursor.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum items in this page.
cursorNonext_cursor from the previous page; omit for the first page.
folderNoreceived or sent mail.received
archivedNoModern only: list earlier years' archive.
max_pagesNoMaximum Librus pages fetched by this call.
page_sizeNoMessages per Librus page; legacy accepts only 50.
unread_onlyNoModern only: unread received mail only.
account_aliasYesLogin alias from list_accounts.
correspondentNoModern only: a reference from get_message_correspondents.

Output Schema

NameRequiredDescriptionDefault
itemsYes
folderYes
backendYes
archivedNo
identityYes
paginationYes
observationYes
unread_onlyNo
correspondentNo
archiving_in_progressNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv2.5.0
    • removedOutput schema / $defs / CorrespondentReferenceInput / additionalProperties
      Removed value: -false
    • removedOutput schema / $defs / LegacyCursor / additionalProperties
      Removed value: -false
    • removedOutput schema / $defs / MessageItemOutput / additionalProperties
      Removed value: -false
    • removedOutput schema / $defs / MessagePagination / additionalProperties
      Removed value: -false
    • removedOutput schema / $defs / MessageReferenceInput / additionalProperties
      Removed value: -false
    • removedOutput schema / $defs / ModernCursor / additionalProperties
      Removed value: -false
    • removedOutput schema / additionalProperties
      Removed value: -false
  2. Changed17 schema fields changedv2.3.1
    • changedInput schema / $defs / CorrespondentReferenceInput / 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])*$"
    • changedInput schema / $defs / LegacyCursor / 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])*$"
    • changedInput schema / $defs / ModernCursor / 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 / archived / description
      Added value: +"Modern only: list earlier years' archive."
    • addedInput schema / properties / correspondent / description
      Added value: +"Modern only: a reference from get_message_correspondents."
    • addedInput schema / properties / cursor / description
      Added value: +"next_cursor from the previous page; omit for the first page."
    • addedInput schema / properties / folder / description
      Added value: +"received or sent mail."
    • 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."
    • addedInput schema / properties / page_size / description
      Added value: +"Messages per Librus page; legacy accepts only 50."
    • addedInput schema / properties / unread_only / description
      Added value: +"Modern only: unread received mail only."
    • changedOutput schema / $defs / CorrespondentReferenceInput / 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])*$"
    • changedOutput schema / $defs / LegacyCursor / 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])*$"
    • changedOutput schema / $defs / MessageReferenceInput / 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])*$"
    • changedOutput schema / $defs / ModernCursor / 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])*$"
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Adds real context beyond the annotations: on legacy accounts the folder choice mutates the view Librus remembers (explaining a non-readOnly listing tool), and archived listings cannot be filtered. It doesn't cover rate limits or what next_cursor/page bounds look like, though the schema and output schema handle the latter.

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?

Front-loads what the tool returns and the alternative before the branch details. Dense but largely justified; the legacy/modern sentence packs two distinct facts and reads as slightly compressed.

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?

With an output schema present, return-shape details aren't required, and the description still summarises the exposed fields. For a 9-parameter paginated tool with backend branching it covers the decision-relevant facts, though credential/scope prerequisites are unmentioned.

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?

Schema coverage is 100%, so the baseline is 3; the description earns a bump by adding semantics not in the schema — that filters only apply to current mail, that archives are unfilterable, and that filters must be identical across cursor pages. It still doesn't clarify the legacy page_size=50 constraint or cursor shape itself.

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 (list message summaries) and names the exact fields returned, plus explicitly contrasts with get_message_content for message bodies. An agent can distinguish it from siblings like get_message_unread_counts or get_message_correspondents 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: use get_message_content for text, this tool for summaries. It also spells out the branch condition (legacy vs modern accounts), that archives cannot be filtered, and that follow-up pages must repeat the same filters with the cursor.

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