Skip to main content
Glama

AANet

aanet_send_message

Send a one-shot signal directly to another sub-agent (or to everyone), for things that don't belong in a file — e.g. "chunk 3 done" or "aborting, don't wait on me". Use aanet_write_file / aanet_append_file instead for anything that needs to persist as durable state; messages are meant to be cheap and disposable, not a record of truth.

Cheaper than a file write on purpose. Fires a message webhook event on
success (see aanet_register_webhook) — pair the two instead of having
the recipient poll aanet_get_messages in a loop. Returns
{message_id, ts}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesMessage text.
topicNoOptional free-text label for filtering later with aanet_get_messages.
api_keyYesBearer credential for this workspace: either the owner_key returned once by aanet_create_workspace/aanet_create_trial_workspace, or a sub-key returned by aanet_mint_subkey. Sent under the hood as `Authorization: Bearer <api_key>`. Owner-only tools reject a sub-key with a 403.
to_subkey_idNosubkey_id of the specific recipient. Leave unset to broadcast to every sub-key in the workspace.
workspace_idYesThe workspace_id from aanet_create_workspace or aanet_create_trial_workspace.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / api_key / description
      Added value: +"Bearer credential for this workspace: either the owner_key returned once by aanet_create_workspace/aanet_create_trial_workspace, or a sub-key returned by aanet_mint_subkey. Sent under the hood as `Authorization: Bearer <api_key>`. Owner-only tools reject a sub-key with a 403."
    • addedInput schema / properties / body / description
      Added value: +"Message text."
    • addedInput schema / properties / body / maxLength
      Added value: +4000
    • addedInput schema / properties / to_subkey_id / description
      Added value: +"subkey_id of the specific recipient. Leave unset to broadcast to every sub-key in the workspace."
    • addedInput schema / properties / topic / description
      Added value: +"Optional free-text label for filtering later with aanet_get_messages."
    • addedInput schema / properties / workspace_id / description
      Added value: +"The workspace_id from aanet_create_workspace or aanet_create_trial_workspace."
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses one-shot semantics, webhook event on success, the return shape {message_id, ts}, and the non-durable/disposable nature of messages. It doesn't cover failure modes or delivery guarantees, but the core behavioral traits are clearly stated.

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 compact paragraphs with no filler. The primary action and recipient are front-loaded, and every sentence adds decision-relevant information about durability, webhooks, or return values.

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?

Despite having no output schema, the description states the return shape, explains the webhook integration path, clarifies recipient targeting, and gives usage examples. For a 5-parameter messaging tool with 100% schema coverage, this is complete enough for correct invocation.

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 baseline is 3. The description adds useful context for the body (examples like 'chunk 3 done') and for to_subkey_id (broadcast behavior), but those meanings are also present in the schema. No additional parameter clarification is needed.

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 description uses a specific verb and resource ('Send a one-shot signal directly to another sub-agent or to everyone'), gives concrete examples, and explicitly contrasts itself with aanet_write_file/aanet_append_file. An agent can immediately distinguish it from file-writing siblings.

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 explicitly tells when to use this tool vs alternatives: use write/append for durable state, pair with aanet_register_webhook instead of polling aanet_get_messages, and reserve messages for cheap disposable signals. The 'instead' language makes the routing decision explicit.

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.

Resources