Skip to main content
Glama

PostalForm

Server Details

Create mail drafts, upload PDFs, browse forms, track orders, and pay via MPP or x402.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.8/5.0

Scored across 13 tools

Disambiguation3/5

Four near-parallel creation tools (create_order_draft, create_letter_order_draft, create_form_order_draft, create_machine_order) overlap heavily, differing mainly by document type and payment rail, and the descriptions cross-reference each other in dense prose. Payment tools complete_checkout (Stripe) and pay_order (MPP) are distinguishable but easily conflated. An agent can eventually tell them apart from the long descriptions, but the boundaries are not crisp.

Naming Consistency3/5

Most tools share a postalform. prefix and verb_noun ordering, but complete_checkout drops the prefix entirely and create_machine_order breaks the *_order_draft pattern. The mix of prefixed/unprefixed and draft/order/machine naming yields readable but inconsistent conventions.

Tool Count4/5

13 tools is well within a healthy range and covers creation, payment, preview, schema, status, and address lookup. A couple of create tools are arguably redundant, so it is slightly heavy rather than perfectly scoped.

Completeness4/5

The draft -> preview -> pay -> status lifecycle, form catalog/schema, address search, and PDF upload are all present. Cancellation or refund operations are absent, but core mailing workflows are covered with no obvious dead ends.

Available Tools

13 tools
complete_checkoutPay a prepared checkoutAInspect

After the buyer approves the prepared order and total, pay its existing checkout session using a compatible Stripe payment token, including a shared payment token (spt_...). Pass the order ID as checkout_session_id; do not resend the document or addresses. On an interrupted request, retry the same checkout and token. Existing authorized, processing, or paid payments are reused; follow the returned status and messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
buyerYesBuyer identity details for the approved checkout.
payment_dataYesBuyer-authorized payment token details. Use provider=stripe.
checkout_session_idYesThe checkout session id to finalize.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
buyerYes
linksYes
orderNo
statusYes
totalsYes
currencyYes
messagesYes
line_itemsYes
fulfillment_addressNo
fulfillment_optionsYes
fulfillment_option_idNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds real behavioral value: retry the same checkout/token on interruption and reuse of existing authorized/processing/paid payments, which signals idempotent semantics an agent would not otherwise know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The precondition is front-loaded and each sentence carries distinct information (precondition, token type, parameter mapping, retry, reuse). It is slightly dense but has no redundant filler.

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?

For a payment-finalization tool with nested objects and an output schema already present, the description covers the prerequisite, parameter intent, retry/idempotency, and points to the returned status. Return-value details are correctly left to the output schema; only the sibling relationship with pay_order is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond it: it clarifies that checkout_session_id is the order ID and instructs not to resend the document or addresses, constraining how buyer/payment_data should be populated.

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?

States a specific verb and resource: pay an existing/prepared checkout session after approval, with the payment token. It is clear what the tool does, though it never names or contrasts with the sibling pay_order, so sibling differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Gives a clear precondition (buyer has approved the prepared order and total) and explicit do-nots (do not resend the document or addresses), plus retry guidance. It does not explicitly route the agent away from or toward the sibling pay_order, so it stops short of full when/when-not coverage.

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

postalform.create_form_order_draftCreate a mail order draft from a workflow form submissionAInspect

Prepare a supported workflow form for mailing and return the order ID, total, hosted checkout URL, and checkout session. After buyer approval, a compatible client can use complete_checkout with a Stripe shared payment token; otherwise present the hosted checkout URL. To prepare for MPP, set payment_protocol=mpp and buyer_email; receive a PDF preview, hosted checkout_url fallback and MPP challenge, then use postalform.pay_order with the order_id after buyer approval. Draft creation never pays. For x402, use postalform.create_machine_order.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes
colorNo
fieldsNo
certifiedNo
buyer_nameNoReceipt name; defaults to sender_name for MPP.
mail_classNo
request_idNo
attachmentsNo
buyer_emailNoRequired for MPP receipt delivery.
sender_nameYes
double_sidedNo
recipient_nameNo
payment_protocolNoOptional payment path. Defaults to hosted checkout. Choose mpp to return a payment challenge for this same prepared order; buyer_email is required. Draft creation never pays.
sender_address_idNo
sender_address_textNo
sender_address_typeYes
recipient_address_idNo
sender_address_manualNo
recipient_address_textNo
recipient_address_typeNo
use_workflow_recipientNoDeprecated compatibility field. Predefined and computed workflow recipients are always enforced and cannot be overridden.
certified_return_receiptNo
recipient_address_manualNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
viewYes
paymentNo
order_idYes
price_usdYes
page_countYes
preview_urlNo
sender_nameYes
checkout_urlYes
recipient_nameYes
checkout_sessionNo
payment_protocolNo
sender_address_textYes
recipient_address_textYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, and the description adds the crucial non-obvious trait that draft creation never pays and that a downstream call is required. It also describes the two payment-path responses (checkout session vs MPP challenge + PDF preview). It does not disclose idempotency behavior or what happens to the draft if never paid, which is why this is a 4 rather than 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with purpose and outputs, then payment paths in order of likelihood. Every sentence carries routing or behavioral information, though the MPP sentence is slightly compressed and the x402 pointer could sit earlier for faster triage.

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?

For a 23-parameter, multi-protocol tool with an output schema, this covers the decision-relevant behavior: outputs, non-payment invariant, and the handoff to complete_checkout/pay_order. It omits what a 'supported workflow form' means and how slug, sender/recipient address types, and attachments interact, which a caller must infer.

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 only 17% across 23 parameters, so the description carries a heavy burden and only partially meets it: it explains payment_protocol=mpp and the buyer_email requirement, which are the highest-consequence parameters. The three required parameters (slug, sender_name, sender_address_type) and the address/attachment/class options get no explanation beyond the schema, so the coverage gap is not fully compensated.

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 ('Prepare a supported workflow form for mailing') and names the key outputs, and it explicitly distinguishes itself from siblings by pointing x402 callers to postalform.create_machine_order. An agent can tell this apart from create_order_draft, create_letter_order_draft and create_machine_order 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.

Usage Guidelines5/5

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

Gives explicit routing: hosted checkout URL by default, complete_checkout with a Stripe shared payment token after buyer approval, mpp mode via payment_protocol=mpp plus buyer_email followed by postalform.pay_order, and x402 via a different tool. It also states the when-not ('Draft creation never pays') so the agent knows this tool stops short of payment.

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

postalform.create_letter_order_draftCreate a mail order draft from letter textAInspect

Prepare letter text for mailing and return the order ID, total, hosted checkout URL, and checkout session. Accepts text directly; no PDF upload or browser is needed. Letter drafts may include typed or drawn signatures. After buyer approval, a compatible client can use complete_checkout with a Stripe shared payment token; otherwise present the hosted checkout URL. To prepare for MPP, set payment_protocol=mpp and buyer_email; receive a PDF preview, hosted checkout_url fallback and MPP challenge, then use postalform.pay_order with the order_id after buyer approval. Draft creation never pays. For x402, use postalform.create_machine_order.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
letterYes
certifiedNo
buyer_nameNoReceipt name; defaults to sender_name for MPP.
mail_classNo
request_idNo
buyer_emailNoRequired for MPP receipt delivery.
sender_nameYes
double_sidedNo
recipient_nameYes
payment_protocolNoOptional payment path. Defaults to hosted checkout. Choose mpp to return a payment challenge for this same prepared order; buyer_email is required. Draft creation never pays.
sender_address_idNo
sender_address_textNo
sender_address_typeYes
recipient_address_idNo
sender_address_manualNo
recipient_address_textNo
recipient_address_typeYes
certified_return_receiptNo
recipient_address_manualNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
viewYes
paymentNo
order_idYes
price_usdYes
page_countYes
preview_urlNo
sender_nameYes
checkout_urlYes
recipient_nameYes
checkout_sessionNo
payment_protocolNo
sender_address_textYes
recipient_address_textYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the write/safety profile is already covered. The description adds real behavioral context beyond that: 'Draft creation never pays', the exact return payload (order ID, total, hosted checkout URL, checkout session), the MPP challenge/preview behavior, and that signatures may be typed or drawn. It stops short of stating auth requirements or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and the returned artifacts, then the checkout/MPP branches. Every sentence carries routing or behavioral information; the MPP and x402 sentences are dense but each names a distinct flow rather than 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?

For a 20-parameter, nested-object tool with an output schema, the description covers the payment lifecycle, the signature capability, and sibling routing well. The remaining gap is the address-selection parameters and mailing options (mail_class, certified, double_sided), which are left entirely to a sparse schema.

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 only 15% across 20 parameters, so the description carries a heavy burden. It does clarify payment_protocol and buyer_email and notes that letter text and signatures are supplied inline, but it never explains the Address/Container/Manual address_type enums or how address_id vs address_text vs address_manual differ — the single most ambiguous part of the schema.

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 ('Prepare letter text for mailing' returning an order ID), and clearly distinguishes itself from create_pdf_upload ('no PDF upload or browser is needed') and create_machine_order ('For x402, use postalform.create_machine_order'). An agent can route among the sibling draft creators 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.

Usage Guidelines5/5

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

Explicitly lays out the branches: use complete_checkout after buyer approval with a Stripe shared payment token, otherwise present the hosted checkout URL; set payment_protocol=mpp plus buyer_email for MPP and then call postalform.pay_order; use create_machine_order for x402. When-to-use and which-alternative are both spelled out.

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

postalform.create_machine_orderCreate or pay a machine orderAInspect

Create a single PDF, letter, workflow-form order, or bulk letter campaign and pay through MPP or x402 after buyer approval. For bulk, provide exactly one of bulk.csv_content or bulk.recipients (JSON address objects with optional merge_fields), plus a shared PDF or text/HTML template. Omit top-level recipient fields and review campaign_url, recipient count and total. Bulk MPP orders can also use postalform.pay_order after fetching its challenge. The unpaid response also includes checkout_url and status_url for this same order. Without an available compatible wallet, give the buyer checkout_url and poll status_url; never recreate the order to change payment paths. Single-recipient clients with a Stripe shared payment token can instead use a draft tool followed by complete_checkout; other clients should present the hosted checkout URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdfNoExisting PDF to mail. For a single recipient, provide exactly one of pdf, letter, or form. For bulk.content_mode=pdf, this PDF is sent to every CSV or JSON recipient. Prefer upload_token from postalform.create_pdf_upload.
bulkNoBulk letter campaign: exactly one of csv_content or recipients (JSON list), plus shared PDF or text/HTML template. Omit single-recipient fields, letter, form, and postcard options. color and double_sided apply to every mailpiece.
formNoWorkflow form payload from postalform.get_form_schema. Provide exactly one of pdf, letter, or form.
colorNo
letterNoLetter text to render and mail. Provide exactly one of pdf, letter, or form. Optional format may be text, html, markdown, or rtf; default is text. Optional signature may be a typed string or drawn signature payload.
certifiedNo
file_nameNo
buyer_nameYesBuyer name for receipts.
mail_classNo
request_idNoIdempotency key. Reuse the same value and same order fields after a payment challenge.
buyer_emailYesBuyer email for receipts.
sender_nameYes
double_sidedNo
postcard_sizeNo
mailpiece_typeNo
recipient_nameNoRequired for a single recipient. Omit when bulk supplies the recipient list.
payment_protocolNoDirect machine payment protocol. Use mpp for Link CLI/Link MCP or Stripe SPT; use x402 for x402 wallet clients. Defaults to mpp.
payment_signatureNox402 retry value after paying the PAYMENT-REQUIRED challenge.
sender_address_idNo
signature_requiredNo
sender_address_textNo
sender_address_typeNo
recipient_address_idNo
payment_authorizationNoMPP retry value after paying with Link CLI/Link MCP. Pass the full Authorization header value, usually "Payment ...".
sender_address_manualNo
recipient_address_textNo
recipient_address_typeNo
certified_return_receiptNo
recipient_address_manualNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
bulkNo
viewYes
statusYes
is_paidYes
paymentNo
currencyYes
endpointYes
order_idYes
protocolYes
next_stepNo
price_usdYes
page_countNo
request_idYes
status_urlNo
next_actionNo
preview_urlNo
campaign_urlNo
checkout_urlNo
postcard_sizeYes
mailpiece_typeYes
payment_statusYes
payment_optionsNo
order_complete_urlYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare openWorldHint=true, readOnlyHint=false, and destructiveHint=false, so the safety profile is partly covered. The description adds non-obvious behavior: payment challenge/retry flow, that the unpaid response carries checkout_url and status_url, buyer-approval gating, and the anti-pattern of recreating orders for payment paths. It stops short of discussing idempotency explicitly (only implied via request_id in the schema) or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is dense and front-loaded, leading with creation scope before enumerating payment and bulk rules. It is longer than ideal and mixes bulk-mode constraints with payment-protocol guidance, but each sentence carries operational content rather than filler.

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?

An output schema exists, so return-shape explanation is unnecessary, and the description covers the two dominant flows (single-recipient and bulk) plus payment fallbacks. Given 29 parameters and nested objects, it leaves a fair amount of per-field semantics to the schema, but the critical routing and bulk rules are present.

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 only 38% across 29 parameters, so the description must compensate. It usefully explains the bulk exclusivity rule (exactly one of bulk.csv_content or bulk.recipients plus a shared PDF or template) and the 'omit top-level recipient fields' rule, but the many single-recipient options (color, double_sided, mail_class, certified, postcard_size, render/signature details) receive no description-level clarification.

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?

The description opens with a specific verb and resource set: 'Create a single PDF, letter, workflow-form order, or bulk letter campaign and pay through MPP or x402.' It also names the sibling alternatives it is not (pay_order for bulk MPP, draft + complete_checkout for Stripe SPT), so an agent can distinguish it from the surrounding order tools without opening schemas.

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?

It gives explicit routing: use this for machine orders, use postalform.pay_order for bulk MPP retries, use a draft tool plus complete_checkout for Stripe SPT single-recipient clients, and otherwise present the hosted checkout URL. It also states the when-not condition ('never recreate the order to change payment paths') and the no-wallet fallback.

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

postalform.create_order_draftCreate a mail order draftAInspect

Prepare an existing PDF for mailing and return the order ID, total, hosted checkout URL, and checkout session. After buyer approval, a compatible client can pass a Stripe shared payment token to complete_checkout; otherwise present the hosted checkout URL. To prepare for MPP, set payment_protocol=mpp and buyer_email; receive a PDF preview, hosted checkout_url fallback and MPP challenge, then use postalform.pay_order with the order_id after buyer approval. Draft creation never pays. For x402, use postalform.create_machine_order.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdfYesThe PDF to mail. Accepts attachment objects ({ download_url, file_id }). Fallbacks: upload_token from postalform.create_pdf_upload, data:application/pdf;base64,..., or a public HTTPS download URL.
colorNoWhether to print in color (default: false).
certifiedNoWhether to add proof mail: USPS Certified Mail for US destinations, Canada Post Registered Mail through PostGrid for Canadian destinations, or PinGen registered mail for supported European destinations (default: false).
file_nameNoOptional display file name.
buyer_nameNoReceipt name; defaults to sender_name for MPP.
mail_classNoMail service level (standard, priority, express).
request_idNoOptional idempotency key. Reuse the same value if retrying the call.
buyer_emailNoRequired for MPP receipt delivery.
sender_nameYesSender's name (return address).
double_sidedNoWhether to print double-sided (default: true).
recipient_nameYesRecipient's name.
payment_protocolNoOptional payment path. Defaults to hosted checkout. Choose mpp to return a payment challenge for this same prepared order; buyer_email is required. Draft creation never pays.
sender_address_idNoLoqate address id for the sender (required when sender_address_type is Address).
sender_address_textNoHuman-readable sender address preview (required when sender_address_type is Address; optional for Manual).
sender_address_typeYesAddress suggestion type for the sender (from postalform.search_addresses). Use Manual to pass a structured address with countryCode when outside the US.
recipient_address_idNoLoqate address id for the recipient (required when recipient_address_type is Address).
sender_address_manualNoSender manual address fields (required when sender_address_type is Manual).
recipient_address_textNoHuman-readable recipient address preview (required when recipient_address_type is Address; optional for Manual).
recipient_address_typeYesAddress suggestion type for the recipient (from postalform.search_addresses). Use Manual to pass a structured address with countryCode when outside the US.
certified_return_receiptNoAdd Electronic Return Receipt for US Certified Mail. Ignored for Canada Post Registered Mail and PinGen registered-mail destinations (default: false).
recipient_address_manualNoRecipient manual address fields (required when recipient_address_type is Manual).

Output Schema

ParametersJSON Schema
NameRequiredDescription
viewYes
paymentNo
order_idYes
price_usdYes
page_countYes
preview_urlNo
sender_nameYes
checkout_urlYes
recipient_nameYes
checkout_sessionNo
payment_protocolNo
sender_address_textYes
recipient_address_textYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=false and openWorldHint=true, so the safety profile is partly covered. The description adds the critical behavioral fact that 'Draft creation never pays,' separating this from pay_order/complete_checkout, and describes the MPP challenge/preview response shape. It does not restate idempotency or rate-limit behavior, but request_id idempotency is already documented in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core verb and return values, then flows through hosted, MPP, and x402 paths in distinct sentences with no filler. Slightly dense — several paths are packed into a single paragraph — but every sentence carries routing information an agent needs.

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?

For a 21-parameter, nested-object, open-world mutation tool with an output schema, the description supplies everything structured fields cannot: the three payment paths, the post-approval handoff tools, and the explicit assurance that drafting never charges. Return-value detail is present without contradicting the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description earns above baseline by tying parameters to workflow semantics beyond the schema text: payment_protocol=mpp requires buyer_email and yields a different response (PDF preview, checkout_url fallback, MPP challenge), which the per-parameter schema descriptions only state in isolation.

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 ('Prepare an existing PDF for mailing') and immediately names what it returns (order ID, total, hosted checkout URL, checkout session). It also distinguishes itself from siblings by explicitly deferring x402 to postalform.create_machine_order and payment completion to complete_checkout/pay_order.

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 the agent explicit routing conditions: use complete_checkout with a Stripe shared payment token after buyer approval, otherwise present the hosted URL; for MPP set payment_protocol=mpp plus buyer_email and then call postalform.pay_order; for x402 use create_machine_order. When-to-use and when-to-use-something-else are both spelled out.

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

postalform.create_pdf_uploadCreate a PDF uploadAInspect

Use this when the host cannot provide a PDF file param directly. It creates a short-lived PDF upload URL and upload token (multipart/form-data, file field). Let the HTTP client generate Content-Type with its multipart boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameNoOptional original file name.
request_idNoOptional idempotency key. Reuse the same value if retrying the call.
content_typeNoOptional content type hint (application/pdf).
content_lengthNoOptional content length in bytes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
max_bytesYes
expires_atYes
upload_urlYes
upload_tokenYes
required_headersYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare a non-read-only, open-world, non-destructive operation. The description adds useful behavior beyond annotations: short-lived upload URL/token, multipart/form-data with a file field, and client-generated Content-Type boundary.

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?

Two compact sentences and one multipart instruction, with the usage condition front-loaded. Every sentence adds actionable information without repetition.

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?

Output schema exists, so return values need not be explained in the description. The definition covers when to use it and the multipart mechanics, though it leaves token expiry and authentication details unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four optional parameters are already documented in the schema. The description adds multipart context but no additional parameter-level meaning, so baseline 3 is appropriate.

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: creates a short-lived PDF upload URL and upload token. The upload-specific purpose clearly distinguishes it from sibling order, form, and address tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Explicitly says when to use it: when the host cannot provide a PDF file param directly. It gives clear context but does not name exclusions or alternative sibling tools.

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

postalform.get_form_schemaGet form schemaA
Read-onlyIdempotent
Inspect

Use this when you need a machine-usable schema for one supported single-mailpiece PostalForm workflow (fields, groups, attachments, and dependencies).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesWorkflow slug (e.g. "8822").

Output Schema

ParametersJSON Schema
NameRequiredDescription
llmsYes
nameYes
slugYes
fieldsYes
groupsYes
topicsNo
aliasesNo
pricingNo
categoryNo
bulk_formNo
indexableYes
recipientYes
updated_atNo
attachmentsYes
descriptionNo
form_summaryNo
published_atNo
agent_summaryNo
checkout_flowNo
publish_stateNo
certified_mailYes
data_collectedNo
schema_versionYes
deadline_helperNo
multi_recipientNo
recipient_rulesNo
workflow_versionYes
compliance_policyNo
recipient_presetsNo
attachments_max_total_size_mbYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds useful scope context ('supported single-mailpiece' workflow) and content shape, but says nothing about behavior for unsupported slugs or how to obtain valid ones.

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?

One front-loaded sentence with zero filler; the trigger condition comes first and the payload description follows. Nothing could be trimmed without losing signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and full annotation coverage, the return shape and safety profile are handled. However, an agent still lacks guidance on where valid slugs come from (presumably list_forms) and on failure behavior for unsupported workflows, which is a real gap for a lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a single documented 'slug' parameter including an example ('8822'), so the baseline is 3. The description marginally reinforces that the slug must resolve to a supported single-mailpiece workflow but adds no syntax or validity detail beyond the schema.

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?

States a specific verb+resource (get form schema) and scopes it precisely to 'one supported single-mailpiece PostalForm workflow', enumerating what the schema contains (fields, groups, attachments, dependencies). This is clearly distinct from list_forms, though no sibling is named explicitly.

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?

'Use this when you need a machine-usable schema...' is a when-to-use statement, but it is nearly circular — it restates the tool name. It names no alternative (e.g. list_forms for discovering valid slugs) and gives no when-not or prerequisite guidance.

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

postalform.get_order_statusGet order statusA
Read-onlyIdempotent
Inspect

Read payment, processing, stored mailing/carrier status, the latest 50 public tracking events, and electronic return receipt availability. Bulk orders also return campaign_url, recipient count and per-status counts; use the campaign dashboard for individual recipients. Missing carrier evidence is null; processing or a tracking number alone does not prove mailing or delivery. This read does not pay, mail, or acquire receipts.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesPostalForm order id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bulkNo
viewYes
errorNo
foundYes
carrierNo
is_paidNo
order_idYes
signed_byNo
page_countNo
status_urlNo
next_actionNo
campaign_urlNo
checkout_urlNo
current_stepNo
mailing_statusNo
payment_statusNo
delivery_statusNo
payment_optionsNo
tracking_eventsNo
tracking_numberNo
tracking_updated_atNo
estimated_delivery_atNo
delivery_status_detailNo
electronic_return_receiptNo
mailing_status_normalizedNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds genuinely non-obvious behavior: tracking events capped at the latest 50, missing carrier evidence returned as null, and the warning that processing state or a tracking number alone does not prove mailing or delivery. That is semantic context no annotation or schema could convey.

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 the return payload before the caveats and the negative scope statement. Every clause carries distinct information: field list, bulk-vs-individual routing, null semantics, and the non-action guarantee.

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?

Despite a rich output schema (which alone would absolve it of explaining return values), the description still pre-summarizes the payload shape and flags the bulk-order variation and null semantics. For a single-required-param read tool, nothing an agent needs to invoke it correctly is missing.

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?

Only one parameter (order_id) and schema description coverage is 100%, with format/pattern fully specified in the schema. The description adds nothing about the identifier's syntax or sourcing, so the schema does all the work — the expected baseline of 3.

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?

Specific verb (read/get) plus a precise enumeration of what is returned: payment, processing, mailing/carrier status, latest 50 tracking events, return-receipt availability, plus bulk-order campaign fields. The closing clause 'does not pay, mail, or acquire receipts' cleanly separates it from siblings like pay_order and the create_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It routes the agent for a real alternative case ('use the campaign dashboard for individual recipients') and implicitly tells the agent this is the status-check path rather than the pay/mail path. It stops short of an explicit when-to-use/when-not statement with named sibling tools, so it is clear but not exhaustive.

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

postalform.list_formsList available formsA
Read-onlyIdempotent
Inspect

Use this when you need the published single-mailpiece PostalForm workflow catalog available to agents. Coordinated statutory multi-recipient workflows are excluded.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoOptional search query (matches slug/name).
limitNoMax results (default 50).
cursorNoPagination cursor (opaque string).

Output Schema

ParametersJSON Schema
NameRequiredDescription
formsYes
next_cursorYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is fully covered. The description's only added behavioral content is the inclusion/exclusion scope; it says nothing about pagination behavior or result ordering, which are relevant for a catalog listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the use condition and no filler. The phrasing is slightly convoluted ('the published single-mailpiece PostalForm workflow catalog available to agents'), but nothing is gratuitous.

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 a full output schema present, return values need no explanation, and annotations cover the safety profile. The description supplies the scope boundaries an agent needs; only pagination/search semantics are left entirely to the schema, which is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — q, limit (including max 200/default 50) and cursor are all documented in the schema. The description adds no syntax, matching behavior, or format detail beyond that, so the baseline of 3 applies.

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?

The description identifies the resource precisely as the published single-mailpiece PostalForm workflow catalog and scopes it to what agents can use. It stops short of a clean verb+resource statement (it never literally says 'lists forms') and only distinguishes itself from siblings via scope language rather than by naming a competing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The opening 'Use this when you need...' gives a clear use condition, and the exclusion of coordinated statutory multi-recipient workflows tells the agent when NOT to use it. It does not, however, name an alternative tool (e.g. get_form_schema) that would serve the excluded case.

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

postalform.pay_orderPay a prepared order with MPPAInspect

Get an MPP challenge or pay an existing MPP PDF, letter, workflow-form order, or bulk letter campaign after buyer approval. Use the order_id returned by any draft tool with payment_protocol=mpp or by create_machine_order. When switching from create_machine_order, omit the credential first to get this payment endpoint’s challenge. Review the preview or campaign_url, recipient count and total. No document or addresses are resubmitted. Without payment_authorization this only returns a challenge; with it, this can pay and send real mail. Reuse the same order_id on retries and follow the returned payment status.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYes
payment_authorizationNoBuyer-approved MPP Authorization header, usually Payment ... . Omit to retrieve the challenge.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bulkNo
viewYes
statusYes
is_paidYes
paymentNo
currencyYes
endpointYes
order_idYes
protocolYes
next_stepNo
price_usdYes
page_countNo
request_idYes
status_urlNo
next_actionNo
preview_urlNo
campaign_urlNo
checkout_urlNo
postcard_sizeYes
mailpiece_typeYes
payment_statusYes
payment_optionsNo
order_complete_urlYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations say readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the write/open-world nature is already declared. The description adds genuinely new behavioral context beyond that: without payment_authorization it only returns a challenge, with it, it can pay and send real mail, and no document or addresses are resubmitted. It notably reveals a real-world mailing side effect not captured by destructiveHint=false, though it does not spell out idempotency or permissions in depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six sentences, front-loaded with purpose then usage then behavior. Most sentences carry distinct value, but it is somewhat dense and a sentence like 'Review the preview or campaign_url, recipient count and total' mixes in output detail that could be trimmed.

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 enumerated, and the description still points to the returned payment status. Combined with clear inputs, prerequisites, retry behavior, and the challenge-vs-pay distinction, an agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: payment_authorization is documented in the schema, but order_id has no schema description. The description compensates by explaining where order_id comes from (draft tools with payment_protocol=mpp, or create_machine_order) and that it should be reused verbatim on retries. That adds real meaning beyond the UUID format constraints.

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 (pay) and resource (existing MPP order across PDF, letter, form, or bulk campaign), plus the prerequisite (buyer approval) and the challenge-only mode. It also names the sibling create_machine_order, so an agent can distinguish it from the draft-creation tools 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.

Usage Guidelines5/5

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

Explicitly says to use the order_id returned by any draft tool with payment_protocol=mpp or by create_machine_order, and gives the exact procedure when switching from create_machine_order (omit the credential first to obtain this endpoint's challenge). Retry guidance is also given. Nothing about when/when-not 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.

postalform.pingPing PostalFormA
Read-onlyIdempotent
Inspect

Use this when you want a quick health check that the PostalForm MCP server is reachable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
viewYes
titleYes
messageYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety and side-effect profile is fully covered. The description adds only the purpose framing, not extra behavioral detail such as latency, failure semantics, or what a 'unreachable' result looks like. Adequate but adds little beyond the annotations.

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?

A single front-loaded sentence with the usage condition first and zero filler. Every word earns its place for a tool this simple.

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?

For a no-parameter health-check tool with full annotation coverage and an output schema that already describes the return value, the description contains everything the agent needs to select and call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to document beyond what the schema already shows. Baseline 4 applies for a no-parameter tool.

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?

The description states a clear purpose: verifying that the PostalForm MCP server is reachable via a quick health check. The resource (server reachability) is specific and naturally distinct from all order/form siblings. It stops short of explicitly naming a sibling or contrasting itself, but no contrast is really needed here.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It gives a clear triggering condition ('when you want a quick health check that the server is reachable'), which tells the agent the context for calling it. There is no when-not guidance or mention of alternatives, but for a ping tool no alternative is plausible.

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

postalform.preview_letter_order_draftPreview a mail order draft from letter textA
Read-only
Inspect

Use this to prepare a non-writing preview for a mailed letter before creating checkout. It renders the letter, validates the addresses, and returns a widget with a create-draft action.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
letterYes
certifiedNo
mail_classNo
request_idNo
sender_nameYes
double_sidedNo
recipient_nameYes
sender_address_idNo
sender_address_textNo
sender_address_typeYes
recipient_address_idNo
sender_address_manualNo
recipient_address_textNo
recipient_address_typeYes
certified_return_receiptNo
recipient_address_manualNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
viewYes
price_usdYes
page_countYes
sender_nameYes
draft_requestYes
recipient_nameYes
sender_address_textYes
recipient_address_textYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, non-destructive, and closed-world behavior. The description adds useful behavioral detail beyond annotations: it renders the letter, validates addresses, and returns a widget with a create-draft action. It does not cover permissions or rate limits, but those are less critical for a read-only preview.

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?

Two sentences, front-loaded with the primary action and purpose. Every clause adds information and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 17 parameters, nested objects, and no schema descriptions, the description is too sparse. It explains the high-level preview behavior but leaves the agent with little guidance on how to construct the complex address and letter payloads, even though an output schema exists to cover return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 17 parameters, many with nested objects and enums. The description only generically references 'letter' and 'addresses' and does not explain required fields such as sender_address_type, recipient_address_type, address ID/text/manual variants, request_id, mail_class, or render options.

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?

The description states a specific verb ('preview'), resource ('letter order draft'), and distinguishes the operation as non-writing. It does not explicitly name sibling tools like create_letter_order_draft, but the preview framing and 'before creating checkout' timing make the purpose clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It gives clear timing: use this before creating checkout to prepare a non-writing preview. It does not explicitly say when not to use it or name alternative sibling tools, but the context is sufficient to infer that this is a pre-creation validation step.

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

postalform.search_addressesSearch mailing addressesA
Read-onlyIdempotent
Inspect

Use this to search for a mailing address and return Loqate suggestions with IDs. Pass country_code to filter by country; it defaults to US. If a suggestion has type "Container" (building/complex), call this tool again with container= and a refined query to drill down to type "Address". Only type "Address" is valid for order creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPartial address text, e.g. "123 Main St"
targetNoWhich address field is being searched (used for UI context).
containerNoLoqate container id for drilling into suggestions, if provided
country_codeNoTwo-letter country code to filter suggestions. Defaults to US.

Output Schema

ParametersJSON Schema
NameRequiredDescription
viewYes
queryYes
targetNo
suggestionsYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the description correctly spends its words on behavior annotations cannot express: the two-phase Container → Address drill-down workflow, the US default for country_code, and which result types are order-eligible. It does not add rate-limit, auth, or result-count context, which keeps it short of 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?

Three dense sentences, front-loaded with the core action and return shape, then the filtering detail, then the drill-down rule. No restatement of the name or filler.

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?

With an output schema present and full parameter documentation, the description only needs to cover what structured fields cannot: the multi-step container drill-down and result-type validity. Both are stated, leaving nothing an agent needs in order to call and chain this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so a 3 is the baseline and the schema already documents all four parameters. The description goes further by explaining how container and query interact across successive calls and by reinforcing the country_code default, adding cross-call meaning the schema cannot convey; target is left to the schema.

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 ('search for a mailing address') plus the concrete return payload ('Loqate suggestions with IDs'). An agent can immediately distinguish this lookup tool from the sibling order-creation tools (create_order_draft, pay_order, etc.).

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?

Explicit when-to-use and follow-up routing: pass country_code to filter, and if a suggestion has type 'Container', call this tool again with container=<id> to drill down. It also states the terminal constraint that only type 'Address' is valid for order creation, telling the agent when a result is usable and when it is not.

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. 13 tool updates
    • First observedcomplete_checkout
    • First observedpostalform.create_form_order_draft
    • First observedpostalform.create_letter_order_draft
    • First observedpostalform.create_machine_order
    • First observedpostalform.create_order_draft
    • First observedpostalform.create_pdf_upload
    • First observedpostalform.get_form_schema
    • First observedpostalform.get_order_status
    • First observedpostalform.list_forms
    • First observedpostalform.pay_order
    • First observedpostalform.ping
    • First observedpostalform.preview_letter_order_draft
    • First observedpostalform.search_addresses

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources