Skip to main content
Glama

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. 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

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

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / idempotency_key / description
      Added value: +"Caller-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."
    • addedInput schema / properties / item_id / description
      Added value: +"Inbound item id (UUID) from a list or search result."
    • addedInput schema / properties / request / description
      Added value: +"Handling 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."
  2. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, and the description adds substantial context beyond them: required scopes (agent.inbox.read, agent.read, agent.inbox.propose), agent-scoped bearer key requirement, human-approval gate before facility action, non-destructive self-limits, and idempotency replay/refusal semantics. This is rich behavioral disclosure that an agent could not infer from structured fields.

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 deprecation notice is front-loaded and nearly every clause carries actionable information (scopes, approval, idempotency, non-substitution). It is dense and long, bordering on overstuffed, but avoids filler and repetition.

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?

For a mutation-style proposal tool with an output schema and full annotations, the description covers the remaining gaps an agent needs: auth model, scopes, approval flow, idempotency contract, and failure/recovery behavior. Nothing required to call it correctly appears to be missing.

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: forward_original requires a complete US destination and mail class, discard_original needs subsequent owner/staff confirmation, and expected_version/idempotency_key must be reused identically after uncertainty. This goes beyond the schema's own property descriptions.

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 verb+resource are clear ('Propose... handling' via /v1/agent-inbox/:id/handling) and the successor tool request_inbound_action is named, which lets an agent distinguish it from siblings. However the actual purpose statement is buried under deprecation and operational text rather than front-loaded as a single clean sentence.

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?

Explicit when-to-use ('Deprecated: use request_inbound_action... still served during the alias window'), prerequisites ('Read capabilities/version first'), and recovery guidance ('Reuse identical idempotency_key/body/original expected_version after uncertainty'). It also states what the tool must NOT be used for (self-approve, dispatch postage, charge, destroy) and warns against substituting another key after denial.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.