Skip to main content
Glama

PaperAgent — Send Physical Mail

Get Letter Status

get_letter_status
Read-onlyIdempotent

Return the current state of one letter: where it is, the date it goes to USPS, and the estimated delivery date. USPS does not scan plain First-Class letters at delivery, so a Standard letter ends at an expected delivery date and never reports delivery — do not tell the user a letter arrived unless the status itself says so. This creates nothing and mails nothing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
letter_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
tierYes
scansYes
statusYesWhere the letter is. expected_delivery is the last state a standard or proof-of-mailing letter reaches; only certified tiers ever reach delivered.
paymentYes
livemodeYesFalse for sandbox letters, which are never mailed.
letter_idYes
mail_dateYesThe calendar date (YYYY-MM-DD, New York time) this piece goes to USPS.
created_atYes
disclosureYesSay this to the user whenever an expected delivery date is shown.
descriptionYesOne sentence for the user about where this letter is.
cancelled_atYes
delivered_atNoCertified tiers only, and absent entirely for the tiers USPS does not scan.
tracking_urlNoDirect USPS tracking link. Share it with the user when available.
tracking_numberNoUSPS Certified Mail tracking number, present once the operator saves it.
delivery_confirmationYesFalse for every tier USPS does not scan at delivery. Never claim otherwise.
expected_delivery_estimateYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower, and the description clears it by disclosing a non-obvious domain behavior: USPS does not scan First-Class letters at delivery, so a Standard letter terminates at an expected date and never reports arrival. 'This creates nothing and mails nothing' is somewhat redundant with readOnlyHint but usefully reinforces it.

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?

Three sentences, front-loaded with what is returned, then the delivery-confirmation caveat, then the safety clarification. Every sentence carries distinct information; nothing is padding.

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?

An output schema exists, so return values need not be restated, and annotations cover the safety profile. For a single-parameter read tool, the description supplies everything an agent needs to call it correctly and to report its result honestly.

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 0% for the single letter_id parameter, so the description carries the burden and adds no format, source, or validity guidance for it. It only establishes that the identifier refers to a single letter; the param name is self-explanatory enough that this is marginally adequate rather than a failure.

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?

Specific verb and resource with scope: 'Return the current state of one letter', plus the exact data points returned (location, USPS date, estimated delivery). The phrase 'one letter' implicitly separates it from list_letters, but no sibling is named explicitly, so it stops short of a 5.

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?

It gives a clear interpretation rule ('do not tell the user a letter arrived unless the status itself says so') and scoping ('one letter'), which implies when to reach for it. However, it never states when to prefer this over list_letters or how to obtain a letter_id, 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources