Skip to main content
Glama
mailbox-mcp

mailbox-mcp

send_outbound_mail

Destructive

Submit a PDF, DOCX, JPG, PNG, TXT, or CSV document for secure printing and postal mailing, with cost preview and optional human approval before credits are spent.

Instructions

Submit a document for printing and postal mailing by the facility. Supported formats: PDF, DOCX, JPG, PNG, TXT, CSV. The document is stored securely and printed by the facility operator. USPS First-Class Mail has a published $2.00 one-page baseline. Extra pages add configured printing plus any postage increase from weight. If an account's normal first-page formula is lower, cost_breakdown.first_class_baseline_adjustment_cents itemizes the difference separately from carrier postage. Published default pricing for other classes is $2.50 handling + $0.40/page B&W printing + carrier postage/rate; FedEx Express Saver, 2Day and Overnight are $5.00 below their otherwise-calculated carrier baselines: fedex_express itemizes service_adjustment_cents: -500, FedEx 2Day applies a fixed $13.00 customer price reduction (service_adjustment_cents: -1300), and FedEx Overnight adds a fixed $13.00 adjustment (service_adjustment_cents: 1300); fedex_ground carries a fixed $5.00 markup (service_adjustment_cents: 500). Color pages cost $0.70/page total by default before handling and postage: $0.40/page base B&W printing plus a $0.30/page additive color upgrade. In cost_breakdown, color_printing_per_page_cents is the total color-page printing price (70 cents by default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by default). Account-specific pricing can override these defaults; cost_breakdown is authoritative. IMPORTANT: With a production key (sk_agent_), this spends the human member's prepaid mailbox.bot credits. Agents never access Stripe, card data, or Auto-Fill settings. If the signed-in human separately enabled Agent Auto-Fill, an eligible live order may trigger a bounded server-managed reload. Use dry_run=true to preview required credits before committing, or requires_approval=true to defer the credit debit until human approval. Sandbox keys (sk_agent_test_) skip credit debits and facility fulfillment. Responses include human_review with send-to address, return address, mail class, document details, preview URL when available, cost, safeguards, and next step; show that to the human before live funded sends. tracking_number is required for priority, certified, certified_return_receipt, FedEx, and UPS mail classes. USPS first_class does not include carrier tracking by default; tracking_number may be null. Optionally attach the outbound mail to inbound context with inbound_capture_id and postal_mail_thread_id so lineage stays explicit. Explicit Business mail runs are REST-only.

Input Schema

NameRequiredDescriptionDefault
colorNoColor pages cost $0.70/page total by default before handling and postage: $0.40/page base B&W printing plus a $0.30/page additive color upgrade. In cost_breakdown, color_printing_per_page_cents is the total color-page printing price (70 cents by default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by default). Account-specific pricing can override these defaults; cost_breakdown is authoritative.
duplexNoRequest double-sided printing when operationally possible. Pricing and page_count are based on the detected or supplied document page count; use dry_run=true to preview exact cost.
dry_runNoValidate inputs and return cost breakdown without creating a record or spending credits. Use to preview required credits before committing.
metadataNoArbitrary key-value pairs echoed in GET responses and webhooks. Recommended convention: { "workflow_id": "wf_123", "reason": "Customer cancellation", "correlation_id": "abc" }.
mail_classNoPostal or carrier service. Use first_class for ordinary lowest-cost USPS letters with no carrier tracking number by default. USPS First-Class Mail has a published $2.00 one-page baseline. Extra pages add configured printing plus any postage increase from weight. If an account's normal first-page formula is lower, cost_breakdown.first_class_baseline_adjustment_cents itemizes the difference separately from carrier postage. Use priority for faster USPS Priority Mail with USPS Tracking, but not Certified Mail proof; priority has a $15.00 published one-page floor. Use certified for USPS tracking plus proof of mailing/delivery; certified has a $20.00 published one-page floor. Use certified_return_receipt when electronic return-receipt evidence is required; certified_return_receipt has a $24.00 published one-page floor. Use fedex_ground or ups_ground for budget private-carrier tracking; fedex_express means FedEx Express Saver/third-business-day, fedex_2day and ups_2day mean second-business-day, and fedex_overnight or ups_next_day mean next-business-day. FedEx express classes use the Standard List document baseline from the configured fulfillment origin unless FedEx One Rate is explicitly configured operationally; fedex_express, fedex_2day and fedex_overnight are then $5.00 below that baseline: fedex_express itemizes service_adjustment_cents: -500, fedex_2day applies a fixed $13.00 customer price reduction (service_adjustment_cents: -1300), and fedex_overnight adds a fixed $13.00 customer price adjustment (service_adjustment_cents: 1300); fedex_ground carries a fixed $5.00 markup over its baseline (service_adjustment_cents: 500). The same printing rates apply to every mail_class. Color pages cost $0.70/page total by default before handling and postage: $0.40/page base B&W printing plus a $0.30/page additive color upgrade. In cost_breakdown, color_printing_per_page_cents is the total color-page printing price (70 cents by default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by default). Account-specific pricing can override these defaults; cost_breakdown is authoritative.first_class
package_idNoLink this mail to an inbound package (e.g. replying to received correspondence).
page_countNoExplicit page count for non-PDF documents when exact pagination is known. When supplied for DOCX, TXT, or CSV, it overrides local detection and makes pricing deterministic.
return_zipNoReturn address ZIP code. Defaults to member profile if omitted.
agent_notesNoNotes for the facility staff (e.g. "Time-sensitive — mail today").
return_cityNoReturn address city. Defaults to member profile if omitted.
return_nameNoReturn address name. Defaults to the member's profile name if omitted.
return_line1NoReturn address line 1. Defaults to member profile if omitted.
return_line2NoReturn address line 2 (suite, unit, etc.).
return_stateNoReturn address state (2-letter code). Defaults to member profile if omitted.
recipient_zipYes5 or 5+4 digit ZIP code (e.g. "90210" or "90210-1234").
max_cost_centsNoCost cap in cents. If the calculated cost exceeds this, the request is rejected with 422 before credits are spent. Prevents accidental expensive mailings.
recipient_cityYesRecipient city.
recipient_nameNoPerson name of the mail recipient. Optional when recipient_company is provided.
return_companyNoOptional company or organization line for the return address.
document_base64YesBase64-encoded document file. Supported formats: PDF, DOCX, JPG, PNG, TXT, CSV. Max 10MB decoded.
recipient_line1YesStreet address line 1 of the recipient.
recipient_line2NoStreet address line 2 (apartment, suite, unit, etc.).
recipient_stateYes2-letter US state code (e.g. CA, NY, TX).
document_filenameNoOriginal filename with extension (e.g. "letter.docx"). Required for reliable non-PDF format detection.
recipient_companyNoCompany or organization line for the recipient. Optional when recipient_name is provided.
recipient_countryNoISO 3166-1 alpha-2 country code. Defaults to "US".US
requires_approvalNoIf true, the mail waits for the renter's approval in their dashboard before it is printed and sent.
delivery_signatureNoOptional signature on delivery for a single letter (batch mail has none). FedEx classes: indirect (FedEx Indirect Signature Required, $8.00: someone at the address, a neighbor, or the recipient on a signed door tag); direct (FedEx Direct Signature Required, $8.50: someone at the address); adult (FedEx Adult Signature Required, $11.00: an adult 21 or older at the address, with ID). priority: direct (USPS Signature Confirmation, $5.00: someone at the address); adult (USPS Adult Signature Required, $11.00: an adult 21 or older at the address, with ID). certified and certified_return_receipt: restricted (USPS Restricted Delivery, $10.00: only the addressee, or an agent they authorized in writing). first_class has no signature service. Omit it or send none for no signature. The fee is added to the price and itemized as cost_breakdown.delivery_signature_cents.
inbound_capture_idNoOptional inbound mail item this outbound piece is replying to. Recommended when drafting from OCR/forwarded-mail context.
mailbox_md_versionYesYour current MAILBOX.md version number. Required for sync verification.
postal_mail_thread_idNoOptional physical-mail thread to attach this outbound mail to. Lets agents keep inbound and outbound activity in one durable workflow.

Output Schema

NameRequiredDescriptionDefault
resultYesSubmitted outbound mail job or dry-run cost preview.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv1.0.5
    • changedInput schema / properties / agent_notes / description
      Previous value: -"Instructions for the facility operator (e.g. \"Time-sensitive — mail today\")."New value: +"Notes for the facility staff (e.g. \"Time-sensitive — mail today\")."
    • addedInput schema / properties / delivery_signature
      Added value: +{
      +  "description": "Optional signature on delivery for a single letter (batch mail has none). FedEx classes: indirect (FedEx Indirect Signature Required, $8.00: someone at the address, a neighbor, or the recipient on a signed door tag); direct (FedEx Direct Signature Required, $8.50: someone at the address); adult (FedEx Adult Signature Required, $11.00: an adult 21 or older at the address, with ID). priority: direct (USPS Signature Confirmation, $5.00: someone at the address); adult (USPS Adult Signature Required, $11.00: an adult 21 or older at the address, with ID). certified and certified_return_receipt: restricted (USPS Restricted Delivery, $10.00: only the addressee, or an agent they authorized in writing). first_class has no signature service. Omit it or send none for no signature. The fee is added to the price and itemized as cost_breakdown.delivery_signature_cents.",
      +  "enum": [
      +    "none",
      +    "indirect",
      +    "direct",
      +    "adult",
      +    "restricted"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / mail_class / description
      Previous value: -"Postal or carrier service. Do not infer speed, tracking, or proof from carrier marketing names. Use first_class for ordinary lowest-cost USPS letters with no carrier tracking number by default. USPS First-Class Mail has a published $2.00 one-page baseline. Extra pages add configured printing plus any postage increase from weight. If an account's normal first-page formula is lower, cost_breakdown.first_class_baseline_adjustment_cents itemizes the difference separately from carrier postage. Use priority for faster USPS Priority Mail with USPS Tracking, but not Certified Mail proof; priority has a $15.00 published one-page floor. Use certified for USPS tracking plus proof of mailing/delivery; certified has a $20.00 published one-page floor. Use certified_return_receipt when electronic return-receipt evidence is required; certified_return_receipt has a $24.00 published one-page floor. Use fedex_ground or ups_ground for budget private-carrier tracking; fedex_express means FedEx Express Saver/third-business-day, fedex_2day and ups_2day mean second-business-day, and fedex_overnight or ups_next_day mean next-business-day. FedEx express classes use the Standard List document baseline from the configured fulfillment origin unless FedEx One Rate is explicitly configured operationally; fedex_2day then applies a fixed $8.00 customer price reduction (service_adjustment_cents: -800), while fedex_overnight retains its fixed $18.00 customer price adjustment (service_adjustment_cents: 1800). The same printing rates apply to every mail_class. Color pages cost $0.70/page total by default before handling and postage: $0.40/page base B&W printing plus a $0.30/page additive color upgrade. In cost_breakdown, color_printing_per_page_cents is the total color-page printing price (70 cents by default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by default). Account-specific pricing can override these defaults; cost_breakdown is authoritative."New value: +"Postal or carrier service. Use first_class for ordinary lowest-cost USPS letters with no carrier tracking number by default. USPS First-Class Mail has a published $2.00 one-page baseline. Extra pages add configured printing plus any postage increase from weight. If an account's normal first-page formula is lower, cost_breakdown.first_class_baseline_adjustment_cents itemizes the difference separately from carrier postage. Use priority for faster USPS Priority Mail with USPS Tracking, but not Certified Mail proof; priority has a $15.00 published one-page floor. Use certified for USPS tracking plus proof of mailing/delivery; certified has a $20.00 published one-page floor. Use certified_return_receipt when electronic return-receipt evidence is required; certified_return_receipt has a $24.00 published one-page floor. Use fedex_ground or ups_ground for budget private-carrier tracking; fedex_express means FedEx Express Saver/third-business-day, fedex_2day and ups_2day mean second-business-day, and fedex_overnight or ups_next_day mean next-business-day. FedEx express classes use the Standard List document baseline from the configured fulfillment origin unless FedEx One Rate is explicitly configured operationally; fedex_express, fedex_2day and fedex_overnight are then $5.00 below that baseline: fedex_express itemizes service_adjustment_cents: -500, fedex_2day applies a fixed $13.00 customer price reduction (service_adjustment_cents: -1300), and fedex_overnight adds a fixed $13.00 customer price adjustment (service_adjustment_cents: 1300); fedex_ground carries a fixed $5.00 markup over its baseline (service_adjustment_cents: 500). The same printing rates apply to every mail_class. Color pages cost $0.70/page total by default before handling and postage: $0.40/page base B&W printing plus a $0.30/page additive color upgrade. In cost_breakdown, color_printing_per_page_cents is the total color-page printing price (70 cents by default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by default). Account-specific pricing can override these defaults; cost_breakdown is authoritative."
    • changedInput schema / properties / mailbox_md_version / description
      Previous value: -"Your current MAILBOX.md version (from get_mailbox_md). Required for sync verification."New value: +"Your current MAILBOX.md version number. Required for sync verification."
    • changedInput schema / properties / requires_approval / description
      Previous value: -"If true, the renter must approve in their dashboard before the mail is printed and sent."New value: +"If true, the mail waits for the renter's approval in their dashboard before it is printed and sent."
  2. Changed37 schema fields changedv1.0.3
    • addedInput schema / anyOf
      Added value: +[
      +  {
      +    "required": [
      +      "recipient_name"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "recipient_company"
      +    ]
      +  }
      +]
    • changedInput schema / properties / color / description
      Previous value: -"Print in color. Adds a per-page color surcharge."New value: +"Color pages cost $0.70/page total by default before handling and postage: $0.40/page base B&W printing plus a $0.30/page additive color upgrade. In cost_breakdown, color_printing_per_page_cents is the total color-page printing price (70 cents by default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by default). Account-specific pricing can override these defaults; cost_breakdown is authoritative."
    • changedInput schema / properties / dry_run / description
      Previous value: -"Validate inputs and return cost breakdown without creating a record or charging. Use to preview cost before committing."New value: +"Validate inputs and return cost breakdown without creating a record or spending credits. Use to preview required credits before committing."
    • changedInput schema / properties / duplex / description
      Previous value: -"Print double-sided to reduce page count and postage."New value: +"Request double-sided printing when operationally possible. Pricing and page_count are based on the detected or supplied document page count; use dry_run=true to preview exact cost."
    • changedInput schema / properties / mail_class / description
      Previous value: -"USPS mail class. \"first_class\" = 3-5 days, \"priority\" = 1-3 days, \"certified\" = with tracking and proof of mailing, \"certified_return_receipt\" = certified with signed delivery confirmation."New value: +"Postal or carrier service. Do not infer speed, tracking, or proof from carrier marketing names. Use first_class for ordinary lowest-cost USPS letters with no carrier tracking number by default. USPS First-Class Mail has a published $2.00 one-page baseline. Extra pages add configured printing plus any postage increase from weight. If an account's normal first-page formula is lower, cost_breakdown.first_class_baseline_adjustment_cents itemizes the difference separately from carrier postage. Use priority for faster USPS Priority Mail with USPS Tracking, but not Certified Mail proof; priority has a $15.00 published one-page floor. Use certified for USPS tracking plus proof of mailing/delivery; certified has a $20.00 published one-page floor. Use certified_return_receipt when electronic return-receipt evidence is required; certified_return_receipt has a $24.00 published one-page floor. Use fedex_ground or ups_ground for budget private-carrier tracking; fedex_express means FedEx Express Saver/third-business-day, fedex_2day and ups_2day mean second-business-day, and fedex_overnight or ups_next_day mean next-business-day. FedEx express classes use the Standard List document baseline from the configured fulfillment origin unless FedEx One Rate is explicitly configured operationally; fedex_2day then applies a fixed $8.00 customer price reduction (service_adjustment_cents: -800), while fedex_overnight retains its fixed $18.00 customer price adjustment (service_adjustment_cents: 1800). The same printing rates apply to every mail_class. Color pages cost $0.70/page total by default before handling and postage: $0.40/page base B&W printing plus a $0.30/page additive color upgrade. In cost_breakdown, color_printing_per_page_cents is the total color-page printing price (70 cents by default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by default). Account-specific pricing can override these defaults; cost_breakdown is authoritative."
    • changedInput schema / properties / mail_class / enum
      Previous value: -[
      -  "first_class",
      -  "priority",
      -  "certified",
      -  "certified_return_receipt"
      -]New value: +[
      +  "first_class",
      +  "priority",
      +  "certified",
      +  "certified_return_receipt",
      +  "fedex_ground",
      +  "fedex_express",
      +  "fedex_2day",
      +  "fedex_overnight",
      +  "ups_ground",
      +  "ups_2day",
      +  "ups_next_day"
      +]
    • changedInput schema / properties / max_cost_cents / description
      Previous value: -"Cost cap in cents. If the calculated cost exceeds this, the request is rejected with 422 before any charge. Prevents accidental expensive mailings."New value: +"Cost cap in cents. If the calculated cost exceeds this, the request is rejected with 422 before credits are spent. Prevents accidental expensive mailings."
    • addedInput schema / properties / recipient_company
      Added value: +{
      +  "description": "Company or organization line for the recipient. Optional when recipient_name is provided.",
      +  "type": "string"
      +}
    • changedInput schema / properties / recipient_name / description
      Previous value: -"Full name of the mail recipient."New value: +"Person name of the mail recipient. Optional when recipient_company is provided."
    • addedInput schema / properties / return_company
      Added value: +{
      +  "description": "Optional company or organization line for the return address.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "document_base64",
      -  "mailbox_md_version",
      -  "recipient_name",
      -  "recipient_line1",
      -  "recipient_city",
      -  "recipient_state",
      -  "recipient_zip"
      -]New value: +[
      +  "document_base64",
      +  "mailbox_md_version",
      +  "recipient_line1",
      +  "recipient_city",
      +  "recipient_state",
      +  "recipient_zip"
      +]
    • changedOutput schema / properties / result / properties / cost_breakdown / description
      Previous value: -"Dry-run or submitted-mail cost components."New value: +"Dry-run or submitted-mail cost components. For color jobs, color_printing_per_page_cents is the total color-page printing price (70 cents by published default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by published default). For a below-formula First-Class quote, first_class_baseline_adjustment_cents is the amount added to reach the published $2.00 one-page baseline and is separate from postage_cents."
    • addedOutput schema / properties / result / properties / outbound_mail / properties / carrier_delivery_failed
      Added value: +{
      +  "description": "True only when status=failed because a mailed/tracked carrier item later failed delivery.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / cost_breakdown
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Authoritative cost components. For color jobs, color_printing_per_page_cents is the total color-page printing price (70 cents by published default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by published default). For a below-formula First-Class quote, first_class_baseline_adjustment_cents is the amount added to reach the published $2.00 one-page baseline and is separate from postage_cents.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / delivered_at
      Added value: +{
      +  "description": "Timestamp when delivery was confirmed, if available.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / document_preview_url
      Added value: +{
      +  "description": "Authenticated dashboard URL a human can click to visually verify the submitted source document.",
      +  "format": "uri",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / error_message
      Added value: +{
      +  "description": "Failure reason when status is failed and a reason is available.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / failure_source
      Added value: +{
      +  "description": "fedex_tracking when FedEx Track reported the carrier delivery failure; null otherwise.",
      +  "enum": [
      +    "fedex_tracking",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / failure_stage
      Added value: +{
      +  "description": "carrier_delivery for carrier delivery failures; null for submission or fulfillment failures.",
      +  "enum": [
      +    "carrier_delivery",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / human_review
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Human-readable review payload for CLI/chat confirmation: send-to address, return address, mail class, document preview URL, cost, safeguards, and next step.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / mailed_at
      Added value: +{
      +  "description": "Timestamp when the item entered the carrier/mail stream.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_city
      Added value: +{
      +  "description": "Recipient city.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_company
      Added value: +{
      +  "description": "Optional recipient company or organization line.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_country
      Added value: +{
      +  "description": "Recipient country code.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_line1
      Added value: +{
      +  "description": "Recipient street address line 1.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_line2
      Added value: +{
      +  "description": "Recipient street address line 2.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / result / properties / outbound_mail / properties / recipient_name / description
      Previous value: -"Recipient name."New value: +"Recipient name, or null when the mail is addressed to a company only."
    • changedOutput schema / properties / result / properties / outbound_mail / properties / recipient_name / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_state
      Added value: +{
      +  "description": "Recipient state.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_zip
      Added value: +{
      +  "description": "Recipient ZIP code.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_city
      Added value: +{
      +  "description": "Return address city.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_company
      Added value: +{
      +  "description": "Optional company or organization line for the return address.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_line1
      Added value: +{
      +  "description": "Return address street line 1.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_line2
      Added value: +{
      +  "description": "Return address street line 2.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_name
      Added value: +{
      +  "description": "Return address name.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_state
      Added value: +{
      +  "description": "Return address state.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_zip
      Added value: +{
      +  "description": "Return address ZIP.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  3. First observedv1.0.0

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, and the description adds the critical consequence the annotations cannot express: a production key spends the human member's prepaid mailbox.bot credits. It further discloses sandbox-key behavior (no debit, no fulfillment), the possible bounded Auto-Fill reload, the contents of human_review, and per-class tracking constraints (first_class may return null tracking_number).

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

Conciseness3/5

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

Purpose and format support are front-loaded correctly, and the IMPORTANT credit-spending warning is well placed. However, the middle of the description is a wall of pricing minutiae (first_class_baseline_adjustment_cents, service_adjustment_cents values, color_printing_per_page_cents vs color_surcharge_per_page_cents) duplicated from the schema, which inflates length without adding selection value.

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 destructive, credit-spending, 31-parameter tool with an output schema, this covers what an agent needs before invoking it: cost mechanics, approval and dry-run paths, sandbox behavior, tracking requirements by class, and the caveat that explicit Business mail runs are REST-only. Return-value detail is properly left to the output 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 100%, so the schema already documents all 31 parameters, including the color and mail_class pricing text that the description repeats nearly verbatim. The description adds little new parameter meaning beyond reaffirming tracking_number is required for priority/certified/FedEx/UPS and that inbound_capture_id/postal_mail_thread_id provide lineage. Baseline 3 is appropriate.

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?

Opens with a concrete verb+resource+actor: 'Submit a document for printing and postal mailing by the facility,' plus supported file formats. It is unambiguous what the tool does, but it never contrasts itself with siblings such as quote_outbound_mail, create_test_outbound_mail, or create_batch_mail, which is left entirely to the params (dry_run) to imply.

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 real when-to guidance: use dry_run=true to preview credits before committing, requires_approval=true to defer the debit to human approval, and show human_review to the human before live funded sends. The mail_class enum description also routes between service levels (first_class vs priority vs certified vs FedEx/UPS). It stops short of naming sibling tools it supersedes or when to use a batch/test variant instead.

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