Skip to main content
Glama
arbengine

mailbox-mcp

send_outbound_mail

Print and mail documents as physical letters via USPS. Supports PDF, DOCX, images, and more with certified mail, cost caps, and dry-run preview.

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. IMPORTANT: With a production key (sk_agent_), this immediately charges the member's card on file. Use dry_run=true to preview cost before committing, or requires_approval=true to defer until human approval. Sandbox keys (sk_agent_test_) skip billing entirely. Optionally attach the outbound mail to inbound context with inbound_capture_id and postal_mail_thread_id so lineage stays explicit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
colorNoPrint in color. Adds a per-page color surcharge.
duplexNoPrint double-sided to reduce page count and postage.
dry_runNoValidate inputs and return cost breakdown without creating a record or charging. Use to preview cost 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_classNoUSPS 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.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_notesNoInstructions for the facility operator (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 any charge. Prevents accidental expensive mailings.
recipient_cityYesRecipient city.
recipient_nameYesFull name of the mail recipient.
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_countryNoISO 3166-1 alpha-2 country code. Defaults to "US".US
requires_approvalNoIf true, the renter must approve in their dashboard before the mail is printed and sent.
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 (from get_mailbox_md). 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

TableJSON Schema
NameRequiredDescriptionDefault
resultYesSubmitted outbound mail job or dry-run cost preview.
Behavior5/5

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

The description thoroughly discloses behavioral traits: billing charges with production keys, no billing with sandbox keys, cost preview via dry_run, deferral via requires_approval, and optional linking to inbound mail. Annotations only indicate non-read-only and non-idempotent; the description adds critical detail about side effects and conditions.

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 description is well-structured: purpose first, then key notes and optional parameters. It is somewhat long but dense with useful information. Could be slightly more concise, but it earns its length.

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?

Given 28 parameters (7 required) and an existing output schema, the description covers the essential workflow: submission, billing, dry run, approval, and thread linkage. It provides enough context for an agent to invoke the tool correctly, though missing minor details like max file size (present in schema) and explicit return value format.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by grouping return address fields and explaining the intent of dry_run and requires_approval, but it does not systematically explain each parameter beyond what the schema provides.

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 first sentence clearly states the verb ('submit') and resource ('document for printing and postal mailing'). Supported formats are listed. The title 'Send Outbound Mail' further reinforces the purpose. No explicit sibling differentiation, but the purpose is unambiguous given the context.

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 description explains when to use (submitting for mailing), important billing differentiation (production vs sandbox keys), and optional behaviors like dry_run and requires_approval. However, it does not explicitly state when not to use or mention alternative tools.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arbengine/mailbox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server