Skip to main content
Glama
arbengine

mailbox-mcp

search_inbound_items

Read-onlyIdempotent

List and search inbound mail through GET /v1/inbound-items, the same list and search the dashboard shows: newest first, with public status, kind (letter | package), the sender line as read from the envelope, the envelope page and any open…

Instructions

List and search inbound mail through GET /v1/inbound-items, the same list and search the dashboard shows: newest first, with public status, kind (letter | package), the sender line as read from the envelope, the envelope page and any open action. q is a literal AND search (max 12 terms, 200 characters) over the reference, the sender and the OCR text of every readable page, envelope or contents; status, kind, received_after and received_before (intake time) narrow it. Sandbox keys (sk_agent_test_) see the account's sample letter from Mojave Land Partners: start with q: "Mojave"; an empty result carries a notice explaining why. Use item.id with the other tools. Key scope: inbound.item.read (agent.inbox.read also works). Member keys read their own live items; agent keys read items bound or assigned to them, in their key's environment. Proposals are agent-only and always wait for the owner: they never charge credits, buy postage, open, forward or discard anything by themselves. Forward destinations and discard proposals are checked against the agent's structured inbound policy. Image URLs are never issued to agents. Stop on denial; never switch keys or mail APIs to bypass it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNoLiteral AND search: every term (max 12, 200 characters, NFKC-normalized and lowercased) must appear in the reference, the sender line or the OCR text of a readable page. Not fuzzy; punctuation is literal.
kindNoletter or package.
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 public status.
received_afterNoInclusive intake time (ISO 8601 with offset): when the facility logged the item, never a printed date.
received_beforeNoExclusive intake time (ISO 8601 with offset); must be after received_after.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.3

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses key-scope semantics (inbound.item.read / agent.inbox.read, member vs agent visibility and environment binding), agent-only proposal behavior that never spends credits or performs side effects, policy checks on forwarding/discard, that image URLs are never issued to agents, and that empty results carry an explanatory notice. That is substantial behavioral context the annotations do not carry.

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?

Purpose and result shape are front-loaded, then search semantics, sandbox behavior, and key scope follow in a logical order. It is dense and runs long for a search tool, and the proposal/image-URL sentences sit at the edge of this tool's remit, but nearly every clause carries operative information.

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

Completeness5/5

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

With an output schema present, return-value explanation is not needed, and the description still covers the dimensions an agent needs: result ordering, filter semantics, pagination caveat (via schema), key scopes, environment constraints, sandbox seeding behavior, and how to proceed with returned item.id. Nothing material for correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented (q's AND semantics and 12-term/200-char limit, offset advance guidance, intake-time meaning). The description restates the search target ('reference, the sender and the OCR text of every readable page, envelope or contents') and framing of narrowing filters but adds little beyond the schema, so the baseline 3 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 first sentence states a specific verb+resource ('List and search inbound mail'), names the backing endpoint, and anchors it to a familiar surface ('the same list and search the dashboard shows'). It also enumerates what is returned (status, kind, sender line, envelope pages, open action), so an agent knows exactly what this call yields.

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 explains when each filter applies (q for literal AND search, status/kind/received_after/before to narrow) and gives concrete sandbox guidance ('start with q: "Mojave"') plus a stop condition ('Stop on denial; never switch keys or mail APIs to bypass it'). It does not explicitly name list_inbound_items or get_inbound_item as the alternative for a plain unfiltered listing, so it stops short of full when-not/alternative routing.

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