Skip to main content
Glama

Send Agent Contact Message

send_agent_contact_message
Destructive

Posts messages, replies, or acks to an existing exact-audience Event channel, using a stable message ID for bounded retries and confirming posting by own-channel readback, not peer delivery.

Instructions

Post to an existing exact-audience Event channel. Only status=posted confirms own-channel readback, not peer delivery. Uncertain retries: bounded, same mid and payload; never bypass denial. Replies/acks target messages/replies, not acks. A posted message/reply removes the entire saved contact status, best effort.

Input Schema

NameRequiredDescriptionDefault
midYesStable UUID allocated before sending.
priNoP1 urgent, P2 normal, P3 low.P2
bodyYesExact nonblank text, <=4000 characters.
kindNoEnvelope kind.message
slugNoTopic; messages default to chat, answers inherit.
outboxYesOwned Event/<uuid> channel.
senderYesAgent name, <=128 characters.
artifactsNoFile references: path, optional version/owner. No new shares.
recipientsNoAgent names; omit for everyone.
in_reply_toNoPeer message/reply UUID within 30 days; required for reply/ack.
peer_useridYesExact peer UUID.
expected_peer_useridsNoFull other-user UUID audience; required for multiparty.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.18.7

TDQS

A4/5.0
Behavior5/5

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

The description adds substantial behavior beyond the annotations: delivery is not confirmed by status=posted, only own-channel readback is; retries must be bounded and reuse the same mid and payload; denial must never be bypassed; replies/acks target messages/replies, not acks; and a posted message/reply removes the entire saved contact status. These are important mutation, retry, and side-effect details for a destructive non-idempotent tool.

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 description is compact and front-loads the core action before behavioral caveats. Some sentences are dense and jargon-heavy, such as the status=posted readback sentence, but there is little 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 12-parameter mutation tool with an output schema, the description covers the important behavioral risks: partial delivery semantics, bounded retry rules, denial handling, reply/ack targeting, and the contact-status side effect. It is not fully complete because it does not clarify sibling selection against send_agent_message, but the key operational details are present.

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 100%, so the schema already carries most parameter meaning. The description still adds useful semantics for retry behavior via the same mid and payload, and clarifies that replies/acks target messages/replies rather than acks, which goes beyond the schema text.

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?

The description states a specific action and target: 'Post to an existing exact-audience Event channel.' That is more precise than a tautology, but it does not clearly distinguish this tool from the sibling send_agent_message or explain what makes the 'contact' variant different.

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 gives some situational constraints, such as posting only to an existing exact-audience Event channel and not bypassing denial on retries. However, it does not explicitly say when to use this instead of send_agent_message or other contact tools, so the agent must infer the selection rule.

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