Skip to main content
Glama

Sats4AI - Bitcoin-Powered AI Tools

send_sms

Destructive

Reach a human via SMS when your task requires real-world coordination. Send to any phone number worldwide — delivery timing varies by destination. No phone plan, no SIM card, no telecom account needed. Pay with Bitcoin Lightning — no API key, no KYC, no subscription. Requires create_payment with toolName='send_sms' and phoneNumber+message at payment time. The phoneNumber and message must match those used in create_payment. Each SMS ends with a short signature line naming the service and a safety/stop link, within the paid segment count. No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. We also keep a de-identified record of screened communications to measure and improve fraud detection. Identifiers in it — contact addresses, numbers and names that follow a greeting — are replaced with one-way tokens, and it holds no destination number and no account, because the service has none. De-identification is not anonymization: text a sender wrote can still identify someone. Do not submit personal information the service does not need. Providers keep records under their own policies.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageYesMessage text (max 1544 chars — a short signature line is appended; billed per SMS segment)
paymentIdYesValid payment ID (must be paid)
phoneNumberYesPhone number in E.164 format (e.g., +14155550100). NOTE: non-+1 (international) numbers are delivered from an alphanumeric sender ID, so the recipient CANNOT reply — one-way only; for some countries (e.g. FR/CZ/CN) it is the only delivery path. No error is returned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / message / description
      Previous value: -"Message text (max 1544 chars — unverified-sender notice prepended; billed per SMS segment)"New value: +"Message text (max 1544 chars — a short signature line is appended; billed per SMS segment)"
  2. Changed1 schema field changed
    • changedInput schema / properties / message / description
      Previous value: -"Message text (max 1544 chars — short disclaimer auto-appended; billed per SMS segment)"New value: +"Message text (max 1544 chars — unverified-sender notice prepended; billed per SMS segment)"
  3. Changed1 schema field changed
    • changedInput schema / properties / message / description
      Previous value: -"Message text (max 126 chars — short disclaimer auto-appended)"New value: +"Message text (max 1544 chars — short disclaimer auto-appended; billed per SMS segment)"
  4. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Going well beyond the openWorldHint/destructiveHint annotations, the description discloses irreversible and conditional behaviors: international numbers are delivered one-way via an alphanumeric sender ID with 'no error returned,' messages are screened after payment, 'held messages and calls are not sent,' refunds are not immediate, and answering a call does not establish consent. It also surfaces data-retention windows and de-identification caveats. Nothing contradicts the annotations.

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?

The core purpose, payment requirement, and matching constraint are efficiently front-loaded in the first few sentences. However, the back half becomes a near-privacy-policy (appeal costs, 24-hour context records, 30-day cleanup, de-identification limits) that is far more verbose than needed for an agent to select and invoke the tool correctly; it could be condensed significantly without losing invocation-relevant guidance.

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 destructive, world-facing tool with no output schema, the description covers the payment prerequisite, delivery caveats, screening/hold behavior, refund rules, consent constraints, and data handling. The main gap is the lack of any description of the return value or how to confirm the send outcome (e.g., via check_payment_status), though no output schema exists to fill that void.

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 parameter basics are already documented, giving a baseline of 3. The description adds critical cross-tool semantics not in the schema: phoneNumber and message 'must match those used in create_payment,' and the billed segment count includes an appended signature line plus safety/stop link. This is meaningful value beyond the structured fields.

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?

The opening sentence, 'Reach a human via SMS when your task requires real-world coordination,' names a specific verb, channel, and purpose, and the claim of sending to 'any phone number worldwide' differentiates it from siblings like send_email, send_fax, and place_call. The tool's resource (SMS to a phone) is unambiguous, with no confusion about what it is for.

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?

'When your task requires real-world coordination' supplies a clear trigger condition, and the explicit prerequisite — 'Requires create_payment with toolName='send_sms' and phoneNumber+message at payment time' — gives a concrete preconditions. However, no sibling tool is named and there is no explicit 'use send_email instead when...' exclusion, so alternative routing is left to inference.

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.