Skip to main content
Glama

send_manual_message

Send a manual message to a consumer through the same outbound channel without invoking an LLM or using quota, ideal for human takeover of a session.

Instructions

Envia uma mensagem manual ao consumer pelo MESMO canal outbound do agente (Twilio/Meta/webhook), sem invocar LLM e sem consumir quota. Útil quando atendimento humano assumiu uma sessão (use combinado com set_session_control mode=manual_handoff). Mensagem é gravada no conversation_history com metadata.author=human (F4) — assim o agente NÃO aprende a imitar esse padrão se reassumir. ENVIO ÚNICO: a mesma mensagem para a mesma sessão dentro de 60s é deduplicada (reenvio da tool call NÃO entrega 2x; a resposta vem com idempotent_replay=true). Para controlar a janela, passe idempotency_key — a mesma chave é aceita pelo REST POST /api/v1/sessions/:id/manual-message (header Idempotency-Key).

Input Schema

NameRequiredDescriptionDefault
messageYesTexto da mensagem manual a enviar
session_idYessession_id text (ou UUID id) da sessão
idempotency_keyNoChave de idempotência opcional (1–200 chars). Sem ela, a chave é derivada do texto da mensagem com janela de 60s.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.2.2
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "description": "Chave de idempotência opcional (1–200 chars). Sem ela, a chave é derivada do texto da mensagem com janela de 60s.",
      +  "maxLength": 200,
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations mark it as a non-read-only, non-destructive write to an open-world channel, but the description adds substantial context the annotations cannot: no LLM call, no quota burn, storage of metadata.author=human so the agent won't imitate the pattern, and a 60s dedup window surfaced as idempotent_replay in the response.

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 critical facts (verb, channel, no-LLM/no-quota) are front-loaded, and the idempotency behavior follows logically. It is somewhat dense and revisits the 60s window twice (once as behavior, once as parameter note), so a small amount of redundancy keeps it from a 5.

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?

For a mutation with no output schema, the description covers everything an agent needs: side effects (conversation_history + author=human), resource cost (none), replay semantics, and how to control the dedup window. Nothing material is left unstated.

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 all three parameters are already documented; baseline is 3. The description adds the cross-surface detail that idempotency_key is accepted by the REST POST /api/v1/sessions/:id/message endpoint via Idempotency-Key header, giving the parameter meaning beyond the schema.

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 manual message) plus its channel (the agent's same outbound Twilio/Meta/webhook path) and its two defining constraints: no LLM invocation and no quota consumption. This cleanly separates it from LLM-driven siblings like chat_with_agent and from control-plane tools like set_session_control.

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 says when to use it ('quando atendimento humano assumiu uma sessão') and names the complementary tool and mode ('use combinado com set_session_control mode=manual_handoff'). Both the trigger condition and the workflow pairing are given, leaving nothing to inference.

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

Deploy Server

Other Tools