Skip to main content
Glama

agent_send

Send a message to an existing session and wait for its reply by default, routing to background turns or tmux keystrokes as needed.

Instructions

Send a message to an existing session and, unless wait:false, wait for it to finish answering. Wraps the right mechanism per harness: a resumed background turn for Claude background sessions, keystrokes for a tmux session.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
waitNoWait for the reply (default true for tmux sessions)
messageYes
sessionYesSession id or name
timeout_msNoMax wait (default 600000)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden, and it does disclose the single most important trait: this call blocks until the agent answers unless wait:false. It also reveals harness-dependent mechanics (resumed background turn vs. tmux keystrokes). It stops short of timeout/error behavior and side effects such as transcript writes.

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?

Two sentences, no filler. The blocking behavior is front-loaded in the first clause, and the harness abstraction is a single compact second sentence that earns its place.

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?

For a 4-parameter tool with no output schema, the description covers the blocking semantics and per-harness mechanism well. The remaining gap is the return payload — it implies the reply comes back but never says what is actually returned or what a timeout yields.

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 coverage is 75% (only the bare 'message' string lacks a description). The description reinforces the wait semantics beyond the schema's own note, but adds nothing about timeout_ms units/behavior or how 'session' resolves a name vs. id. Baseline 3 is appropriate since the schema does the heavy lifting.

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?

States a specific verb and resource ('Send a message to an existing session') and immediately adds the two behavioral facts that matter. 'Existing session' implicitly separates it from agent_spawn/agent_respawn, and the harness note explains what the single tool abstracts over.

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?

It explains the default call shape ('unless wait:false, wait for it to finish answering'), which is real usage guidance for the wait parameter. But it never says when to prefer this over agent_read, agent_interrupt, agent_wait_idle, or bridge_send, nor when not to use it.

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