Skip to main content
Glama

Latchbell

Have my AI agent text someone

send_text

Owners only (needs sign-in): Texts one number (a US one, or one with its country code like +44, through the paired phone’s carrier), or a list of up to 25 (the owner app’s Text for me rules: each list text ends with how to opt out, each number once a day from a list), from the business’s paired phone (text_phones; pair_phone first), as the business. Replies come back to the business: its AI agent answers them, and they show in inquiries and updates. Only people there is a real reason to text, never marketing or lists of strangers; never in the owner’s quiet hours (front_desk settings quietHours, by default only 12:00am to 12:05am the business’s time), at most 50 texts a day, never to a number that replied STOP or that the owner blocked. Plain words, 2 to 320 characters, no secrets or card numbers. sent lists who got it; skipped says why not (STOP, blocked, not a US number). In quiet hours, or past 50 today, it is refused with an error: try again later.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "to": "<to>",
      "text": "<text>"
    },
    "name": "send_text"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYesOne mobile number (US, or with its country code), or a list of up to 25 (numbers, or { phone, name } so {name} in the text becomes each name)
textYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say it is not read-only and reaches outside the system; the description adds the substantive behavior: carrier-based delivery through the paired phone, opt-out footers appended to list texts, one-per-number-per-day throttling from lists, a 50/day cap, quiet-hours refusal with an error, and inbound replies routed to the AI agent and into inquiries/updates. It also discloses the success/failure split ("sent" vs "skipped" with reasons).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every fact earns its place given the constraint load, and the permission requirement is front-loaded. However, it is delivered as one dense run-on sentence with nested parentheses, so the quiet-hours, throttle, and opt-out rules have to be parsed out of a comma chain rather than read as discrete lines.

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?

With no output schema, the description still explains what comes back (sent list, skipped reasons, error on refusal), which is exactly what an agent needs to handle the result. Combined with the constraint set and prerequisites, nothing material is missing for a two-parameter sending tool.

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 50%, and the description compensates with content rules the schema cannot express: plain words, 2-320 characters, no secrets or card numbers, and the requirement that recipients be real, consented contacts. The `to` shape (single number, country-code numbers, list up to 25) is largely duplicated from the schema rather than extended.

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 concrete verb and resource: it texts one number or a list of up to 25 from the business's paired phone "as the business." It also distinguishes itself from the adjacent tools by naming text_phones as the phone inventory and requiring pair_phone first, so an agent can place it without opening another schema.

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 explicit eligibility ("Owners only (needs sign-in)"), an explicit negative case ("Only people there is a real reason to text, never marketing or lists of strangers"), and named prerequisites (pair_phone first). It also states when the call will be refused: quiet hours, past 50 texts a day, STOP or blocked numbers.

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