Skip to main content
Glama
arbengine

mailbox-mcp

propose_agent_inbox_handling

Idempotent

Deprecated: use request_inbound_action. Still served unchanged during the alias window. Propose through /v1/agent-inbox/:id/handling with dedicated agent.inbox.propose and read scopes.

Instructions

Deprecated: use request_inbound_action. Still served unchanged during the alias window. Propose through /v1/agent-inbox/:id/handling with dedicated agent.inbox.propose and read scopes. Request confirmed:false and destructive_confirmed:false; humans approve before the paired facility queue or alert. Read capabilities/version first. Forward requires complete US destination and mail class; discard needs subsequent owner/staff confirmation. Sample open_and_scan is TEST training, not paid OCR. Reuse identical idempotency_key/body/original expected_version after uncertainty. Cannot self-approve, dispatch postage, charge, destroy or complete work. Required scopes: agent.inbox.read, agent.read, agent.inbox.propose. Agent-scoped bearer key required; member/facility keys cannot impersonate an agent. Rollout switches, current member approval, assignment, credential environment and SQL authorization are shared with REST. Never substitute another key or mail API after denial.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
item_idYesInbound item id (UUID) from a list or search result.
requestYesHandling proposal: action_type open_and_scan, forward_original (with destination; mail_class defaults to priority and first_class needs untracked_acknowledged) or discard_original, with the item's expected_version and confirmed. The member approves before facility staff act.
idempotency_keyYesCaller-generated replay key (8–200 visible ASCII characters) for this one intent. The same key with the same input replays the stored result; the same key with different input is refused.

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 annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), it discloses the human-approval gate, that the caller cannot self-approve/dispatch/charge/destroy, required scopes, key-impersonation rules, and idempotent replay semantics ('same key with the same input replays the stored result'). This is unusually rich behavioral context for a mutation tool.

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 routing is correctly front-loaded, but the body is a dense semicolon-chained wall that repeats scope info ('dedicated agent.inbox.propose and read scopes' then 'Required scopes: ...'). Information-dense but weakly scannable, with some 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?

With annotations, a full input schema, and an output schema already present, the description fills the remaining gaps: deprecation status, successor tool, auth/scopes, approval flow, version-read prerequisite, and idempotency/retry rules. An agent has everything needed to invoke it correctly despite the alias.

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 baseline is 3, but the description adds real meaning: it dictates confirmed:false / destructive_confirmed:false values, explains forward vs. discard requirements, clarifies the expected_version/idempotency_key retry contract, and flags that sample open_and_scan is TEST-only. It omits per-field detail on item_id, which the schema already covers.

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 gives a specific verb+resource ('Propose through /v1/agent-inbox/:id/handling') and explicitly names the sibling that supersedes it (request_inbound_action), so an agent can distinguish it from the rest of the inbox family. The core action is slightly obliquely expressed by leading with the deprecation notice rather than the function, which keeps it just under a 5.

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 states the decisive condition ('Deprecated: use request_inbound_action' during the alias window), prerequisites ('Read capabilities/version first', agent-scoped bearer key required), and post-denial behavior ('Never substitute another key or mail API after denial'). Alternative routing plus edge-case guidance is fully explicit.

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