Skip to main content
Glama
arbengine

mailbox-mcp

list_inbound_items

Read-onlyIdempotent

Deprecated: use search_inbound_items. Still served unchanged during the alias window. Search managed-renter physical mail through GET /v1/inbound-items?search_mode=documents.

Instructions

Deprecated: use search_inbound_items. Still served unchanged during the alias window. Search managed-renter physical mail through GET /v1/inbound-items?search_mode=documents. q uses literal AND terms across authorized saved metadata, exterior OCR and completed requested inside-page OCR (NFKC/lowercase, max 200 characters and 12 terms). Terms may match different pages of one item. received_after is inclusive and received_before exclusive; these filter intake time, never a printed letter date. status and kind narrow canonical item metadata. Sender/address terms use q; identify them from actual page evidence, not guessed fields. Returns item metadata and canonical owner/mailbox identity, not page text. Use get_inbound_item_sources for selected items. Saved-data reads only: no extraction, retry, signed image URL, facility action, provider call, email or charge. Exterior automation and authorized inside-page extraction have independent activation; these readers do not enable either. Limit 1–50 (default 25), offset 0–10000; follow pagination.has_more using offset plus returned count, stop at the cap and narrow query/date windows or report incomplete history. Results are not snapshot-consistent. Bound concurrency, honor Retry-After when present, back off on transient failures, and stop on access errors. No new exterior-ready webhook or unbounded export is promised. Requires saved-document reads enabled for the account, an active eligible managed mailbox, and both inbound.item.read and inbound.item.scan.read, even for empty searches. Live member keys are owner-scoped; Live agent keys see only their current assigned mail. No facility, Sandbox or package.read compatibility access. Stop on denial; never switch keys, accounts or mail APIs to bypass it. A member key cannot select agent duties; use get_mailbox_md separately with the intended agent's agent.read scope.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNoLiteral AND search of authorized saved metadata and OCR; NFKC/lowercase, at most 200 characters and 12 terms. No fuzzy search or new extraction.
kindNoOnly items of this kind.
limitNoPage size, 1–50 (default 25).
offsetNoItems to skip, 0–10000 (default 0). Advance by the number returned while more remain; results are a current view, not a snapshot.
statusNoOnly items in this custody status.
received_afterNoInclusive canonical intake time (RFC3339 with timezone, up to six fractional-second digits); not a date printed in a letter.
received_beforeNoExclusive canonical intake time (RFC3339 with timezone, up to six fractional-second digits); not a date inferred from OCR.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.3

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already establish a safe read-only, idempotent profile, but the description adds substantial context beyond them: exact auth requirements (saved-document reads enabled, eligible managed mailbox, both inbound.item.read and inbound.item.scan.read), member vs agent key scoping, no facility/Sandbox/package.read compatibility, non-snapshot results, Retry-After/backoff expectations, and a clear statement that no extraction/retry/signed URL/provider call occurs.

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

Conciseness3/5

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

The deprecation notice and purpose are correctly front-loaded, but the body is ~250+ words of dense prose with several negative-clause disclaimers that repeat the same 'reads only' idea and a trailing aside about member keys vs agent duties (get_mailbox_md) only loosely related to this call. Most sentences carry operational value, but the sheer density and mild redundancy hurt scanability.

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 complexity — deprecation, dual read scopes, key-scoping rules, pagination caps, non-snapshot results — the description covers everything needed to call it correctly. An output schema exists, so return-value detail is appropriately left to it while the description still warns that only metadata/identity, not page text, comes back.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents every parameter; the description nonetheless adds real meaning on top — that q is literal AND across NFKC/lowercased metadata and OCR, that terms may match different pages of one item, that received_after is inclusive while received_before is exclusive and both filter intake time not printed dates, and that sender/address terms must go through q.

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?

It states a concrete verb and resource ('Search managed-renter physical mail') and even pins the underlying endpoint and search mode. It explicitly distinguishes itself from its sibling search_inbound_items by declaring the deprecation/alias relationship, so an agent knows exactly which version it is calling.

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

Usage Guidelines5/5

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

It gives explicit when-not-to-use guidance ('Deprecated: use search_inbound_items'), a named alternative for follow-up detail (get_inbound_item_sources for selected items), and stop conditions (stop at offset cap; never switch keys/accounts to bypass denial). Routing decisions are fully covered rather than implied.

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