Skip to main content
Glama

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

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.
idempotency_keyNoOptional retry-safety token (any unique string, e.g. a UUID). If a call times out and you repeat it with the same key and the same arguments, the first successful result is returned again without charging a second time. Keys are remembered for 24 hours, per sub-key. Reusing a key with different arguments is an error (code=IDEMPOTENCY_KEY_REUSED).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 255,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional retry-safety token (any unique string, e.g. a UUID). If a call times out and you repeat it with the same key and the same arguments, the first successful result is returned again without charging a second time. Keys are remembered for 24 hours, per sub-key. Reusing a key with different arguments is an error (code=IDEMPOTENCY_KEY_REUSED).",
      +  "title": "Idempotency Key"
      +}
  2. 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."
  3. Added

TDQS

A4.3/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 burden. It discloses that messages are cheap/disposable, not durable, fires a webhook event on success, and returns {message_id, ts}. It does not cover auth/permission behavior or delivery guarantees, but the core traits are disclosed.

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?

Well-structured with the purpose first, then alternatives, then cost/webhook/return. Slightly verbose with the multi-line examples and parenthetical webhook reference, but every sentence carries information.

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?

Complete enough for a fire-and-forget messaging tool with full schema coverage: purpose, alternatives, cost, webhook coupling, and return shape are all present. Missing only error/auth edge cases, which are less critical given the schema.

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 100% and every parameter already has a description, so the schema does the heavy lifting. The description adds the broadcast-vs-targeted semantics ('or to everyone') but nothing on idempotency or topic beyond the schema. Baseline 3 is appropriate.

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+resource (send a one-shot signal to another sub-agent or everyone) and explicitly contrasts with aanet_write_file / aanet_append_file. An agent can tell exactly what this does versus the file-write 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?

Gives concrete when-to-use examples ('chunk 3 done', 'aborting, don't wait on me') and names the alternative tool for persistence, plus the webhook pairing instead of polling aanet_get_messages. Explicit routing guidance.

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