Piloxa – Certified Mail
Server Details
Send a USPS Certified Mail letter to any US address from ChatGPT, Claude or Grok. The assistant prepares the letter and hands back a review link; a person reads it, checks the recipient, pays and authorizes. Nothing is printed, mailed or charged without that approval. $16.17 with the electronic return receipt, $13.18 without. No subscription, and no account needed to see a price. Docs: https://piloxa.com/send-a-certified-letter-online
- Status
- Healthy
- Uptime
- 99.4% over 42 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 9 tools
Each tool has a distinct role, and the descriptions explicitly disambiguate the tricky pairs: check_certified_letter (readiness + price) vs quote_certified_letter (price only), prepare (creates unsent letter) vs authorize (pays/sends), and explain_certified_mail_status (generic statuses) vs get_certified_letter_status (letters from this conversation). The mild overlap between check and quote on pricing is the only place an agent could plausibly hesitate, and even there the descriptions steer clearly.
Most tools follow a readable verb_noun pattern with a shared 'certified_letter'/'certified_mail' theme (check_, quote_, prepare_, authorize_, get_..._status), which makes the lifecycle easy to infer. The two bare verbs fetch and search (for the guides) and the inconsistent subject noun (letter vs mail vs status) are minor deviations from the otherwise predictable scheme.
Nine tools is well within the sweet spot and every tool earns its place: three pricing/readiness read-only tools, one create, one pay/send, one status, one status-explainer, and two guide-retrieval tools. No filler or redundancy in the set.
The core lifecycle is fully covered: check readiness, quote, compare services, prepare, authorize/pay, and track status, plus guide search/fetch for background questions. The main gap is lifecycle management after preparation — there is no explicit cancel/refund tool despite a CANCELLED transaction state being referenced — but agents can work around this by not authorizing or by directing the person to the review page.
Available Tools
9 toolsauthorize_certified_letterBuy and send a prepared certified letterAIdempotentInspect
Buys and sends a letter that prepare_certified_letter prepared IN THIS CONVERSATION, after the person approved the exact total here. Call it only when (1) you have told the person the exact total, the recipient and the service, and they said yes to that total in this conversation, and (2) your platform has given you a Stripe shared payment token (spt_...) granted to Piloxa for that amount. Piloxa holds the payment, hands the letter to the printer, and charges only once the printer accepts it; if the printer refuses, the hold is released and nothing is charged. ALWAYS pass one idempotency_key per purchase and reuse it on every retry: the same key never charges twice and returns what already happened. If the total, the document or the address changed since the person approved, nothing is charged and you must ask again. Without a token, or if paying here is unavailable, nothing is charged and approval_url is returned: give it to the person, who pays there. The result carries transaction_state: AWAITING_APPROVAL, AUTHORIZED, VENDOR_ACCEPTED, MAILED, DELIVERED, RETURNED, FAILED or CANCELLED. Say a letter was sent only at VENDOR_ACCEPTED or later. At AUTHORIZED with failure OUTCOME_UNCERTAIN, do NOT retry: call get_certified_letter_status.
| Name | Required | Description | Default |
|---|---|---|---|
| mailing_id | Yes | The mailing_id prepare_certified_letter returned in this conversation. | |
| payer_email | Yes | Where the receipt, the tracking and the mailing record go. | |
| user_approved | Yes | True only when the person explicitly approved this exact total, recipient and service in this conversation. | |
| document_sha256 | No | Optional: the document_sha256 prepare_certified_letter returned. If the document changed since, nothing is charged. | |
| idempotency_key | Yes | One key per purchase, 16 to 100 letters, digits or _ . : -. Reuse the same key on every retry of this purchase; a new key is a new purchase attempt. | |
| approval_statement | No | The words the person was shown and said yes to, for the record, e.g. "Send this letter to Acme Property Management by USPS Certified Mail with return receipt for" followed by the exact total. | |
| expected_total_cents | Yes | The exact total the person approved, in cents: the total_cents or estimated_total_cents Piloxa returned. If the current total differs, nothing is charged. | |
| shared_payment_token | No | A Stripe shared payment token (spt_...) your platform issued to Piloxa for this purchase, limited to the approved amount. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mailed | Yes | |
| charged | Yes | |
| failure | No | |
| receipt | No | |
| service | No | |
| currency | No | |
| replayed | No | True when this answers an earlier call with the same idempotency key, or a purchase already under way. |
| recipient | No | |
| reference | No | The Piloxa mailing reference, once the letter exists as a mailing. |
| mailing_id | No | |
| amount_cents | No | |
| approval_url | No | Where the person can review and pay instead. |
| practice_run | No | |
| state_meaning | No | |
| document_sha256 | No | |
| amount_held_cents | No | |
| printer_reference | No | |
| transaction_state | Yes | |
| amount_charged_cents | No | |
| usps_tracking_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnly/destructive/idempotent/openWorld, so the description carries real weight and delivers: funds are held then charged only on printer acceptance, release with no charge if the printer refuses, no charge plus re-approval if total/document/address changed, and idempotency_key reuse guarantees a single charge. It also enumerates every transaction_state value and states the correct user-facing claim threshold (VENDOR_ACCEPTED or later), which annotations could never convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded — the core action and its gating conditions come first, with payment/state details after. It is on the long side and the payment-mechanics sentences could be tightened, but nearly every clause carries actionable information for a tool that moves money.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a money-moving, open-world purchase tool this is complete: approval preconditions, token requirement, hold/settle semantics, idempotency contract, change-detection behavior, fallback payment path, and state-machine interpretation are all present. An output schema exists, and the description still adds the state semantics an agent needs to phrase results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter semantics the schema cannot: expected_total_cents is what the person approved and a mismatch aborts the charge, and one idempotency_key must be reused across retries so the same key never charges twice. The remaining parameters are simply echoed from their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Buys and sends a letter') and ties it to the exact upstream tool that produced the input ('that prepare_certified_letter prepared IN THIS CONVERSATION'), which cleanly separates it from get_certified_letter_status and the quote/prepare siblings. An agent can tell what this does 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two explicit, checkable preconditions (person approved the exact total/recipient/service in this conversation; a Stripe spt_ token granted to Piloxa exists) and an explicit when-not path: without a token nothing is charged and approval_url is returned for the person to pay. It also routes retry behavior away from this tool at OUTCOME_UNCERTAIN toward get_certified_letter_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_certified_letterCheck a letter before it is mailedARead-onlyIdempotentInspect
READ ONLY: checks a draft letter or a finished document BEFORE anything is prepared, and says whether it is ready to mail by USPS Certified Mail and what it would cost. Use it when the person asks "is this ready to send?", "check this before I mail it", "did I forget anything?", "is this ready for Certified Mail?", "should I send this with a return receipt?" or "what would it cost to send this certified?", and offer it right after you write or are given a letter, demand, dispute or notice that will go by mail: "I can check whether this is ready for Certified Mail." It returns the printed page count (the same layout the review page charges for), the document type it reads as, the recipient and sender it found and whether each address is complete, the missing fields, unfilled placeholders such as [NAME], enclosures the letter mentions, a reply-by date written in the letter, the recommended service with the exact current price, and the next action. It checks mailing readiness, never legal sufficiency. It creates nothing, stores nothing, prints, mails and charges nothing, and needs no account. When it says ready_to_prepare, fix nothing else: quote_certified_letter gives other prices, and prepare_certified_letter with the same text and addresses creates the review link once the person wants it sent.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| state | No | Two-letter U.S. state code. | |
| subject | No | The "Re:" line, if any. | |
| letter_text | No | The letter body as it would print: salutation, paragraphs and closing, without the addresses or date (those come from the other fields). Up to 60,000 characters. Pass this OR document_text. | |
| postal_code | No | Five-digit ZIP code. | |
| sender_city | No | ||
| sender_name | No | ||
| sender_state | No | ||
| address_line1 | No | Recipient street address. | |
| address_line2 | No | ||
| document_text | No | The full text of a document that is already finished and prints exactly as written, addresses and signature included. Up to 60,000 characters. Pass this OR letter_text. | |
| recipient_name | No | ||
| signature_name | No | Name printed under the closing. | |
| desired_service | No | The service the person has in mind, if any; its price is returned as current_estimated_price. Left out, the recommended service is priced. | |
| recipient_company | No | ||
| sender_postal_code | No | ||
| enclosures_supplied | No | Names of enclosures the person says they have, so an enclosure the letter mentions is not reported missing. | |
| sender_address_block | No | The sender (return address) as written, one part per line. | |
| sender_address_line1 | No | ||
| recipient_address_block | No | The recipient as addressed, one part per line. Named recipient fields win over it. Left out, the recipient is read from the inside address in the text, if it has one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | No | |
| mailed | Yes | Always false. |
| stored | Yes | Always false: nothing from this call is kept. |
| charged | Yes | Always false. |
| warnings | No | |
| max_pages | No | |
| promotion | No | Present when the first-letter promotion could lower this total; the review page applies it once the account is known. |
| next_action | Yes | |
| document_type | No | |
| missing_fields | Yes | |
| detected_sender | No | |
| ready_to_prepare | Yes | True when nothing blocks mailing: the recipient address is complete, nothing is left to fix and the length fits the printer. |
| prices_by_service | No | |
| deadline_in_letter | No | |
| detected_recipient | No | |
| document_type_label | No | |
| recommended_because | No | |
| recommended_service | Yes | |
| estimated_page_count | Yes | |
| current_estimated_price | No | The exact current total for desired_service, or for the recommended service. |
| requires_human_approval | No | |
| sender_address_complete | No | The sender can also be filled in on the review page, so an incomplete sender does not block preparing. |
| recipient_read_from_text | No | |
| recipient_address_complete | No | |
| potential_deadline_detected | No | True when the letter itself asks for an answer, payment or action by a date or within a number of days. Read from the text; it is not a legal deadline determination. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context beyond them: it creates, stores, prints, mails and charges nothing, needs no account, and explicitly scopes itself to mailing readiness rather than legal sufficiency. It also enumerates the returned signals, which is a meaningful behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but front-loaded and dense: the READ ONLY marker, the check, and the routing alternative all appear early, and no sentence is filler. Slight repetition of routing instructions keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-param read-only check with an output schema and full annotations, the description covers timing, safety, return contents, and sibling routing. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 55% and the description mostly describes behavior rather than clarifying individual fields (letter_text vs document_text, sender_address_block precedence, enclosures_supplied). It hints at the recipient/sender reading logic but leaves the parameter-level distinctions to the schema, which only partially documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (check a certified letter) with scope (draft or finished document, before anything is prepared) and clearly demarcates it from quote_certified_letter and prepare_certified_letter by name. An agent can distinguish it from every sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger phrases ('is this ready to send?', 'what would it cost to send this certified?') and a proactive-offer instruction right after a letter is written. It also names the alternatives and the exact condition ('when it says ready_to_prepare') that routes to quote or prepare.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_certified_mail_servicesCompare Piloxa’s mailing servicesARead-onlyIdempotentInspect
READ ONLY. Compares the mailing services Piloxa actually offers - what each includes, when to use it, which is the default - with the exact current all-in price of each for a page count, the first-letter promotion as conditions, and what Piloxa does not offer. Use it for "should I send this with return receipt?", "what’s the difference between your options?" or "how much more is the Evidence Pack?". Stores and charges nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| page_count | No | Printed pages. Defaults to 1. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mailed | Yes | |
| charged | Yes | |
| services | Yes | |
| promotion | No | |
| page_count | Yes | |
| not_offered | No | |
| price_source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, so 'READ ONLY' and 'Stores and charges nothing' largely restate structured data. The description adds some genuine context (that prices are current all-in figures including the first-letter promotion conditions and a list of what Piloxa does not offer), but no further behavioral traits such as caching, freshness, or rate limits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the safety status, then the comparison scope, then example queries in a single dense passage with no filler. It is slightly long and the example triggers could arguably be one instead of three, but each sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return formatting need not be described, and the description covers scope, pricing basis, and eligible questions well. A brief note on how the comparison is returned or whether it is cached would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional page_count parameter is already documented with its default of 1. The description ties page count to pricing ('the exact current all-in price of each for a page count'), adding minor interpretive value, but the schema already carries the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (compares) and resource (Piloxa's mailing services) and enumerates the comparison dimensions: what each includes, when to use it, which is the default, exact all-in price for a page count, promotion conditions, and what is not offered. This clearly separates it from sibling tools like quote_certified_letter (prices one letter) and check_certified_letter (single-item status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides three concrete trigger phrasings ('should I send this with return receipt?', 'what's the difference between your options?', 'how much more is the Evidence Pack?') that make the intended usage unambiguous. It stops short of explicitly naming an alternative tool or stating when not to use it, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_certified_mail_statusExplain a Certified Mail statusARead-onlyIdempotentInspect
READ ONLY. Explains a USPS tracking status ("Notice Left", "Available for Pickup", "Unclaimed", "Refused", "Return to Sender", "Insufficient Address", "Delivered, Left with Individual"...) or a Piloxa transaction state (AWAITING_APPROVAL, VENDOR_ACCEPTED, MAILED, DELIVERED...) in plain words, with the likely next step and the guide that explains it. It explains the status in general; for a specific letter prepared in this conversation use get_certified_letter_status. It never says whether a notice is legally effective.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | The status text exactly as shown, e.g. "Notice Left (No Authorized Recipient Available)". |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| kind | No | |
| next | Yes | |
| scope | No | |
| status | Yes | |
| meaning | Yes | |
| guide_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint and idempotentHint, so the 'READ ONLY' prefix is largely redundant, but the description adds real behavioral context: it returns the likely next step plus a linked guide, and it explicitly declines legal-effectiveness judgments. That limitation is valuable and unavailable from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the safety marker, then purpose, then sibling routing, then the scope limitation. The long status enumerations are purposeful but sit in the middle rather than delaying the key routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-format explanation is unnecessary, and the description covers scope, ambiguity routing, and the legal-effect caveat. Minor gap: it doesn't say what happens with an unrecognized status string.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and the schema already documents it at 100% coverage including an example value. The description's status examples add flavor but no syntax beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (explains) plus the two distinct resource vocabularies it decodes (USPS tracking statuses and Piloxa transaction states) with concrete examples in quotes. An agent can immediately tell this apart from get_certified_letter_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use this one for a general status explanation, use get_certified_letter_status for a specific letter prepared in this conversation. That is a direct when/when-not with the alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchRead one Piloxa guideARead-onlyIdempotentInspect
READ ONLY. Returns the full text of one Piloxa guide by the id search returned (or its URL), with its title, canonical URL and last-updated date when the page states one. Prices in the text are the current ones.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id from search, e.g. "certified-mail-refused", or the page URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | |
| title | Yes | |
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered; 'READ ONLY.' largely restates it. The description adds real value beyond annotations by disclosing what is returned (full text, title, canonical URL, last-updated date), noting the date is conditional ('when the page states one'), and flagging that prices are live/current — a volatility trait not captured anywhere else.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the safety marker, then the return behavior, then the price caveat. No filler, no restatement of the title, and each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, idempotent read tool with an output schema and full annotation coverage, this is nearly sufficient; the output schema covers return structure, so the brief return summary is a bonus rather than a gap. Only the absence of any failure-mode note (e.g. unknown id or missing page) keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'id' parameter is fully documented in the schema, including the URL alternative, so the structured data already does the work. The description's only added nuance is reinforcing provenance ('the id search returned'), which is minor; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the full text of one Piloxa guide') and pins down the lookup key ('by the id search returned (or its URL)'), which cleanly separates it from the sibling 'search' tool. An agent can pick this tool over search without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the workflow context by naming 'the id search returned', making it clear this is the follow-up step to search. It gives no explicit when-not guidance or mention of other siblings like get_certified_letter_status, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_certified_letter_statusCheck what happened to a letter sent through PiloxaARead-onlyIdempotentInspect
Answers "has my letter arrived yet" for letters prepared through Piloxa IN THIS SAME CONVERSATION. Returns, for each one: who it went to, the service, the USPS tracking number once USPS has assigned one, whether USPS has accepted it, delivered it or returned it, and when each of those was recorded. Piloxa asks the print and mail provider for a fresh answer when this is called, so it is current rather than remembered. IMPORTANT AND DELIBERATE: it can only see letters this connector prepared in this conversation, because that is the only thing it can identify without a sign-in; it cannot reach a person’s other letters, letters sent from another conversation, or anybody else’s. For those, the person signs in at piloxa.com and opens the letter there. This tool is READ ONLY: it prepares nothing, mails nothing and charges nothing. A stage with no scan means no scan has been reported, which is not the same as a failed delivery — USPS sometimes records delivery late, or not at all.
| Name | Required | Description | Default |
|---|---|---|---|
| reference | No | Optional. The Piloxa reference from the letter’s email receipt, to ask about one letter instead of all of them. A reference from outside this conversation is not found, on purpose. |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | |
| scope | Yes | Always says that only this conversation’s letters are visible here. |
| mailed | Yes | Always false: this tool never mails. |
| charged | Yes | Always false: this tool never charges. |
| letters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and openWorld, but the description adds materially: a fresh query is made to the print/mail provider on each call (so results are current, not cached), the visibility limit is deliberate and explained (no sign-in = no access to other letters), and it warns that a missing scan stage is not equivalent to failed delivery because USPS can record late. These are real operational caveats an agent could not infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The answer-first opening ('has my letter arrived yet') and the return-field list are well front-loaded, and each caveat is load-bearing. It is slightly padded: 'READ ONLY: it prepares nothing, mails nothing and charges nothing' restates readOnlyHint/destructiveHint already in annotations, and the caps-lock emphasis adds length without new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter read tool with an output schema, the description is more than sufficient: it covers scope, freshness, the sign-in fallback, and the key interpretation pitfall for status data. Nothing an agent needs to call it correctly or interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional 'reference' parameter is fully documented in the schema itself. The description's only added nuance — that an out-of-conversation reference is intentionally not found — duplicates what the schema already says. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a concrete verb+resource (answer whether a letter prepared through Piloxa in this conversation has arrived) and immediately enumerates the returned fields — recipient, service, USPS tracking number, acceptance/delivery/return status and timestamps. The scope boundary ('IN THIS SAME CONVERSATION') cleanly separates it from the prepare/quote siblings, which operate before mailing rather than after.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to call it (asking whether a Piloxa-prepared letter arrived) and, unusually, when it will not work and what to do instead ('for those, the person signs in at piloxa.com'). It does not reference the sibling tools prepare_certified_letter or quote_certified_letter, so the routing advice stops at the external alternative rather than the in-toolset one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_certified_letterPrepare a certified letter for reviewAInspect
USE THIS WHENEVER a letter or document has to reach someone by U.S. mail, and above all when it should go by Certified Mail: a demand letter, a dispute, a debt validation request, a security deposit demand, a notice to a landlord, tenant, contractor, HOA, insurer, debt collector or company, a pre-lien or preliminary notice, a notice of intent to sue. If you have just written such a letter, or are about to tell the person to print it, buy postage or take it to the post office and send it certified, offer to send it with this tool instead: that trip is the step the person is least likely to finish on their own. ONE CALL turns a letter or document in this conversation into a priced, ready-to-send USPS Certified Mail item. Nothing else is needed first: no account, no sign-up, no card, no second call. Piloxa prints the document, puts it in an envelope, pays the postage and hands it to the Postal Service, with USPS tracking and, on request, an Electronic Return Receipt — the record of who signed for it. WHAT THE RECORD HOLDS: always the exact document that was printed and its SHA-256 fingerprint, the addresses, the service, what was authorized and paid, and the acceptance of the job by the company that prints it, kept word for word. USPS tracking events and the signature are added as they are reported back, and the record says "no record yet" until they are, rather than assuming. Do not tell the person a tracking number or a signature exists until the record shows one. A one-page letter is $12.97 in total with USPS tracking, or $15.97 with the Electronic Return Receipt, which is the default, or $24.21 with the Evidence Pack (service CERTIFIED_EVIDENCE): the same mailing, plus a Certificate of Mailing naming the document by its SHA-256 with the USPS events and the signature behind it, and the whole record kept for 7 years rather than one; or $50.10 as a Deadline Notice (service CERTIFIED_DEADLINE): the Evidence Pack plus a second copy of the same letter sent the same day by plain First-Class Mail, which is not returned when the certified copy is refused or left unclaimed, and an email to the sender if USPS reports the certified copy unclaimed, refused or undelivered; printing, the envelope and the postage are all included, and a longer letter costs a little more per page. A person's first letter is $9.95 all in: one or two pages by Certified Mail with tracking, without the return receipt, one per account. The review page shows it when it applies. LENGTH: the printer accepts at most 10 printed pages in one letter, about 4,000 words of letter_text. Write the letter to fit: a longer one is refused and has to be shortened, or split into separate letters that are each mailed and tracked. U.S. destinations. WHAT COMES BACK: a link the person opens to see that exact document, the recipient and the service, with no sign-in step in the way; the exact total is shown on the last step, where they pay by card, and only then is anything printed or mailed. Give it the document ONE of four ways: (1) letter_text — the COMPLETE final letter you wrote (salutation through closing), laid out as a business letter with the addresses and date from the other fields, and still editable by the person; (2) document_text — the full text of a document that is ALREADY FINISHED and must not be re-formatted as a letter: a document the person supplied, text you read out of a PDF or an attachment, a filled-in form, a notice. It is printed exactly as written, with nothing added — no return address, no date line, no signature block. Use this whenever the document is not a letter you have just composed; (3) document_base64 — the bytes of a finished PDF, only when you can actually read the file (up to 4 MB), kept byte for byte; (4) person_has_pdf: true — the person attaches the PDF themselves on the review page, everything else prefilled. ADDRESSES: the simplest way is recipient_address_block (and sender_address_block) — paste the name and address exactly as they appear in the letter, one part per line, and Piloxa reads them into the right fields; naming the fields yourself always wins over the block. Anything still missing is asked of the person on the review page and does not stop this call. When the letter asks for an answer by a date, Piloxa emails the sender once, the day after that date, with the date USPS delivered it and the next step if nobody answered, at no extra charge. PREPARING IS NOT SENDING: this tool NEVER prints, mails or charges anything. It creates an unsent letter and returns the review link; nothing is printed, mailed or charged until the person reviews it and approves and pays on that page.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| state | No | Two-letter U.S. state code. | |
| service | No | Pick by what rides on the letter. CERTIFIED_ERR ($15.97 for one page) is the DEFAULT for an ordinary letter: Certified Mail with the Electronic Return Receipt, the record of who signed, kept when USPS reports it back. CERTIFIED ($12.97) is Certified Mail with tracking but no record of who signed; use it only when the person asks for the cheapest way. CERTIFIED_EVIDENCE ($24.21) is CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing, and the record kept for 7 years instead of one; use it when proof of exactly what was sent may be needed later in a dispute - a debt validation notice, a notice to cure, a proof of loss, a demand before suing. CERTIFIED_DEADLINE ($50.10) is CERTIFIED_EVIDENCE plus a second copy by First-Class Mail the same day and a warning email if the certified copy goes unclaimed; use it when a missed or refused notice would cost a lien, a contract remedy or a claim - a pre-lien or preliminary notice, a notice with a statutory deadline. When this field is left out and the letter reads as such a notice, Piloxa selects CERTIFIED_DEADLINE on the review page and says so in its answer; the person can switch it back there. Whichever you pick, say its price to the person before they open the link. | |
| subject | No | The "Re:" line of the letter, in a few words. | |
| reply_by | No | Optional: the date, as YYYY-MM-DD, by which the letter asks the recipient to answer, pay or act. Leave it out and Piloxa reads it from the letter ("within 30 days of receipt", "no later than October 15, 2026"). The day after that date Piloxa emails the sender, once, with the date USPS delivered the letter and the next step if nobody answered, at no charge. | |
| page_count | No | Only with person_has_pdf: number of pages in the PDF the person will attach, used for the price estimate. | |
| letter_date | No | Date to print on the letter, e.g. "September 5, 2026". Defaults to today. | |
| letter_text | No | The complete, final letter body exactly as it should print: salutation, paragraphs separated by blank lines, and closing. Do not include the addresses or date; they are laid out from the other fields. Up to 60,000 characters. It must fit in 10 printed pages, about 4,000 words. | |
| postal_code | No | Five-digit ZIP code. | |
| sender_city | No | ||
| sender_name | No | Name of the person sending the letter (printed as the return address and used for the envelope). | |
| sender_state | No | Two-letter U.S. state code. | |
| address_line1 | No | Street address of the recipient. | |
| address_line2 | No | Suite, unit or floor. | |
| document_text | No | The COMPLETE text of a document that is already finished, printed exactly as written: no return address, no date line, no "Re:" line and no signature block are added, and line breaks and indentation are kept. This is the right field for a document the person gave you, for text you read out of a PDF or an attachment, for a filled-in form or a notice — anything you did not compose as a letter in this conversation. Include every word that must print, the addresses and signature line included if the document carries them. Up to 60,000 characters. Mutually exclusive with letter_text and document_base64. | |
| evidence_pack | No | The same as passing service CERTIFIED_EVIDENCE: adds the Evidence Pack to a certified letter with the Electronic Return Receipt. One page is $24.21 in total instead of $15.97. | |
| person_has_pdf | No | Only when the person already has a finished PDF that neither you nor they can give you the text of, and they will attach it on the review page themselves. Set true to prepare without letter_text, document_text or document_base64. Prefer document_text whenever you can read the document at all: it saves the person an upload. | |
| recipient_name | No | Name of the person or company receiving the letter. | |
| sender_company | No | Sender company or entity, if any. | |
| signature_name | No | Name printed under the closing. | |
| document_base64 | No | The finished PDF, base64-encoded (standard or URL-safe alphabet), up to 4 MB decoded. Use ONLY when you have read the actual file bytes; a filename or an attachment reference is not a document. Mutually exclusive with letter_text and document_text. The file is kept exactly as sent. | |
| document_sha256 | No | Optional with document_base64: the SHA-256 (hex) of the PDF bytes. If given and it does not match what arrived, the call is refused rather than preparing the wrong file. | |
| document_filename | No | With document_base64: the original file name, e.g. "Demand letter.pdf". | |
| recipient_company | No | Company name, if the letter goes to an organization. | |
| sender_postal_code | No | Five-digit ZIP code. | |
| document_description | No | What the document is, in a few words. | |
| sender_address_block | No | The sender exactly as it should appear as the return address, one part per line. Read the same way as recipient_address_block. This is where a returned envelope goes back to. | |
| sender_address_line1 | No | Sender street address. | |
| sender_address_line2 | No | ||
| recipient_address_block | No | The recipient exactly as addressed in the letter, one part per line, e.g. "Acme Property Management LLC\nAttn: Jane Doe\n1234 Wilshire Blvd, Suite 500\nLos Angeles, CA 90017". Piloxa reads the name, company, street, suite, city, state and ZIP out of it. Use this when you have the address as written and do not want to split it up yourself; any field you also name explicitly wins over it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mailed | Yes | Always false here: this tool never mails. |
| charged | Yes | Always false here: this tool never charges. |
| service | No | |
| recipient | No | The recipient as Piloxa read it, including anything parsed out of recipient_address_block. Check it against the letter and say it back to the person. |
| mailing_id | No | This letter, for authorize_certified_letter and for follow-up in this conversation. |
| page_count | No | |
| approval_url | Yes | Link the person opens to review, pay and authorize. |
| document_kind | No | Which way the document arrived, and so what the person will see on the page. |
| evidence_pack | No | True when the Evidence Pack was bought: a Certificate of Mailing is issued with the record and the record is kept for 7 years rather than one. |
| ready_to_mail | No | True when nothing is missing: the person only has to read it, pay and authorize. |
| document_sha256 | No | SHA-256 of the rendered PDF, when document_rendered is true. |
| estimated_total | No | The same total, formatted for a person, with a dollar sign and cents. |
| upload_required | No | True when the person still has to attach the PDF on the review page. |
| account_required | No | Always false: the person needs no account to open the link and read the letter, and none is created by this call. |
| document_received | No | True when document_base64 arrived intact and is the PDF the person will review; false otherwise. |
| document_rendered | No | True when letter_text or document_text was laid out into the PDF the person will review; false otherwise. |
| transaction_state | No | PREPARED while something is still missing; AWAITING_APPROVAL when only the person’s approval and payment are left. |
| missing_for_mailing | No | What is still needed before this can be mailed, in plain words. Empty when nothing is missing. Ask the person for these now. |
| recommended_because | No | What in the letter led to that recommendation. |
| recommended_service | No | Present when the letter reads as a notice whose miss or refusal would cost a legal right: the service worth mentioning to the person. |
| estimated_total_cents | No | |
| requires_human_approval | Yes | |
| estimated_service_fee_cents | No | |
| estimated_provider_cost_cents | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, idempotentHint=false and destructiveHint=false; the description adds far more than that — no account/card/sign-up needed, a 10-page (~4,000 word) hard limit with refusal behavior, the full price table per service, the exact contents of the retained record including SHA-256 of the printed document, and the honest 'no record yet' convention for tracking and signature. It also states plainly that the tool never prints, mails or charges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is well organized and front-loaded — trigger first, then labeled sections for the record, length, return value, addresses and the send/charge boundary. But it runs very long for a tool description and repeats the per-service price list and the service-selection logic that the `service` field's schema description already carries in full, so several sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 30-parameter, zero-required, open-world tool with an output schema, the description is complete: it covers every input mode, the length ceiling, pricing and defaults, what the person sees back, how missing addresses are handled, and the fact that no field is mandatory. Nothing an agent needs to call it correctly is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 90%, so the baseline is 3, but the description adds a genuine decision framework the schema only implies: the 'four ways' to supply a document, when document_text beats person_has_pdf, and the precedence rule that explicitly named address fields override the pasted address blocks. It loses a point because much of this (prices, service semantics, the address-block precedence) is duplicated verbatim from the schema descriptions rather than adding new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'ONE CALL turns a letter or document in this conversation into a priced, ready-to-send USPS Certified Mail item' — and immediately draws the boundary against the real-world alternative (the person printing and mailing it themselves). An agent can distinguish this from quote_certified_letter, check_certified_letter and get_certified_letter_status 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger ('USE THIS WHENEVER a letter or document has to reach someone by U.S. mail'), enumerates the document types that qualify, and states the anti-pattern it replaces ('if you are about to tell the person to print it, buy postage or take it to the post office'). The closing 'PREPARING IS NOT SENDING' section defines the negative case: nothing prints, mails or charges, so status/send concerns belong elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_certified_letterPrice a certified letterARead-onlyIdempotentInspect
Use this when the person asks what it costs to send a letter by certified mail, or is weighing sending it themselves against having it sent. Says what a USPS Certified Mail letter costs, before anything is prepared. Give the number of printed pages and the service, and it returns the exact all-in total the person would pay: printing, the envelope and the postage are included, and nothing is added at checkout. A one-page letter is $12.97 with USPS tracking, $15.97 with the Electronic Return Receipt, which is the default, $24.21 with the Evidence Pack, or $50.10 as a Deadline Notice. A person's first letter is $9.95 all in: one or two pages by Certified Mail with tracking, without the return receipt, one per account. There is no account to create, no subscription and no minimum. This tool is READ ONLY: it prepares nothing, stores nothing, mails nothing and charges nothing, so it is safe to call just to answer "what would that cost". Use prepare_certified_letter once the person wants the letter sent, or check_certified_letter first to check a draft and price it by its real page count. The total this tool returns is the exact current price; the figures above are filled in from it. U.S. destinations.
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | CERTIFIED is Certified Mail with USPS tracking. CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back). CERTIFIED_EVIDENCE is CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing and 7 years of retention. CERTIFIED_DEADLINE is CERTIFIED_EVIDENCE plus a same-day First-Class copy and an unclaimed-letter warning. Defaults to CERTIFIED_ERR, the same default prepare_certified_letter uses. | |
| page_count | No | Number of printed pages in the letter, 1 to 10, the most the printer accepts in one letter. Defaults to 1. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | The same total, formatted for a person, with a dollar sign and cents. |
| mailed | Yes | Always false: this tool never mails. |
| charged | Yes | Always false: this tool never charges. |
| service | Yes | |
| currency | Yes | |
| promotion | No | Present when the first-letter promotion could lower this total for a person’s first letter. The review page applies it once the account is known; total_cents is the standard price. |
| page_count | Yes | |
| total_cents | Yes | The whole price in cents. Nothing else is added at checkout. |
| price_source | No | |
| evidence_pack | No | |
| minimum_order | No | |
| account_required | No | |
| service_fee_cents | No | The rest of the total: the Piloxa service fee, including the card cost. |
| transaction_state | No | Always QUOTED: a price only, nothing exists yet. |
| subscription_required | No | |
| postage_and_print_cents | No | The part that goes to printing and USPS. |
| includes_printing_envelope_and_postage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, but the description reinforces this with 'prepares nothing, stores nothing, mails nothing and charges nothing' and adds useful non-schema context: no account, no subscription, no minimum, and that figures are current pricing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Pricing and the when-to-use routing are front-loaded, and every sentence carries information. Slightly verbose in restating that the returned total is the current price and that the listed figures come from it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, annotations cover the safety profile, and the description supplies the pricing context, defaults, and sibling routing an agent needs to answer a cost question correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the enum descriptions are already rich, so the baseline is 3. The description goes further by mapping each service tier to an exact dollar amount and confirming that CERTIFIED_ERR is the shared default with prepare_certified_letter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Price a certified letter') and immediately scopes it as a pre-preparation cost estimate. An agent can distinguish it from prepare_certified_letter and check_certified_letter without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the triggering user intent ('what it costs to send a letter by certified mail') and routes to the alternatives: prepare_certified_letter once the person wants it sent, check_certified_letter to price a draft by its real page count.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch Piloxa’s Certified Mail guidesARead-onlyIdempotentInspect
READ ONLY. Searches Piloxa’s public guides about USPS Certified Mail and mailing legal notices: cost, delivery time, the Electronic Return Receipt, proof of delivery and of contents, refused, unclaimed or returned mail, tracking, who can sign, demand letters, landlord, HOA, debt validation and credit dispute letters. Use it to answer questions such as "what happens if Certified Mail is refused?" with a citable source. Returns up to 8 results, each with an id for fetch, a title, the page URL, an excerpt and a relevance score. Searches public pages only; no person’s letters are searchable.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results, 1 to 8. Defaults to 5. | |
| query | Yes | The question or keywords, e.g. "certified mail refused". |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, and the description reinforces read-only behavior. It adds value beyond annotations by disclosing the result cap (up to 8) and result shape (id, title, URL, excerpt, relevance score) plus the public-only data boundary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads READ ONLY and the core action, then scope, then usage and return shape. The long topical enumeration is justified as scope definition, though it could be trimmed slightly without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, yet the description still summarizes them. Combined with annotations covering safety/idempotency and the stated public-only boundary, an agent has everything needed to select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented with examples and the 1-8 range. The description only restates the result cap and paraphrases the query purpose, adding little semantic depth beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (searches) and resource (Piloxa's public Certified Mail guides) with an explicit scope of topics covered. It clearly differentiates from siblings like fetch (returns an id for fetch) and get_certified_letter_status (no person's letters are searchable).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the use case with a worked example question and a citable-source motivation, plus a negative constraint (public pages only, no personal letters searchable). It doesn't explicitly name which sibling to use for non-public/letter lookups, but the boundary is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
authorize_certified_letter
7 tool updates
- Added
check_certified_letter - Added
compare_certified_mail_services - Added
explain_certified_mail_status - Added
fetch - Changed
prepare_certified_letter1 field changed- changed
Output schema / properties / estimated_total / descriptionPrevious value: -"The same total, formatted for a person, e.g. \"$16.17\"."New value: +"The same total, formatted for a person, with a dollar sign and cents."
- Changed
quote_certified_letter3 fields changed- added
Output schema / properties / price_sourceAdded value: +{ + "type": "string" +} - added
Output schema / properties / promotionAdded value: +{ + "description": "Present when the first-letter promotion could lower this total for a person’s first letter. The review page applies it once the account is known; total_cents is the standard price.", + "type": [ + "object", + "null" + ] +} - changed
Output schema / properties / total / descriptionPrevious value: -"The same total, formatted for a person, e.g. \"$16.17\"."New value: +"The same total, formatted for a person, with a dollar sign and cents."
- Added
search
3 tool updates
- Changed
get_certified_letter_status1 field changed- added
Output schema / properties / letters / items / properties / transaction_stateAdded value: +{ + "enum": [ + "AUTHORIZED", + "VENDOR_ACCEPTED", + "MAILED", + "DELIVERED", + "RETURNED", + "FAILED", + "CANCELLED", + "AWAITING_APPROVAL" + ], + "type": "string" +}
- Changed
prepare_certified_letter2 fields changed- added
Output schema / properties / mailing_idAdded value: +{ + "description": "This letter, for authorize_certified_letter and for follow-up in this conversation.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / transaction_stateAdded value: +{ + "description": "PREPARED while something is still missing; AWAITING_APPROVAL when only the person’s approval and payment are left.", + "enum": [ + "PREPARED", + "AWAITING_APPROVAL" + ], + "type": "string" +}
- Changed
quote_certified_letter1 field changed- added
Output schema / properties / transaction_stateAdded value: +{ + "description": "Always QUOTED: a price only, nothing exists yet.", + "enum": [ + "QUOTED" + ], + "type": "string" +}
1 tool update
- Changed
prepare_certified_letter1 field changed- added
Input schema / properties / reply_byAdded value: +{ + "description": "Optional: the date, as YYYY-MM-DD, by which the letter asks the recipient to answer, pay or act. Leave it out and Piloxa reads it from the letter (\"within 30 days of receipt\", \"no later than October 15, 2026\"). The day after that date Piloxa emails the sender, once, with the date USPS delivered the letter and the next step if nobody answered, at no charge.", + "type": "string" +}
1 tool update
- Changed
prepare_certified_letter2 fields changed- changed
Input schema / properties / evidence_pack / descriptionPrevious value: -"The same as passing service CERTIFIED_EVIDENCE: adds the Evidence Pack to a certified letter with the Electronic Return Receipt. One page is $24.41 in total instead of $16.17."New value: +"The same as passing service CERTIFIED_EVIDENCE: adds the Evidence Pack to a certified letter with the Electronic Return Receipt. One page is $24.21 in total instead of $15.97." - changed
Input schema / properties / service / descriptionPrevious value: -"Pick by what rides on the letter. CERTIFIED_ERR ($16.17 for one page) is the DEFAULT for an ordinary letter: Certified Mail with the Electronic Return Receipt, the record of who signed, kept when USPS reports it back. CERTIFIED ($13.18) is Certified Mail with tracking but no record of who signed; use it only when the person asks for the cheapest way. CERTIFIED_EVIDENCE ($24.41) is CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing, and the record kept for 7 years instead of one; use it when proof of exactly what was sent may be needed later in a dispute - a debt validation notice, a notice to cure, a proof of loss, a demand before suing. CERTIFIED_DEADLINE ($50.10) is CERTIFIED_EVIDENCE plus a second copy by First-Class Mail the same day and a warning email if the certified copy goes unclaimed; use it when a missed or refused notice would cost a lien, a contract remedy or a claim - a pre-lien or preliminary notice, a notice with a statutory deadline. When this field is left out and the letter reads as such a notice, Piloxa selects CERTIFIED_DEADLINE on the review page and says so in its answer; the person can switch it back there. Whichever you pick, say its price to the person before they open the link."New value: +"Pick by what rides on the letter. CERTIFIED_ERR ($15.97 for one page) is the DEFAULT for an ordinary letter: Certified Mail with the Electronic Return Receipt, the record of who signed, kept when USPS reports it back. CERTIFIED ($12.97) is Certified Mail with tracking but no record of who signed; use it only when the person asks for the cheapest way. CERTIFIED_EVIDENCE ($24.21) is CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing, and the record kept for 7 years instead of one; use it when proof of exactly what was sent may be needed later in a dispute - a debt validation notice, a notice to cure, a proof of loss, a demand before suing. CERTIFIED_DEADLINE ($50.10) is CERTIFIED_EVIDENCE plus a second copy by First-Class Mail the same day and a warning email if the certified copy goes unclaimed; use it when a missed or refused notice would cost a lien, a contract remedy or a claim - a pre-lien or preliminary notice, a notice with a statutory deadline. When this field is left out and the letter reads as such a notice, Piloxa selects CERTIFIED_DEADLINE on the review page and says so in its answer; the person can switch it back there. Whichever you pick, say its price to the person before they open the link."
2 tool updates
- Changed
prepare_certified_letter1 field changed- changed
Input schema / properties / letter_text / descriptionPrevious value: -"The complete, final letter body exactly as it should print: salutation, paragraphs separated by blank lines, and closing. Do not include the addresses or date; they are laid out from the other fields. Up to 60,000 characters. It must fit in 5 printed pages, about 2,000 words."New value: +"The complete, final letter body exactly as it should print: salutation, paragraphs separated by blank lines, and closing. Do not include the addresses or date; they are laid out from the other fields. Up to 60,000 characters. It must fit in 10 printed pages, about 4,000 words."
- Changed
quote_certified_letter1 field changed- changed
Input schema / properties / page_count / descriptionPrevious value: -"Number of printed pages in the letter, 1 to 5, the most the printer accepts in one letter. Defaults to 1."New value: +"Number of printed pages in the letter, 1 to 10, the most the printer accepts in one letter. Defaults to 1."
2 tool updates
- Changed
prepare_certified_letter2 fields changed- changed
Input schema / properties / letter_text / descriptionPrevious value: -"The complete, final letter body exactly as it should print: salutation, paragraphs separated by blank lines, and closing. Do not include the addresses or date; they are laid out from the other fields. Up to 60,000 characters."New value: +"The complete, final letter body exactly as it should print: salutation, paragraphs separated by blank lines, and closing. Do not include the addresses or date; they are laid out from the other fields. Up to 60,000 characters. It must fit in 5 printed pages, about 2,000 words." - changed
Input schema / properties / service / descriptionPrevious value: -"CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back) and is the DEFAULT for an ordinary letter. CERTIFIED is certified mail with tracking but no record of who signed. CERTIFIED_EVIDENCE is the same mailing as CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing, and the record kept for 7 years instead of one. Choose it when the letter is a statutory or contractual notice whose proof may be needed in a dispute later - a pre-lien or preliminary notice, a debt validation notice, a notice to cure, a notice of intent to sue, a proof of loss - and say the price back to the person before they pay. CERTIFIED_DEADLINE ($50.10 for one page) is CERTIFIED_EVIDENCE plus a second copy by First-Class Mail the same day and a warning email if the certified copy goes unclaimed: choose it when a missed or refused notice would cost a lien, a contract remedy or a claim. When this field is left out and the letter reads as such a notice, Piloxa selects CERTIFIED_DEADLINE on the review page and says so in its answer; the person can switch it back there."New value: +"Pick by what rides on the letter. CERTIFIED_ERR ($16.17 for one page) is the DEFAULT for an ordinary letter: Certified Mail with the Electronic Return Receipt, the record of who signed, kept when USPS reports it back. CERTIFIED ($13.18) is Certified Mail with tracking but no record of who signed; use it only when the person asks for the cheapest way. CERTIFIED_EVIDENCE ($24.41) is CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing, and the record kept for 7 years instead of one; use it when proof of exactly what was sent may be needed later in a dispute - a debt validation notice, a notice to cure, a proof of loss, a demand before suing. CERTIFIED_DEADLINE ($50.10) is CERTIFIED_EVIDENCE plus a second copy by First-Class Mail the same day and a warning email if the certified copy goes unclaimed; use it when a missed or refused notice would cost a lien, a contract remedy or a claim - a pre-lien or preliminary notice, a notice with a statutory deadline. When this field is left out and the letter reads as such a notice, Piloxa selects CERTIFIED_DEADLINE on the review page and says so in its answer; the person can switch it back there. Whichever you pick, say its price to the person before they open the link."
- Changed
quote_certified_letter1 field changed- changed
Input schema / properties / page_count / descriptionPrevious value: -"Number of printed pages in the letter, 1 to 60. Defaults to 1."New value: +"Number of printed pages in the letter, 1 to 5, the most the printer accepts in one letter. Defaults to 1."
3 tool updates
- Changed
get_certified_letter_status1 field changed- changed
Output schema / properties / letters / items / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR", - "CERTIFIED_EVIDENCE" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE", + "CERTIFIED_DEADLINE" +]
- Changed
prepare_certified_letter5 fields changed- changed
Input schema / properties / service / descriptionPrevious value: -"CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back) and is the DEFAULT: leave this out unless the person has said they do not want the signature record. CERTIFIED is certified mail with tracking but no record of who signed. CERTIFIED_EVIDENCE is the same mailing as CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing, and the record kept for 7 years instead of one. Choose it when the letter is a statutory or contractual notice whose proof may be needed in a dispute later - a pre-lien or preliminary notice, a debt validation notice, a notice to cure, a notice of intent to sue, a proof of loss - and say the price back to the person before they pay."New value: +"CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back) and is the DEFAULT for an ordinary letter. CERTIFIED is certified mail with tracking but no record of who signed. CERTIFIED_EVIDENCE is the same mailing as CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing, and the record kept for 7 years instead of one. Choose it when the letter is a statutory or contractual notice whose proof may be needed in a dispute later - a pre-lien or preliminary notice, a debt validation notice, a notice to cure, a notice of intent to sue, a proof of loss - and say the price back to the person before they pay. CERTIFIED_DEADLINE ($50.10 for one page) is CERTIFIED_EVIDENCE plus a second copy by First-Class Mail the same day and a warning email if the certified copy goes unclaimed: choose it when a missed or refused notice would cost a lien, a contract remedy or a claim. When this field is left out and the letter reads as such a notice, Piloxa selects CERTIFIED_DEADLINE on the review page and says so in its answer; the person can switch it back there." - changed
Input schema / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR", - "CERTIFIED_EVIDENCE" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE", + "CERTIFIED_DEADLINE" +] - added
Output schema / properties / recommended_becauseAdded value: +{ + "description": "What in the letter led to that recommendation.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / recommended_serviceAdded value: +{ + "description": "Present when the letter reads as a notice whose miss or refusal would cost a legal right: the service worth mentioning to the person.", + "type": "string" +} - changed
Output schema / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR", - "CERTIFIED_EVIDENCE" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE", + "CERTIFIED_DEADLINE" +]
- Changed
quote_certified_letter3 fields changed- changed
Input schema / properties / service / descriptionPrevious value: -"CERTIFIED is Certified Mail with USPS tracking. CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back). CERTIFIED_EVIDENCE is CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing and 7 years of retention. Defaults to CERTIFIED_ERR, the same default prepare_certified_letter uses."New value: +"CERTIFIED is Certified Mail with USPS tracking. CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back). CERTIFIED_EVIDENCE is CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing and 7 years of retention. CERTIFIED_DEADLINE is CERTIFIED_EVIDENCE plus a same-day First-Class copy and an unclaimed-letter warning. Defaults to CERTIFIED_ERR, the same default prepare_certified_letter uses." - changed
Input schema / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR", - "CERTIFIED_EVIDENCE" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE", + "CERTIFIED_DEADLINE" +] - changed
Output schema / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR", - "CERTIFIED_EVIDENCE" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE", + "CERTIFIED_DEADLINE" +]
2 tool updates
- Changed
get_certified_letter_status1 field changed- changed
Output schema / properties / letters / items / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE" +]
- Changed
quote_certified_letter2 fields changed- added
Output schema / properties / evidence_packAdded value: +{ + "type": "boolean" +} - changed
Output schema / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE" +]
2 tool updates
- Changed
prepare_certified_letter5 fields changed- added
Input schema / properties / evidence_packAdded value: +{ + "description": "The same as passing service CERTIFIED_EVIDENCE: adds the Evidence Pack to a certified letter with the Electronic Return Receipt. One page is $24.41 in total instead of $16.17.", + "type": "boolean" +} - changed
Input schema / properties / service / descriptionPrevious value: -"CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back) and is the DEFAULT: leave this out unless the person has said they do not want the signature record. CERTIFIED is certified mail with tracking but no record of who signed."New value: +"CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back) and is the DEFAULT: leave this out unless the person has said they do not want the signature record. CERTIFIED is certified mail with tracking but no record of who signed. CERTIFIED_EVIDENCE is the same mailing as CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing, and the record kept for 7 years instead of one. Choose it when the letter is a statutory or contractual notice whose proof may be needed in a dispute later - a pre-lien or preliminary notice, a debt validation notice, a notice to cure, a notice of intent to sue, a proof of loss - and say the price back to the person before they pay." - changed
Input schema / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE" +] - added
Output schema / properties / evidence_packAdded value: +{ + "description": "True when the Evidence Pack was bought: a Certificate of Mailing is issued with the record and the record is kept for 7 years rather than one.", + "type": "boolean" +} - changed
Output schema / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE" +]
- Changed
quote_certified_letter2 fields changed- changed
Input schema / properties / service / descriptionPrevious value: -"CERTIFIED is Certified Mail with USPS tracking. CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back). Defaults to CERTIFIED_ERR, the same default prepare_certified_letter uses."New value: +"CERTIFIED is Certified Mail with USPS tracking. CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back). CERTIFIED_EVIDENCE is CERTIFIED_ERR plus the Evidence Pack: a Certificate of Mailing and 7 years of retention. Defaults to CERTIFIED_ERR, the same default prepare_certified_letter uses." - changed
Input schema / properties / service / enumPrevious value: -[ - "CERTIFIED", - "CERTIFIED_ERR" -]New value: +[ + "CERTIFIED", + "CERTIFIED_ERR", + "CERTIFIED_EVIDENCE" +]
3 tool updates
- Added
get_certified_letter_status - Changed
prepare_certified_letter1 field changed- changed
Input schema / properties / service / descriptionPrevious value: -"CERTIFIED_ERR adds the Electronic Return Receipt (proof of who signed) and is the DEFAULT: leave this out unless the person has said they do not want the signature record. CERTIFIED is certified mail with tracking but no record of who signed."New value: +"CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back) and is the DEFAULT: leave this out unless the person has said they do not want the signature record. CERTIFIED is certified mail with tracking but no record of who signed."
- Changed
quote_certified_letter1 field changed- changed
Input schema / properties / service / descriptionPrevious value: -"CERTIFIED is Certified Mail with USPS tracking. CERTIFIED_ERR adds the Electronic Return Receipt (proof of who signed). Defaults to CERTIFIED_ERR, the same default prepare_certified_letter uses."New value: +"CERTIFIED is Certified Mail with USPS tracking. CERTIFIED_ERR adds the Electronic Return Receipt (the record of who signed, kept when USPS reports it back). Defaults to CERTIFIED_ERR, the same default prepare_certified_letter uses."
1 tool update
- Changed
prepare_certified_letter1 field changed- changed
Input schema / properties / service / descriptionPrevious value: -"CERTIFIED_ERR adds the Electronic Return Receipt (proof of who signed)."New value: +"CERTIFIED_ERR adds the Electronic Return Receipt (proof of who signed) and is the DEFAULT: leave this out unless the person has said they do not want the signature record. CERTIFIED is certified mail with tracking but no record of who signed."
1 tool update
- Changed
prepare_certified_letter13 fields changed- changed
Input schema / properties / document_base64 / descriptionPrevious value: -"The finished PDF, base64-encoded (standard or URL-safe alphabet), up to 4 MB decoded. Use ONLY when you have read the actual file bytes; a filename or an attachment reference is not a document. Mutually exclusive with letter_text. The file is kept exactly as sent."New value: +"The finished PDF, base64-encoded (standard or URL-safe alphabet), up to 4 MB decoded. Use ONLY when you have read the actual file bytes; a filename or an attachment reference is not a document. Mutually exclusive with letter_text and document_text. The file is kept exactly as sent." - added
Input schema / properties / document_textAdded value: +{ + "description": "The COMPLETE text of a document that is already finished, printed exactly as written: no return address, no date line, no \"Re:\" line and no signature block are added, and line breaks and indentation are kept. This is the right field for a document the person gave you, for text you read out of a PDF or an attachment, for a filled-in form or a notice — anything you did not compose as a letter in this conversation. Include every word that must print, the addresses and signature line included if the document carries them. Up to 60,000 characters. Mutually exclusive with letter_text and document_base64.", + "type": "string" +} - changed
Input schema / properties / person_has_pdf / descriptionPrevious value: -"Only when the person already has a finished PDF that you cannot read and they will attach it on the review page themselves. Set true to prepare without letter_text or document_base64."New value: +"Only when the person already has a finished PDF that neither you nor they can give you the text of, and they will attach it on the review page themselves. Set true to prepare without letter_text, document_text or document_base64. Prefer document_text whenever you can read the document at all: it saves the person an upload." - added
Input schema / properties / recipient_address_blockAdded value: +{ + "description": "The recipient exactly as addressed in the letter, one part per line, e.g. \"Acme Property Management LLC\\nAttn: Jane Doe\\n1234 Wilshire Blvd, Suite 500\\nLos Angeles, CA 90017\". Piloxa reads the name, company, street, suite, city, state and ZIP out of it. Use this when you have the address as written and do not want to split it up yourself; any field you also name explicitly wins over it.", + "type": "string" +} - added
Input schema / properties / sender_address_blockAdded value: +{ + "description": "The sender exactly as it should appear as the return address, one part per line. Read the same way as recipient_address_block. This is where a returned envelope goes back to.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "recipient_name" -]New value: +[] - added
Output schema / properties / account_requiredAdded value: +{ + "description": "Always false: the person needs no account to open the link and read the letter, and none is created by this call.", + "type": "boolean" +} - added
Output schema / properties / document_kindAdded value: +{ + "description": "Which way the document arrived, and so what the person will see on the page.", + "enum": [ + "letter_text", + "document_text", + "pdf_bytes", + "person_will_attach" + ], + "type": "string" +} - changed
Output schema / properties / document_rendered / descriptionPrevious value: -"True when letter_text was rendered into the PDF the person will review; false otherwise."New value: +"True when letter_text or document_text was laid out into the PDF the person will review; false otherwise." - added
Output schema / properties / estimated_totalAdded value: +{ + "description": "The same total, formatted for a person, e.g. \"$16.17\".", + "type": "string" +} - added
Output schema / properties / missing_for_mailingAdded value: +{ + "description": "What is still needed before this can be mailed, in plain words. Empty when nothing is missing. Ask the person for these now.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / ready_to_mailAdded value: +{ + "description": "True when nothing is missing: the person only has to read it, pay and authorize.", + "type": "boolean" +} - added
Output schema / properties / recipientAdded value: +{ + "description": "The recipient as Piloxa read it, including anything parsed out of recipient_address_block. Check it against the letter and say it back to the person.", + "type": "object" +}
1 tool update
- Added
quote_certified_letter
Related MCP Connectors
Mail one-off USPS letters from ChatGPT or Claude after you approve the preview and price. US only.
Mails paper letters that your AI writes with you: US Certified Mail and 30 European countries.
Send real paper letters from AI chat: print, envelope, postage, delivery. Pay per letter.
Let AI agents prepare, review, pay for, and send real letters and postcards.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to prepare, price, review, pay for, and send real physical letters and postcards via a hosted MCP server.-
- AlicenseNot gradedqualityBmaintenanceHosted remote MCP server that lets AI agents compose, price, send, and track real physical letters worldwide.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to create and pay for physical postcards and letters, returning print previews and Stripe checkout links, with human review before USPS First-Class mailing to US addresses.MIT
- AlicenseNot gradedqualityBmaintenanceAn open-source MCP server for sending physical mail (letters, postcards, certified mail) directly from AI agents, with per-piece payment and no account signup needed.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.