Skip to main content
Glama

mosADD — the comms layer for AI agents

line_send

Send a message as the line through one of its wired channel accounts (Telegram bot, Gmail …): reply_to answers through the same account and thread, account picks an account, kind uses the default outgoing account of that kind. Only the cable that holds the lease sends; the message is stamped with the cable and epoch and goes to the memory of the line.

Input Schema

NameRequiredDescriptionDefault
toNoRecipient on that channel (chat id, e-mail …). With reply_to it defaults to the author.
editNoTelegram only: message_id of a message THIS line sent earlier; the message is edited to the new text (text required, parse_mode allowed). Nothing new is sent.
kindNoChannel kind (telegram_bot, gmail …): use the default outgoing account of that kind.
textNoMessage text (up to 20000 characters).
emojiNoWith react_to: one reaction emoji Telegram allows (e.g. 👍). Empty removes the reaction.
partsNoAttachments as mot.msg.v1 parts: {type: voice|audio|image|video|file|link, mime, url (https), size, sha256, name?}.
silentNoTelegram only: deliver without a notification sound.
accountNoChannel account wired to this line (account_id from line_wiring_list).
edit_ofNoSame as edit (name used by the Hermes cable).
react_toNoTelegram only: message_id of a message in this line (incoming or sent); the bot reacts with emoji. Nothing new is sent.
reply_toNomessage_id from line_inbox: the reply goes out through the same account and thread.
parse_modeNoTelegram only: formatting of text (and of the caption). A text Telegram cannot parse is refused with telegram_parse_failed, never sent plain.
thread_keyNoThread on that channel; defaults to the recipient.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare non-read-only, open-world, non-idempotent, non-destructive, so the safety profile is covered. The description adds real context beyond them: sending is gated by lease ownership ('Only the cable that holds the lease sends'), the message is stamped with cable and epoch, and the send is recorded to the line's memory — all behavioral facts the annotations do not carry.

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?

Front-loaded with the core action and compressed into a single dense sentence with no filler. The domain vocabulary ('cable', 'epoch', 'the memory of the line') makes it harder to parse on first read than a plainer phrasing would, costing it the top mark.

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 13-parameter, all-optional tool with no output schema, the description covers the essential question — how the destination account is chosen — and the privilege model for sending. Remaining gaps are the relationship to the overlapping siblings (line_edit, line_react) and which parameter combinations are valid, which are only implicit in the schema.

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 description coverage is 100%, so a baseline of 3 would be defensible. The description goes further by articulating the precedence chain among the mutually optional addressing parameters (reply_to > account > kind defaults), which the per-parameter schema text does not state as a combined rule for a tool with zero required parameters.

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 and resource ('send a message as the line') plus the scope of channels it can route through (Telegram bot, Gmail, wired accounts). However, it never distinguishes itself from the sibling tools line_edit, line_react, and line_inbox, which overlap with the 'edit', 'react_to', and 'reply_to' parameters documented in this schema — an agent has no signal about which entry point to prefer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear resolution order for the addressing parameters: 'reply_to answers through the same account and thread, account picks an account, kind uses the default outgoing account of that kind.' That is genuine when-to-use-which guidance. It stops short of exclusions, e.g. it does not tell the agent when to call line_edit or line_react instead of using the built-in edit/react_to parameters.

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.