Skip to main content
Glama

Get letter

get_letter
Read-onlyIdempotent

Use this when the user asks about a letter they created here: status (draft, paid, in_production, printed, posted, cancelled, returned), tracking number for registered mail, and price. Look up by letter_id or reference (PM-XXXXXX). Changes nothing. Needs the user's account.

Input Schema

NameRequiredDescriptionDefault
letter_idNoletter_id from create_letter, compose_letter or list_letters, e.g. ltr_8f3k2m9q4x7v1c6b0n5p. Pass letter_id or reference.
referenceNoThe letter's reference as shown to the user, format PM-XXXXXX, e.g. PM-7K3QH9. Pass letter_id or reference.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / letter_id / description
      Added value: +"letter_id from create_letter, compose_letter or list_letters, e.g. ltr_8f3k2m9q4x7v1c6b0n5p. Pass letter_id or reference."
    • addedInput schema / properties / reference / description
      Added value: +"The letter's reference as shown to the user, format PM-XXXXXX, e.g. PM-7K3QH9. Pass letter_id or reference."
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered; the description goes beyond them by asserting 'Changes nothing' and adding an auth requirement ('Needs the user's account') plus the return fields. It does not mention error behavior for an unknown reference or whether an unauthenticated call fails, so it is not exhaustive.

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?

One dense sentence front-loads the usage trigger and then packs the return fields, with 'Changes nothing. Needs the user's account.' as short trailing constraints. Every clause earns its place; the long parenthetical status list makes it slightly heavy but still readable.

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 no output schema, the description carries the return-value burden and does so by naming status (with its full value set), tracking number, and price. Combined with annotations covering safety and the 100%-covered schema, an agent has enough to call this correctly; only error/not-found behavior is unaddressed.

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% and both parameter descriptions already state the formats and 'Pass letter_id or reference.' The description merely restates this optionality ('Look up by letter_id or reference (PM-XXXXXX)'), adding no precedence rule or extra meaning, so the baseline 3 applies.

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 (retrieve a letter) and enumerates exactly what is returned: status, tracking number, price. The singular, instance-scoped framing ('a letter they created here', looked up by letter_id or PM- reference) is clearly distinguishable from create_letter, compose_letter, and list_letters without opening any 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 a concrete trigger ('when the user asks about a letter they created here') and the two accepted lookup keys. It stops short of naming alternatives or stating exclusions (e.g., use list_letters for multiple letters, create_letter to make one), so it is clear context rather than a full routing rule.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.