Skip to main content
Glama

Read inbox

bridge_inbox

Reads an agent's inbox messages oldest first in host-safe pages, hiding acknowledged items by default; use afterId or acknowledge handled messages to continue.

Instructions

List messages addressed to an agent, oldest first, in pages that fit the host's output limit. Acknowledged messages are hidden by default. When hasMore is true, acknowledge handled messages and read again, or pass afterId.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
agentYesAgent whose inbox to read.
limitNoMaximum messages to return. Defaults to 25 (30 for threads).
afterIdNoOnly messages with a larger id (paging cursor).
maxCharsNoCharacter budget for the whole result. Defaults to 48000 so MCP hosts never truncate it.
threadIdNoOnly messages on this thread.
fromAgentNoOnly messages from this sender.
maxBodyCharsNoPreview mode: shorten every body to this many characters.
includeAcknowledgedNoInclude messages this agent has already acknowledged.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.4.0
    • addedInput schema / properties / afterId
      Added value: +{
      +  "description": "Only messages with a larger id (paging cursor).",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / fromAgent
      Added value: +{
      +  "description": "Only messages from this sender.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Maximum messages to return. Defaults to 25 (30 for threads).",
      +  "maximum": 200,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / maxBodyChars
      Added value: +{
      +  "description": "Preview mode: shorten every body to this many characters.",
      +  "maximum": 400000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / maxChars
      Added value: +{
      +  "description": "Character budget for the whole result. Defaults to 48000 so MCP hosts never truncate it.",
      +  "maximum": 400000,
      +  "minimum": 1000,
      +  "type": "integer"
      +}
    • addedInput schema / properties / threadId
      Added value: +{
      +  "description": "Only messages on this thread.",
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the full behavioral burden. It usefully discloses ordering, default hiding of acknowledged messages, and pagination behavior, but omits read-only/side-effect status, auth requirements, and full return shape.

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 tight sentences front-load the core list operation and pagination rule. Every sentence contributes directly, with no filler.

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

Completeness3/5

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

For an eight-parameter read tool with no annotations and no output schema, the description covers pagination and acknowledged-message defaults but does not describe return fields beyond hasMore or address safety/permissions. Gaps remain for an agent needing full context.

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 eight parameters in detail. The description adds only minor usage context for afterId and acknowledged-message defaults, not enough to exceed the baseline.

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?

States a specific verb ('List') and resource ('messages addressed to an agent'), plus ordering ('oldest first') and pagination. It clearly identifies an inbox read, but does not explicitly differentiate itself from siblings such as bridge_outbox or bridge_thread.

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?

Gives pagination guidance for when hasMore is true, including acknowledging handled messages or passing afterId. However, it does not explain when to choose bridge_inbox over sibling tools like bridge_thread, bridge_wait, or bridge_outbox, nor does it state prerequisites.

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