Skip to main content
Glama
arbengine

mailbox-mcp

by arbengine

mailbox.bot MCP server

Official Model Context Protocol (MCP) server manifest for mailbox.bot — a hosted postal mail API for AI agents. Send certified mail, letters, notices, postcards, and document packets; mailbox.bot prints, stamps, mails, photographs, tracks, and exposes proof/status back to agents. Turn scans, PDFs, photos, provider notices, and notes from an address you already use into inbound agentic context. Dedicated mailbox.bot-issued street addresses plus mailbox numbers are a separate managed-address reservation path for approved accounts.

Send letters and certified mail from your agent, read inbound document context, manage postal threads, configure webhooks, retrieve scoped source documents, and rehearse lifecycle events with sandbox keys on the same production endpoints.

What this repo is

This repository holds the public server.json manifest published to the official MCP Registry. The production server itself is hosted at https://mailbox.bot/api/mcp (streamable HTTP transport).

The repo also includes a small local stdio adapter (server.js) so registries such as Glama can start the server locally and inspect the live mailbox.bot tool definitions from https://mailbox.bot/api/mcp/tools-public. Production users should connect to the hosted endpoint.

If you're trying to use the server, go to mailbox.bot/mcp-install for client-specific setup (Claude Code, Claude Desktop, Cursor, etc.).

Related MCP server: sendook-mcp

Local registry check

npm start

This starts a stdio MCP adapter for introspection. Authenticated tool calls should use the hosted streamable HTTP MCP endpoint at https://mailbox.bot/api/mcp.

Verifying authenticity

The namespace bot.mailbox/* is reserved via DNS proof on the apex domain mailbox.bot. Only the domain owner can publish servers under this namespace to the MCP Registry. If you see another server claiming to be mailbox.bot under a different namespace, it is not official.

The canonical manifest lives in this repo and is mirrored to the registry — both should match exactly.

Capabilities

  • Outbound mail — send first-class letters, certified postal mail, and other USPS / FedEx / UPS classes from a PDF or a few common document formats.

  • Document review and retrieval — stored outbound submissions can expose document_preview_url for human verification, and get_outbound_mail_document retrieves original source bytes with document.read scope.

  • Inbound context — use private forwarding aliases to turn scans, PDFs, photos, provider notices, and notes from addresses the operator already controls into OCR-backed context.

  • Managed address reservation — dedicated mailbox.bot-issued physical mailing and package addresses are available by reservation for approved accounts; approved issuance begins August 31, 2026.

  • Sandbox modesk_agent_test_ keys exercise the full lifecycle (fulfillment photos, tracking, dispatch) with zero charge.

  • Cost controlsdry_run cost preview, X-Max-Cost-Cents cap, per-key daily piece limits, structured retryable errors.

  • Webhooks — signed delivery events with full payload inspection via REST.

Support conversations and support attachments are REST/OpenAPI/dashboard features, not MCP tools.

Full tool list and schemas: see the public MCP tool catalog, the install guide, and the OpenAPI specs at mailbox.bot/openapi.json and mailbox.bot/openapi.yaml.

License

MIT — covers this manifest and any examples added to this repo. The mailbox.bot service itself is operated under the mailbox.bot terms.

Available Tools

29 tools
add_noteA

Add an observation or context note to a package. Notes are visible to the facility operator and the renter. Use for recording decisions, observations, or agent reasoning.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesNote text (e.g. "Appears to be the replacement GPU from RMA #4521").
metadataNoOptional structured metadata attached to the note (e.g. { "rma_number": "4521", "vendor": "NVIDIA" }).
package_idYesUUID of the package to annotate.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCreated package note record.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, and description confirms a write operation. It adds visibility context (notes visible to operator and renter) beyond annotations. No contradiction.

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?

The description is concise: two sentences with no wasted words. First sentence states purpose, second adds context.

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 the presence of an output schema (not shown), the description adequately covers purpose, usage, and visibility. It provides enough context for an agent to use the tool correctly.

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 description does not need to add parameter details. It briefly mentions 'note' and 'metadata' but mostly relies on 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?

The description clearly states the action ('Add an observation or context note') and the resource ('to a package'). It distinguishes from sibling tools like 'add_tag' by specifying it's a note, not a tag.

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 that notes are visible to facility operator and renter, and suggests use cases (recording decisions, observations, agent reasoning). It does not explicitly state when not to use but provides sufficient context.

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

add_tagA
Idempotent

Add a tag/label to a package for categorization and filtering. Tags are free-form strings. Adding the same tag twice is a no-op.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag name (e.g. "hardware-order", "urgent", "return-needed"). Free-form, case-sensitive.
package_idYesUUID of the package to tag.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCreated or existing package tag record.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate idempotentHint=true, and the description reinforces this by stating that adding the same tag twice is a no-op. This adds behavioral context beyond the annotations. No other behavioral traits (e.g., authorization needs) are disclosed, but the key trait is covered.

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?

The description is extremely concise at three short sentences. Every sentence adds value: purpose, tag nature, and idempotency. No unnecessary words.

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 the simple parameter set (2 params, fully described in schema), presence of output schema, and annotations, the description covers the essential behavior. It could optionally mention case-sensitivity explicitly, but the schema already notes it.

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 describes both parameters. The description adds that tags are free-form strings and that adding duplicates is a no-op, which provides minor additional context but does not significantly enhance the schema's meaning.

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 clearly states the action (add a tag/label) and the resource (package), with a purpose (categorization and filtering). However, it does not distinguish from sibling tool 'add_note', which serves a similar function but for notes instead of tags.

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?

The description implies usage for categorization and filtering but fails to provide explicit guidance on when to use this tool versus alternatives like 'add_note'. No exclusion conditions or prerequisites are mentioned.

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

advance_test_outbound_mailA

Advance a test_mode outbound mail record one lifecycle step and queue the matching webhook. submitted becomes ready with simulated pages/envelope photos; ready becomes mailed with tracking, carrier, dispatch method, and receipt photo; mailed becomes delivered.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_idYesUUID of the test_mode outbound mail record to advance.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesAdvanced sandbox outbound mail job and webhook status.

TDQS

A4/5.0
Behavior4/5

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

Annotations provide minimal safety hints (readOnlyHint=false, destructiveHint=false). The description adds significant value by detailing each state transition and what gets simulated or added (e.g., simulated pages, tracking info, receipt photo). No contradictions with 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?

Two concise sentences: first states the main purpose, second breaks down state transitions. No wasted words, appropriately front-loaded.

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?

The description explains the full lifecycle for a test mode mail record, covering all state transitions. An output schema exists, so return values need not be described. The tool is well specified for an AI agent to invoke correctly.

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% with one parameter. The description repeats the schema description ('UUID of the test_mode outbound mail record to advance') almost verbatim, adding no new meaning beyond structured data.

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 uses a specific verb ('advance') and clearly identifies the resource ('test_mode outbound mail record') and the action (moving one lifecycle step and queuing webhook). It distinguishes from siblings like create_test_outbound_mail and send_outbound_mail.

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?

The description implies usage for test mode records and enumerates transitions, but does not explicitly state when to use this tool versus alternatives or provide exclusions. Context from sibling names helps but is not explicit.

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

create_ruleA

Create a standing instruction that auto-triggers actions when incoming packages match conditions. Rules run on every new package and execute the specified action if all conditions match. Use requires_approval to add a human review step before execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable rule name (e.g. "Forward Amazon packages", "Shred junk mail").
conditionsYesConditions that must ALL match for the rule to trigger.
action_typeYesAction to auto-trigger when conditions match.
action_paramsYesParameters for the action (e.g. forwarding address for "forward", scan_type for "scan").
requires_approvalNoIf true, matched packages require human approval before the action executes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCreated standing rule record.

TDQS

A4/5.0
Behavior3/5

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

Annotations leave room for description to cover side effects (e.g., action execution on matching). The description mentions requires_approval but does not detail consequences of actions like shredding or forwarding, which could be destructive. No contradiction with 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?

The description is two sentences, front-loaded with core purpose and a specific usage hint. No filler or redundant content.

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 the complexity (5 params, nested objects, output schema), the description covers the basic flow and a key parameter hint. It lacks details on rule persistence or action schema dependencies, but the output schema likely fills gaps.

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% with good descriptions. The description adds useful context for requires_approval but does not significantly enhance meaning beyond the schema for other parameters. 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?

The description clearly states the tool creates standing instructions that auto-trigger actions based on package conditions. It distinguishes from sibling tools like request_action (manual) and add_note by focusing on automation.

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 implicitly indicates usage for automating package handling with rules, and provides explicit guidance on using requires_approval for a human review step. However, it does not explicitly contrast with alternatives like request_action.

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

create_test_outbound_mailA

Create a sandbox outbound mail record without uploading a real document. The record is always test_mode=true, cost_cents=0, includes estimated_live_cost_cents and cost_breakdown, and queues a mail.submitted webhook. Use with a sandbox key to rehearse outbound workflows before sending real physical mail.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoWhether to include color-print surcharge in the live estimate.
metadataNoArbitrary metadata echoed in responses and webhooks.
mail_classNoMail class to simulate.first_class
page_countNoSimulated page count used for pricing.
agent_notesNoOptional facility/operator notes for the simulated mailpiece.
recipient_zipNoRecipient ZIP code. Affects estimated live postage.94105
recipient_cityNoRecipient city.San Francisco
recipient_nameNoRecipient name for the simulated mailpiece.Test Recipient
recipient_line1NoRecipient street line 1.123 Test Street
recipient_stateNoRecipient 2-letter state code.CA

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCreated sandbox outbound mail job and webhook status.

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses key behaviors beyond annotations: always test_mode=true, cost_cents=0, includes estimated_live_cost_cents and cost_breakdown, and queues a mail.submitted webhook. Annotations only indicate non-readonly, non-destructive, non-idempotent, so the description adds significant behavioral context.

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: first clearly states purpose, second adds key behaviors and usage context. No redundant wording; every sentence earns its place.

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?

Given the tool's 10 optional parameters, nested objects, and output schema, the description covers core behavior (test-only, estimates, webhook) and usage context (sandbox rehearsal). It's sufficiently complete for the AI agent.

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 adds value by explaining the overall effect of parameters (e.g., simulation for pricing, live estimates) beyond individual field descriptions. It does not detail each param but contextualizes them well.

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 explicitly states the tool creates a sandbox outbound mail record without uploading a real document. It distinguishes itself from sibling tools like send_outbound_mail (real mail) and advance_test_outbound_mail (state progression) by focusing on simulated creation.

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 advises using it with a sandbox key to rehearse workflows before real sending. While it doesn't explicitly list when not to use it or compare to all siblings, it provides clear context for appropriate usage.

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

get_facility_messagesA
Read-onlyIdempotent

Read the message thread with a specific facility. Returns messages in reverse chronological order with sender role (member, facility, agent). Supports cursor-based pagination. Automatically marks facility messages as read.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of messages to return (1-100). Defaults to 50.
beforeNoCursor: only return messages sent before this ISO 8601 timestamp. Use the oldest message timestamp from the previous page.
facility_idYesUUID of the facility whose conversation to read.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesMessages exchanged with a facility.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds non-obvious behaviors: cursor-based pagination and automatically marking facility messages as read, which is valuable beyond annotations. No contradiction.

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 concise sentences, front-loaded with purpose, no redundancy. Every sentence adds 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?

With annotations and output schema present, the description covers purpose, ordering, pagination, and side effects, making it complete for a read tool.

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% with parameter descriptions. The description adds context about pagination and reverse chronological order, but the schema already covers limit, before, and facility_id adequately. Some added value beyond 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?

The description clearly states 'Read the message thread with a specific facility', using a specific verb ('Read') and resource ('message thread'). It distinguishes from sibling tools like list_facility_conversations (which lists conversations) and send_facility_message (write).

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 implies usage context (reading a facility's messages) but does not explicitly contrast with siblings. It provides clear context but lacks explicit when-not-to-use or alternative guidance.

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

get_inbound_mailA
Read-onlyIdempotent

Get one forwarded inbound mail item with compact draft_context by default. Use this before drafting an outbound reply when you need sender context, reply contact candidates, deadline clues, source files, and thread linkage in one stable payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoOptional expansions. Defaults to ["drafting"]. Add signed_urls only when the agent truly needs temporary file access.
signed_urlsNoIf true, return short-lived signed URLs for stored files.
inbound_mail_idYesUUID of the inbound mail item to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesOne forwarded inbound mail item.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds value by noting the default include parameter and warning that signed_urls should only be added when temporary file access is truly needed, providing guidance beyond 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?

The description is only two sentences, no wasted words. The first sentence gives the core purpose, and the second provides actionable usage context. It is front-loaded and efficient.

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 retrieval tool with an output schema (not shown), the description adequately covers the workflow role, default behavior, and a specific caution. It does not explain return values, which is acceptable given the output schema exists.

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 all parameters are described. The description adds meaningful context by explaining the default behavior of 'include' and cautioning about 'signed_urls'. This provides additional semantics beyond the schema descriptions.

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 clearly states the tool retrieves a single inbound mail item with a default compact draft_context, and specifies it should be used before drafting an outbound reply. It effectively distinguishes from listing tools like list_inbound_mail by emphasizing the need for sender context and thread linkage.

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 explicitly tells when to use the tool ('before drafting an outbound reply') and lists the context it provides. It does not explicitly state when not to use it or mention alternatives, but the given sibling context includes list_inbound_mail, which partially addresses this.

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

get_mailboxA
Read-onlyIdempotent

Get your agent's real mailing address beta endpoint when the account has explicit beta access: street address + mailbox number for approved accounts. For generally available inbound context, use list_inbound_forwarding_addresses instead; that returns a private intake alias for scans, PDFs, photos, provider notices, and notes from addresses the operator already uses.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesMailbox address, facility, and status details.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the condition of requiring beta access, which provides useful context beyond annotations. No contradictions.

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: first defines purpose and condition, second provides guidance on alternative. No wasted words, information is front-loaded.

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?

The tool has no inputs and an output schema exists (though not shown). The description explains the output (street address + mailbox number), access requirements, and when to use an alternative, which fully covers the tool's functionality and context.

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 has no parameters and the description correctly notes the endpoint is parameterless. Schema coverage is 100% by default, so a baseline of 4 applies.

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 clearly states the tool retrieves the agent's real mailing address (street address + mailbox number) for accounts with explicit beta access. It distinguishes itself from the sibling tool list_inbound_forwarding_addresses, making the purpose unambiguous.

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?

The description explicitly says when to use this tool (beta access, approved accounts) and when not to (use list_inbound_forwarding_addresses for generally available inbound context), including the name of the alternative tool.

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

get_mailbox_mdA
Read-onlyIdempotent

Get the renter's MAILBOX.md standing instructions for this agent. Returns the full instruction text, version number, content hash, and last update timestamp. Call this on startup and cache the version — you must pass it to send_outbound_mail and update_action for sync verification.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCurrent MAILBOX.md standing instructions.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already mark readOnlyHint true, idempotentHint true, destructiveHint false. The description adds behavioral context such as caching the version and its role in sync verification for other tools, which is valuable beyond annotations. No contradictions.

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?

The description is two sentences, each serving a distinct purpose: stating what the tool does and providing usage instructions. No superfluous text; highly efficient.

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?

Given the tool has an output schema (not shown but indicated) and zero parameters, the description covers the key behavioral aspects: caching, sync verification necessity. Combined with annotations, it provides complete context for tool invocation.

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?

No parameters are defined; schema coverage is 100%. The description adds no parameter info because none exist. Baseline 4 is appropriate as no additional meaning is needed.

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 clearly states the tool retrieves the renter's MAILBOX.md standing instructions, listing the specific return fields (full instruction text, version, content hash, last update timestamp). It is distinct from siblings like 'get_mailbox' by specifying the 'md' suffix and instructions context.

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?

The description explicitly instructs to call this on startup and cache the version, and mandates passing it to send_outbound_mail and update_action for sync verification. This provides clear when-to-use and how-to-use guidance.

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

get_outbound_mailA
Read-onlyIdempotent

Get full details of an outbound mail job including recipient address, mail class, page count, cost breakdown, current status, fulfillment photos, and a time-limited signed URL to download the original PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
mail_idYesUUID of the outbound mail job to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesFull outbound mail job details with signed document URL.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by revealing the inclusion of a time-limited signed URL and fulfillment photos, which are behavioral traits 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?

The description is a single sentence that front-loads the key information without any redundancies. Every word earns its place.

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 the output schema exists (implicitly known), the description sufficiently lists the major return fields. However, it does not mention how to use the time-limited URL or any authentication requirements, but for a simple retrieval tool this is adequate.

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

Parameters3/5

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

Schema coverage is 100% and the schema already describes mail_id as 'UUID of the outbound mail job to retrieve.' The description adds no extra semantics for the parameter, 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?

The description clearly states the tool retrieves full details of an outbound mail job and enumerates specific fields (recipient address, mail class, page count, etc.), distinguishing it from sibling tools like list_outbound_mail (which likely returns summaries) and send_outbound_mail.

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?

The description implies usage after obtaining a mail_id but lacks explicit when-to-use or when-not-to-use guidance compared to siblings. No alternative tools are mentioned, leaving context implicit.

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

get_packageA
Read-onlyIdempotent

Get full package details including photos, tracking events, shipping label data (carrier, addresses, weight), forwarding status, storage location, and action history.

ParametersJSON Schema
NameRequiredDescriptionDefault
package_idYesUUID of the package to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesPackage details with photos, events, and extracted label data.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds value by listing the specific data fields returned (e.g., photos, tracking events, shipping label data), providing context beyond the safety profile. No contradictions with 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?

The description is a single sentence that efficiently lists all included details without waste. It is front-loaded with the core action 'Get full package details' and then enumerates specifics.

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?

Given the tool's simplicity (one parameter), comprehensive annotations, and presence of an output schema, the description adequately covers what the tool returns. No additional context is needed.

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

Parameters3/5

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

Schema coverage is 100% and the description does not add any parameter-specific information beyond what the schema provides, so a baseline score of 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?

The description clearly states the verb 'Get' and resource 'full package details' while enumerating specific data categories (photos, tracking events, shipping label data, etc.). This distinguishes it from sibling tools like list_packages (which returns a list) and get_package_photos (which focuses on photos alone).

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 implicitly indicates use when full details of a specific package are needed, but it does not explicitly contrast with alternatives like list_packages or provide when-not-to-use guidance. The purpose is clear but lacks direct exclusions.

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

get_package_photosA
Read-onlyIdempotent

Get photos for a package with OCR-extracted text and confidence scores. Filter by photo type to get only exterior shots, label closeups, barcode scans, or content scans.

ParametersJSON Schema
NameRequiredDescriptionDefault
package_idYesUUID of the package to get photos for.
photo_typeNoFilter by photo type. "exterior" = package exterior, "label" = shipping label closeup, "barcode" = barcode scan, "content_scan" = opened package contents.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesPackage photo records with OCR metadata.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnly, idempotent, non-destructive behavior. The description adds that photos include OCR-extracted text and confidence scores, and that filtering is supported. This provides additional context beyond annotations without contradiction.

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 concise sentences with no wasted words. The key action and differentiation are front-loaded.

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?

Given the small number of parameters, annotations, and the presence of an output schema (though not shown), the description is complete. It covers what the tool does, what it returns, and how to filter. No significant gaps.

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 adds meaning by explaining the photo_type enum values (e.g., 'exterior' = package exterior). This enhances understanding beyond 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?

The description clearly states the tool retrieves photos for a package, including OCR-extracted text and confidence scores, and allows filtering by photo type. This is specific and distinguishes it from sibling tools like 'get_package'.

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?

The description implies usage when photos with OCR data are needed, but lacks explicit guidance on when to use this tool over alternatives among the many sibling tools. No 'when to use' or 'when not to use' instructions are provided.

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

get_postal_threadA
Read-onlyIdempotent

Get one physical-mail thread with optional timeline events. Use this to explain how a generated outbound mail piece relates back to prior inbound scans and review decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoOptional expansions. Add events to include inbound/outbound timeline references.
thread_idYesUUID of the postal mail thread to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesOne postal mail workflow thread.

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, and destructiveHint=false, informing the agent of safe read behavior. The description adds the optional expansion of timeline events, which is valuable but not extensive. The behavioral burden is adequately covered by 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?

The description is two sentences: the first states the primary function, the second provides a use case. Every word is purposeful, no redundancy. It is front-loaded and efficient.

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 an output schema exists, the description does not need to explain return values. It covers the purpose, parameter functionality, and use case. The only minor gap is not mentioning that thread_id is a UUID, but the schema already provides format information. Overall, it is sufficiently complete for correct tool invocation.

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%, with detailed descriptions for both parameters. The tool description echoes the schema's mention of optional timeline events but adds no new semantic meaning. Baseline score of 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?

The description clearly states it retrieves a single physical-mail thread with optional timeline events, and specifies a distinct use case: explaining how outbound mail relates to prior inbound scans and decisions. This differentiates it from list_postal_threads and other sibling 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?

The description provides a specific scenario to use the tool, which guides the agent. However, it does not explicitly mention when not to use it or compare it to alternatives like get_inbound_mail or get_outbound_mail. The use case is clear but lacks explicit exclusions.

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

get_scan_resultsA
Read-onlyIdempotent

Get document scan results including raw OCR text, structured data fields (addresses, dates, amounts), and confidence scores. Returns empty if scan is still processing.

ParametersJSON Schema
NameRequiredDescriptionDefault
package_idYesUUID of the package to get scan results for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesDocument scan records and OCR results.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent. Description adds useful behavioral detail: returns empty while scan is processing, and lists the type of data returned.

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 efficient sentences with no unnecessary words. First sentence front-loads the key content types, second adds important edge-case behavior.

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?

Covers main output types and edge case. With output schema present, description is adequate. Minor gap: no mention of how to handle empty results (retry?), but overall complete.

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?

Single parameter with complete schema description (100% coverage). Description does not add extra semantics for package_id, but schema is sufficient.

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?

Clearly states the tool retrieves document scan results and lists specific content (OCR text, structured fields, confidence scores). Distinguishes from siblings like request_scan by describing retrieval behavior.

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?

Implies usage after scan request by noting it returns empty if still processing. Could be more explicit about when to use vs siblings, but context is clear enough.

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

get_usageA
Read-onlyIdempotent

Get usage summary and billing events for a time period. Returns itemized events (scans, forwards, mail sends) with costs, plus period totals. Defaults to the current billing period if no dates are specified.

ParametersJSON Schema
NameRequiredDescriptionDefault
period_endNoEnd of the reporting period in ISO 8601 format. Defaults to now.
period_startNoStart of the reporting period in ISO 8601 format. Defaults to current billing period start.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesUsage and billing event records.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint, idempotentHint, destructiveHint, covering safety. The description adds beyond these: it reveals the output structure (itemized events with costs) and the default billing period behavior, which are not in 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?

Two sentences, no wasted words. The main action and return are front-loaded, and every sentence adds 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?

Given the output schema exists, the description need not explain return types. It covers the main aspects: what the tool returns, default behavior, and time period scope. Complete for this simple tool.

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% with format descriptions. The description adds meaning by stating the default behavior for unspecified dates ('Defaults to the current billing period'), which clarifies optionality and default values beyond 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?

The description uses a specific verb ('Get') and resource ('usage summary and billing events'), and clearly states what is returned (itemized events with costs, period totals). The tool's purpose is distinct from siblings, as no other sibling deals with billing/usage.

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?

The description implies usage for obtaining billing data over a time period but does not explicitly mention when to use it over alternatives or provide exclusions. The purpose is clear enough to guide selection, but lacks explicit guidance.

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

list_facility_conversationsA
Read-onlyIdempotent

List your active facility conversations with unread message counts and last message preview. Each conversation corresponds to one facility where you have a mailbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of conversations to return (1-100). Defaults to 20.
offsetNoNumber of conversations to skip for pagination. Defaults to 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesFacility conversations plus pagination.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent. Description adds that it returns unread counts and last message preview, providing extra behavioral context beyond safety profile.

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, no wordiness, front-loaded with key action and resource. Second sentence adds necessary context about conversation meaning.

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?

Given output schema exists, description covers essential purpose and return content. No gaps in information needed for selection or invocation.

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 has 100% description coverage for both parameters (limit, offset). Description adds no additional meaning beyond standard pagination parameters.

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?

Clearly states the tool lists active facility conversations with specific details (unread counts, last message preview), and defines what a conversation is. Distinguishes from siblings like list_inbound_mail which lists individual mail items.

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?

Implies usage for overview of conversations; context with sibling tools suggests alternatives for individual messages, but no explicit when-to-use or when-not-to-use guidance.

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

list_inbound_forwarding_addressesA
Read-onlyIdempotent

List the renter’s private inbound forwarding aliases on forward.mailbox.bot. These are the unique intake email addresses an operator, assistant, provider, or external agent can forward scans, PDFs, photos, provider notices, notes, and other context-aware documents to so mailbox.bot can build OCR-backed inbound context. Forwarding/emailing attachments here initiates OCR/extraction; this tool discovers the address and does not upload files directly into OCR. The alias is member-scoped, so live and sandbox agent keys for the same member resolve to the same intake address.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesPrivate inbound forwarding email aliases.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds that forwarding to the address triggers OCR/extraction, and explains member scoping (same address for live/sandbox). This provides context 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?

Four sentences, each necessary: purpose, usage, clarification, scoping. Front-loaded with verb and resource.

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?

Given no parameters, helpful annotations, and an existing output schema, the description covers purpose, indirect effects, and scope fully. No gaps.

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?

No parameters exist; baseline is 4. The description adds no parameter info, but none is needed.

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 clearly states the tool lists 'private inbound forwarding aliases on forward.mailbox.bot', with a specific verb and resource. It distinguishes from sibling tools like list_inbound_mail by focusing on forwarding addresses.

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?

Describes the purpose of the addresses (intake for OCR) and clarifies that the tool only discovers the address, not uploads files. However, it doesn't explicitly contrast with alternatives or state when not to use it.

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

list_inbound_mailA
Read-onlyIdempotent

List forwarded inbound mail items captured from private forwarding aliases. Default output includes compact draft_context so an LLM or external agent can reason about OCR context, reply contact candidates, deadlines, and thread linkage before generating outbound mail.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of inbound items to return (1-100).
offsetNoNumber of inbound items to skip for pagination.
statusNoOptional inbound status filter.
includeNoOptional expansions. Defaults to ["drafting"]. Add ocr/lineage only when deeper provenance is needed.
categoryNoOptional category filter such as "Needs review" or "Loan / Mortgage".
thread_idNoOnly return inbound items linked to this postal mail thread.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesForwarded inbound mail items plus pagination.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by specifying default output includes draft_context and that ocr/lineage should only be added when deeper provenance is needed, providing behavioral context beyond 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?

Two sentences: first defines the action, second explains the default output purpose. No wasted words, front-loaded content, and concise.

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 6 optional parameters and an output schema, the description covers purpose and default behavior. It lacks mention of ordering or pagination details, but overall is fairly complete for a list 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%, so baseline is 3. The description adds minimal extra meaning beyond the schema, such as clarifying that 'drafting' is included by default and advice on when to use ocr/lineage. This slightly exceeds baseline.

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 clearly states the tool lists forwarded inbound mail items captured from private forwarding aliases, with additional context about default draft output. This distinguishes it from siblings like list_outbound_mail and get_inbound_mail.

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 that default output includes compact draft_context for LLM reasoning, implying use for outbound generation preparation. It also advises when to add ocr/lineage expansions. However, it does not explicitly state when not to use this tool versus alternatives.

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

list_outbound_mailA
Read-onlyIdempotent

List outbound mail jobs with status tracking. Returns mail ID, recipient, mail class, status, cost, and timestamps. Filter by status to see pending, in-transit, or delivered mail.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of mail jobs to return (1-100). Defaults to 20.
offsetNoNumber of mail jobs to skip for pagination. Defaults to 0.
statusNoFilter by mail status. "pending_approval" = awaiting human approval, "submitted" = queued for facility, "ready" = printed and ready to mail, "mailed" = in transit, "delivered" = confirmed delivery, "failed" = delivery failed, "cancelled" = cancelled before mailing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesOutbound mail job summaries.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by listing returned data fields and filter options, clarifying what the agent can expect.

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 purpose and return fields, no fluff. Every sentence contributes meaningful information.

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 an output schema present, the description adequately covers the return structure and filtering. Could explicitly mention pagination behavior, but schema parameters already cover limit/offset.

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 description adds minimal value. It reinforces the status filter usage but does not provide details beyond 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?

The description explicitly states the tool lists outbound mail jobs with status tracking and specifies the returned fields (mail ID, recipient, mail class, status, cost, timestamps), distinguishing it from send/get/advance sibling tools.

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?

The description mentions filtering by status but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives like get_outbound_mail for a single job.

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

list_packagesA
Read-onlyIdempotent

List inbound mail or packages for approved real mailing address/package beta accounts with optional filters by status, carrier, and date. Returns tracking number, carrier, status, and received timestamp where available. For generally available inbound postal context, use list_inbound_mail with forwarded scans/PDFs/notes instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of packages to return (1-100). Defaults to 20.
sinceNoOnly return packages received after this ISO 8601 date-time.
offsetNoNumber of packages to skip for pagination. Defaults to 0.
statusNoFilter by package lifecycle status. "received" = just arrived, "stored" = in facility storage, "forwarded" = shipped to forwarding address.
carrierNoFilter by shipping carrier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesInbound package summaries.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying the return fields (tracking number, carrier, status, received timestamp) and the scope of data (inbound mail/packages for specific accounts), which is 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?

Two sentences: first covers action and filters, second covers return fields and alternative tool. No wasted words, front-loaded with key purpose.

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 the presence of an output schema and zero required parameters, the description is fairly complete. It covers purpose, filters, return fields, and alternative. Could mention pagination settings (limit/offset) but those are in 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 baseline is 3. The description mentions optional filters by status, carrier, and date, but the schema already documents all parameters with descriptions. The description does not add significant new semantic meaning beyond 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?

The description explicitly states 'List inbound mail or packages for approved real mailing address/package beta accounts with optional filters', providing a specific verb and resource. It distinguishes from sibling tool list_inbound_mail by mentioning the account type and alternative for general context.

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?

The description clearly states when to use this tool ('for approved real mailing address/package beta accounts') and explicitly indicates when not to use it ('For generally available inbound postal context, use list_inbound_mail'), providing a direct alternative.

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

list_postal_threadsA
Read-onlyIdempotent

List physical-mail threads that group inbound mail context, human review, and outbound sends. Use this to understand which inbound items and outbound documents belong to the same business workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of threads to return (1-100).
offsetNoNumber of threads to skip for pagination.
statusNoOptional thread status filter.
includeNoOptional expansions. Add events to include inbound/outbound timeline references.
categoryNoOptional category filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesPostal mail workflow threads plus pagination.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already cover safety. Description adds valuable behavioral context about grouping inbound/outbound items, no contradictions.

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 concise sentences: first defines resource, second provides usage guidance. No wasted words.

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 5 optional parameters and output schema present, description provides sufficient high-level context. Lacks mention of pagination or result structure, but schema covers those.

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% with parameter descriptions. The tool description does not add extra parameter meaning beyond the schema; baseline score applies.

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?

Description clearly states the verb 'list', resource 'physical-mail threads', and explains grouping of inbound mail, human review, and outbound sends. It distinguishes from siblings like list_inbound_mail and list_outbound_mail by focusing on thread grouping.

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 advises use for understanding business workflow grouping, implying context. Does not mention alternatives or when not to use, but context is clear.

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

propose_mailbox_md_editA

Propose changes to the renter's MAILBOX.md instructions with reasoning. The renter will see your suggestion in their dashboard and can accept, reject, or modify it. Use this when you observe patterns that could be codified into standing instructions.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesWhy this change is suggested (e.g. "Observed 5 Amazon packages this week, all forwarded manually — adding auto-forward rule").
suggested_contentYesFull proposed MAILBOX.md content (max 10,000 chars). Must include the complete document, not just the diff.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCreated MAILBOX.md suggestion record.

TDQS

A4.3/5.0
Behavior4/5

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

The description explains that the renter will see the suggestion and can accept, reject, or modify it, which discloses the non-immediate, proposal-based behavior. This adds value beyond the annotations (readOnlyHint=false), which already indicate it's not read-only. No contradictions with 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?

The description is concise with two sentences. The first sentence front-loads the action and resource, and the second provides usage context. No unnecessary words; every sentence earns its place.

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?

Given the tool has only 2 required parameters fully described in the schema and an output schema (not shown but present), the description provides sufficient context about the proposal workflow and when to use it. It is complete for the tool's complexity.

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 input schema already provides detailed parameter descriptions. The tool description reinforces the purpose of the parameters (reasoning, suggested content) but does not add new semantic meaning beyond what the schema provides. 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?

The description clearly states the tool's purpose: 'Propose changes to the renter's MAILBOX.md instructions with reasoning.' It identifies the specific resource (MAILBOX.md), action (propose), and distinguishes from sibling tools like create_rule and get_mailbox_md by focusing on proposals rather than direct edits or rule creation.

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 includes an explicit usage guideline: 'Use this when you observe patterns that could be codified into standing instructions.' This gives clear context for when to invoke the tool, though it does not explicitly mention when not to use it or suggest alternatives.

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

register_expectedA

Pre-register an expected inbound shipment so it is auto-matched when it arrives at the facility. Optionally specify an action to auto-execute on arrival (e.g. forward immediately, scan on receipt).

ParametersJSON Schema
NameRequiredDescriptionDefault
carrierNoShipping carrier (e.g. "fedex", "ups", "usps").
auto_actionNoAction to auto-execute when the package arrives.
descriptionNoHuman-readable description of the shipment (e.g. "Replacement laptop from Dell").
expected_byNoExpected arrival date in ISO 8601 format. Used for alerts if the package is late.
tracking_numberNoCarrier tracking number for the expected shipment.
auto_action_paramsNoParameters for the auto-action (e.g. forwarding address).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCreated expected shipment record.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate a non-destructive write operation. The description adds behavioral context: auto-matching on arrival and auto-execution of actions, which are side effects not captured by annotations alone. No contradictions.

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, no wasted words. Purpose is front-loaded, and the optional auto-action is clearly separated with examples. Every sentence contributes meaning.

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 the output schema exists (not shown but signaled), return value explanation is not needed. The description covers the tool's core function and an important optional feature. Parameter details are adequately handled by the 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 coverage is 100%, so baseline 3 applies. The description adds value by explaining the optional auto_action and giving examples, but the schema already describes all parameters adequately.

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 clearly states the verb 'Pre-register' and resource 'expected inbound shipment', with a specific purpose 'auto-matched when it arrives'. It distinguishes from sibling tools like 'create_rule' or 'request_scan' by focusing on incoming package expectations.

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 implies usage when expecting an inbound shipment that should be auto-matched, and mentions optional auto-action. It does not explicitly state when not to use or provide alternatives, but the context from sibling names makes the use case clear.

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

request_actionA
Destructive

Request a physical action on a package at the facility. Actions include forwarding to another address, shredding, scanning documents, holding for pickup, disposing, returning to sender, photographing, opening and scanning contents, or recording a video. Some actions (shred, dispose) are irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform. "forward" = ship to another address, "shred" = destroy (irreversible), "scan" = OCR document scan, "hold" = keep in storage, "dispose" = discard (irreversible), "return_to_sender" = send back, "photograph" = take photos, "open_and_scan" = open package and scan contents, "record_video" = video recording of package.
priorityNoProcessing priority. "urgent" = same-day processing, "high" = next business day, "normal" = standard queue, "low" = when convenient.normal
package_idYesUUID of the package to act on.
parametersNoAction-specific parameters. For "forward": { address, city, state, zip }. For "scan": { scan_type }. For "hold": { until_date }.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCreated facility action request record.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds value by specifying which actions (shred, dispose) are irreversible, and lists all actions, providing context 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?

Two sentences: first states the purpose and lists actions, second warns about irreversibility. No fluff, front-loaded, every word earns its place.

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 the tool's complexity (9 actions, nested parameters, output schema present), the description covers the main purpose and key constraints without needing to repeat schema details. It could mention action-specific parameter requirements briefly, but the schema handles that.

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 schema has 100% coverage with detailed parameter descriptions. The description adds practical context by listing actions and noting irreversibility, but the schema already explains each enum and the parameters object. The description's added value is moderate.

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 clearly states 'Request a physical action on a package at the facility' and lists all possible actions (forward, shred, scan, etc.), making the tool's purpose specific and distinct from read-only tools like 'list_packages' or 'get_package'.

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?

The description explains the tool covers a wide range of physical actions and mentions irreversible ones, but does not explicitly guide when to use this tool versus siblings like 'request_scan' or other action-specific tools. Usage is implied rather than explicitly compared.

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

request_scanA

Request document scanning (OCR + structured data extraction) for a package. The facility will scan the document and extract text, addresses, dates, and other structured data. Results are available via get_scan_results after processing.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_typeNoType of scan. "label" = shipping label only, "envelope" = exterior envelope, "document" = full document OCR, "content" = opened package contents.document
package_idYesUUID of the package to scan.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCreated scan request record.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only show readOnlyHint=false, so the description adds value by explaining that this is a request (non-instantaneous) and that results come later via another tool. It does not fully disclose potential side effects (e.g., whether the package is consumed or altered), but the async nature is well communicated.

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, followed by clarifying detail. Every sentence adds value with no redundancy.

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?

The tool has an output schema (not shown but context signal indicates true) and the description explains the overall workflow (request then retrieve). It lacks explicit error or edge-case handling, but for a simple async request tool, this level of detail is reasonably complete.

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% with detailed descriptions for both parameters (package_id and scan_type enum). The tool description does not add new parameter-level meaning beyond the schema, so a baseline score of 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?

The description starts with a specific verb-resource pair ('Request document scanning') and adds detail about OCR and structured data extraction, clearly distinguishing it from the sibling get_scan_results that retrieves the output.

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 clearly indicates when to use this tool (to initiate scanning a package) and mentions the follow-up tool (get_scan_results), providing implicit usage guidance. However, it does not explicitly state when not to use it or list alternative approaches.

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

send_facility_messageA

Send a message to the facility operator managing your mailbox. Messages appear in the shared conversation visible to you, the renter, and the facility. Optionally link the message to a specific package or action request for context.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesMessage text (1-5000 characters).
package_idNoOptional: link this message to a specific package for context.
facility_idYesThe facility to message. Get this from the get_mailbox response.
action_request_idNoOptional: link this message to an action request for context.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesSent facility message identifiers and body.

TDQS

A4/5.0
Behavior4/5

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

Description adds context beyond annotations: messages appear in a shared conversation visible to the renter and facility. Annotations already indicate non-destructive, non-read-only, open-world behavior. No contradictions.

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, no fluff. First sentence defines purpose, second adds optional context. Front-loaded and efficient.

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 the presence of an output schema (not shown) and comprehensive annotations plus schema, the description covers purpose, visibility, and optional linking. It lacks mention of character limits or error handling, but these are in the 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 coverage is 100%, so parameters are well-documented in the schema. The description adds minimal extra meaning about linking messages to packages or action requests, but this is already stated in the schema descriptions.

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 clearly states the tool sends a message to the facility operator, specifying the recipient and action. It distinguishes from sibling tools like get_facility_messages (retrieval) and list_facility_conversations (listing).

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?

The description implies usage for sending messages to the facility operator but does not explicitly compare to alternatives or state when not to use it. No exclusion criteria or prerequisites are given.

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

send_outbound_mailA

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription
resultYesSubmitted outbound mail job or dry-run cost preview.

TDQS

A4.3/5.0
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.

update_actionA
Idempotent

Push notes, structured data, or a clarification response to an existing action request. Use this to add agent reasoning, attach extracted data, or respond when the facility asks for clarification. Requires mailbox_md_version to prove your MAILBOX.md instructions are in sync.

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYesThe action request ID to update.
agent_dataNoStructured data to attach (e.g. OCR results, extracted fields, classification labels).
agent_notesNoFree-text notes from the agent (e.g. "Forwarding per standing rule #3").
decision_contextNoLink this decision to a specific MAILBOX.md instruction for auditability.
mailbox_md_versionYesYour current MAILBOX.md version (from get_mailbox_md). Required for sync verification.
respond_to_clarificationNoResponse text when action status is needs_clarification. Providing this auto-resumes the action to in_progress.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesUpdated facility action request record.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations indicate idempotent and not destructive. Description adds valuable context: auto-resumes action when providing clarification response, requires sync verification. Does not contradict 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?

Two sentences with front-loaded purpose. Every word contributes: first sentence states function and three use cases, second adds critical requirement. No redundancy.

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?

Complete for a mutation tool: covers purpose, detailed use cases, required parameter, and behavioral effects (auto-resume). Output schema exists, so return values need not be described.

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

Parameters3/5

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

Schema coverage is 100% and parameter descriptions are clear. The tool description adds minimal extra meaning beyond the schema (only the sync verification requirement), meeting the baseline.

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?

Description uses specific verb 'update' and resource 'action request', listing three distinct use cases (push notes, attach data, respond to clarification). Clearly distinguishes from siblings as no other tool updates an action.

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 states when to use: to add reasoning, attach extracted data, or respond to clarification requests. Mentions requirement for mailbox_md_version. Does not explicitly exclude scenarios but covers primary use cases.

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

update_webhookA
Idempotent

Configure webhook endpoint URL and event subscriptions for real-time notifications. Events include package.received, package.status_changed, action.completed, mail.status_changed, and more. The endpoint must use HTTPS and respond with 2xx within 10 seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNoSet to false to pause webhook delivery without removing the URL.
event_typesNoArray of event types to subscribe to (e.g. ["package.received", "mail.status_changed"]). Empty array disables all events.
webhook_urlNoHTTPS URL to receive webhook POST requests. Must respond with 2xx within 10 seconds.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesWebhook configuration status.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds the HTTPS requirement and 10-second response time constraint, but does not detail side effects like whether event subscriptions are replaced or appended, or authorization needs.

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 two sentences, succinct and to the point. It front-loads the main action and then provides key constraints. Minor improvement could be omitting 'and more' in favor of referencing the schema for full event list.

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 100% schema coverage and an output schema present, the description sufficiently covers the tool's purpose and a critical timing constraint. It does not explain return values, but the output schema likely does. No missing aspects given the tool's complexity.

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 parameters. The tool description repeats the HTTPS requirement mentioned in the schema, but adds no new parameter-level meaning beyond what is in 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?

The description clearly states the verb 'configure' and the resource 'webhook endpoint URL and event subscriptions', with a specific purpose of real-time notifications. It lists example event types, distinguishing it from sibling tools like create_rule or list_packages.

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?

The description implies usage for updating webhook settings but does not explicitly state when to use or not use this tool versus alternatives. No exclusion criteria or alternative tool names are given.

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. Dates show when Glama detected each change.

  1. 29 tool updatesv1.0.0
    • First observedadd_note
    • First observedadd_tag
    • First observedadvance_test_outbound_mail
    • First observedcreate_rule
    • First observedcreate_test_outbound_mail
    • First observedget_facility_messages
    • First observedget_inbound_mail
    • First observedget_mailbox
    • First observedget_mailbox_md
    • First observedget_outbound_mail
    • First observedget_package
    • First observedget_package_photos
    • First observedget_postal_thread
    • First observedget_scan_results
    • First observedget_usage
    • First observedlist_facility_conversations
    • First observedlist_inbound_forwarding_addresses
    • First observedlist_inbound_mail
    • First observedlist_outbound_mail
    • First observedlist_packages
    • First observedlist_postal_threads
    • First observedpropose_mailbox_md_edit
    • First observedregister_expected
    • First observedrequest_action
    • First observedrequest_scan
    • First observedsend_facility_message
    • First observedsend_outbound_mail
    • First observedupdate_action
    • First observedupdate_webhook

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct resource or action (packages, inbound mail, outbound mail, facilities, rules, etc.) with clear boundaries. Even related tools like add_note and update_action have clearly separated purposes (package notes vs action request notes). There is no overlapping functionality that would cause confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_package, list_inbound_mail, send_outbound_mail, update_webhook). The naming style is uniform across all 29 tools, making the API predictable and easy to navigate for an agent.

Tool Count4/5

At 29 tools, the count is above the typical well-scoped range (3-15) but fits the comprehensive domain of mail and package management. Each tool serves a necessary function without redundancy, and the scope justifies the number.

Completeness3/5

The tool set covers core workflows (create, read, list, request actions) but lacks explicit update and delete operations for several resources like rules, packages, and webhooks. Notable gaps include no update_rule, delete_rule, delete_package, or delete_webhook, which may cause dead ends when agents need to modify or remove resources.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server for semantic search and retrieval of indexed Slack messages stored in Qdrant using Cohere reranking via AWS Bedrock. It enables users to search through Slack history, retrieve full message threads, and access channel or user statistics through natural language.
    5
    -
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Sendook - an AI email communication platform. Enables AI agents to send and receive emails, manage inboxes, threads, and webhooks programmatically.
    16
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Official MCP server for Shipmail, enabling agents to manage domains, mailboxes, messages, threads, webhooks, and suppressions via natural language.
    100
    305
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that lets AI agents create reviewable physical mail drafts, validate quotes, and pay for postage via MPP or x402 protocols.
    1
    MIT

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