Skip to main content
Glama

sage_message_reply

Reply to a claimed message_id after validating the claimant session, with idempotent local or federated delivery and legacy provider fallback only when compatible.

Instructions

Reply to one receiver-local, provider-addressed legacy, or inbound federated message_id explicitly accepted with sage_message_claim. The claimant session is checked before completing work. SAGE selects the legacy provider completion path only after the current node returns its exact typed compatibility signal; a canonical typed denial never falls back. Local and federated replies are idempotent: an identical retry returns the original result/event, while a different second reply conflicts. A failed reply is not authorization to create a substitute request with sage_message_send; refresh inbox and passive history, hand off only a currently visible other-session claim, and otherwise stop and report the failure unless a new send is independently authorized by the current user/task.

Input Schema

NameRequiredDescriptionDefault
resultYesUntrusted result data returned to the sender
message_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv11.17.4

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the claimant-session check before completion, the legacy provider completion path conditioned on an exact typed compatibility signal with no fallback on canonical typed denial, and precise idempotency semantics (identical retry returns the original result/event; a different second reply conflicts). Failure handling and the prohibition on substituting a send are also spelled out.

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?

Purpose is front-loaded in the first sentence, and every subsequent clause encodes a rule (path selection, idempotency, failure handling) rather than filler. It is dense and jargon-laden across four sentences, which costs readability, but there is little genuinely wasted text.

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 2-parameter mutation with no annotations and no output schema, the description covers the critical gaps: preconditions, idempotency, error/conflict behavior, and the correct alternative on failure. It omits permission/authorization specifics and any hint of the reply response shape, but the safety-relevant behavior an agent needs to call it correctly is present.

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 50%: 'result' is described in the schema as 'Untrusted result data returned to the sender,' while 'message_id' has none. The description adds real meaning to message_id by requiring it to have been accepted via sage_message_claim, but contributes nothing about the 'result' payload beyond the schema. Baseline 3 is appropriate at this coverage level.

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 (reply) and resource (message_id), and enumerates the three addressable message kinds (receiver-local, provider-addressed legacy, inbound federated). It also names sibling tools (sage_message_claim as prerequisite, sage_message_send as the non-substitute), making it distinguishable. The jargon-heavy phrasing slightly blurs the core operation, keeping it just short of 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?

Explicitly states the precondition (message_id must have been 'explicitly accepted with sage_message_claim') and the when-not/alternative path: 'A failed reply is not authorization to create a substitute request with sage_message_send.' It further prescribes the fallback sequence (refresh inbox and passive history, hand off only a visible other-session claim, otherwise stop). Nothing about tool selection is left to inference.

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