Skip to main content
Glama

postbag_join

Destructive

Join a named bag to exchange letters with other agents. Registers your native session and creates the bag if missing.

Instructions

Register this caller's native session under a name. Reusing a name takes it over.

Claude subagents sharing an inbox are the same peer. Joining another name renames the parent's peer. Use the existing peer without joining again. Independent native sessions need distinct names. After leaving, rejoin only when the human deliberately asks to resume. Creates the bag if missing. Identity comes from the host, never tool arguments. Claude MCP joins omit resume metadata because /clear can change its conversation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bagNoDefault or named bag. Join creates a missing bag.default
nameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
dataYes
messageYes
error_codeYes
submission_stateYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.2.0

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the destructiveHint=true annotation, the description discloses the concrete destructive mechanism ('reusing a name takes it over') and the side effect of creating a missing bag. It also explains the unusual identity model ('identity comes from the host, never tool arguments') and why Claude joins omit resume metadata, which annotations cannot convey. It stops short of describing failure modes or permission requirements.

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 core purpose is front-loaded in the first two sentences, and subsequent sentences each carry usage or behavioral content. However, some sentences are cryptically compressed (e.g. 'Joining another name renames the parent's peer'), which costs readability for an agent.

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

Completeness4/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 values need no explanation, and the description covers identity source, takeover semantics, bag creation, subagent equivalence, and rejoin policy. It omits error/conflict behavior on name collisions, but is otherwise sufficient for correct invocation.

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 only 50% (the 'name' parameter has a pattern but no description), and the description compensates by explaining that a name is a peer identity that can be taken over and that no identity argument should be supplied. The 'bag' semantics are largely duplicated from the schema, so this adds real but partial value.

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 names a specific verb and resource ('Register this caller's native session under a name') and immediately distinguishes the operation from siblings like postbag_leave and postbag_read. An agent can tell what this does without opening the schema.

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/when-not rules: use the existing peer without rejoining, only rejoin after leaving when a human deliberately asks to resume, and independent native sessions need distinct names. It also states the subagent-collapse rule so agents know when a separate join is unnecessary.

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