Skip to main content
Glama

Freigegebenen Brief per Post senden

send_letter
DestructiveIdempotent

Mails a prepared letter by post. Use it only for a free resend (resend_of, price 0). For every other letter the user orders on the order page: give the user the order_url. Do not call this tool for a letter with an order_url. Call it only after the user approved the preview and the recipient, in a later answer than prepare_letter. Cannot be undone after printing.

Input Schema

NameRequiredDescriptionDefault
batch_idNoThe batch_id from prepare_letter with recipients. Sends every letter of the batch. Then do not give letter_id.
letter_idNoThe letter_id from prepare_letter, for one letter. For a batch, give batch_id instead.
batch_sha256NoFor a batch: the batch_sha256 from prepare_letter.
recipient_nameNoThe name of the recipient that the user approved, as in prepare_letter. For one letter only.
allow_duplicateNoSet to true only if the user clearly wants a second copy of a letter that was already sent.
confirmed_countNoFor a batch: the number of letters that the user approved.
recipient_namesNoFor a batch: the name of each recipient that the user approved, as in prepare_letter.
confirmed_enclosuresNoThe number of enclosures in the preview that the user approved. 0 if the letter has no enclosures.
confirmed_price_centsYesThe price in cents that the user approved. It must be the price from prepare_letter (0 for a free resend). For a batch: the total price.

Output Schema

NameRequiredDescriptionDefault
chargeYes
countsNo
statusYes
lettersNo
batch_idNo
letter_idNo
status_emailsNoTrue when the user gets status e-mails for these letters.
transaction_stateYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the description's 'Cannot be undone after printing' adds the crucial timing detail rather than restating the flag, and it layers on the human-approval gate and the zero-price constraint. It does not cover the batch-vs-single execution path or error behavior, which keeps it off a 5.

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?

Very short and front-loaded: purpose first, then the qualification, then the alternative, then the precondition and the irreversibility warning. Every sentence carries a distinct constraint; nothing is padding.

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 9 parameters, rich annotations, and an output schema, the description covers the decision-critical parts: eligibility, the bypass route, and the approval gate. Batch handling and the allow_duplicate escape hatch are only in the schema, a minor gap for an otherwise complete definition.

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 coverage is 100% and the field descriptions already explain batch_id/letter_id exclusivity, the sha256, and confirmed_price_cents. The tool description adds only the framing that the confirmed price is 0 for a resend, which the schema also states, so this is the baseline-3 case where the schema does the heavy lifting.

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 ('Mails a prepared letter by post') and immediately bounds the scope to free resends, which separates it cleanly from prepare_letter and send_card. An agent knows what this does and what it does not do 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 when-to-use (free resend via resend_of, price 0), explicit when-not ('Do not call this tool for a letter with an order_url'), an alternative action (hand the user the order_url), and a sequencing precondition (only after the user approved preview and recipient, in a later answer than prepare_letter). Nothing is left to inference.

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