Skip to main content
Glama

Sms campaigns · send

sms_campaigns_send
Destructive

Send a draft SMS campaign. body.scheduled_at is required: a time schedules it, null sends now (the draft's saved time, sent back, keeps it). Same checks as the dashboard; a blocked send returns 409 with reasons in error.details[] (field = what to fix, code = why). Consent and quiet hours apply per recipient. A large audience still being counted returns 409 preflight_pending until sms_campaigns_validate has its report.

Scope: campaigns:send.

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": {
      "id": "<id>",
      "body": "<body>"
    },
    "name": "sms_campaigns_send"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesSMS campaign id (`cmp_…`).
bodyYesRequired `{ scheduled_at }`: an ISO 8601 time with `Z` or an offset (e.g. `-07:00`) to schedule, `null` to send now. A misnamed time key (`scheduledAt`, `send_at`, …) is a 422 and nothing is sent; other keys are ignored.

Output Schema

NameRequiredDescriptionDefault
dataNo
hintNo
statusNo
warningNo
request_idNo
retry_after_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / body / properties / scheduled_at / description
      Previous value: -"Required. When to send: an ISO 8601 time with `Z` or an offset schedules it; `null` sends it now. Ask the user; to keep the draft's saved time, pass that time."New value: +"Required. When to send: an ISO 8601 time with `Z` or an offset schedules it; `null` sends it now; the draft's saved time, sent back, keeps it."
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations (destructive, non-idempotent, open-world), the description discloses error behavior: a blocked send returns 409 with reasons in error.details[] keyed by field/code, plus a distinct preflight_pending state. It also adds the recipient-level filtering effects of consent and quiet hours, which the annotations cannot convey.

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 action and the required parameter come first, followed by failure modes and scope. Parenthetical asides about error keys and echoed saved times are dense but each carries information; a small amount of nesting could be flattened.

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?

It covers the action, the mandatory scheduling parameter, the preflight dependency, the 409/422 failure shapes, recipient-level consent constraints, and the required `campaigns:send` scope. With an output schema present, no return-value explanation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested body.scheduled_at description already documents the time/null/echo semantics. The description restates the same three cases without adding format rules or edge cases beyond the schema, so the baseline 3 applies.

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?

"Send a draft SMS campaign" is a specific verb+resource, and the note that a large audience returns 409 until sms_campaigns_validate has its report distinguishes it from the sibling validate/reschedule tools without opening either schema.

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?

It explains the preconditions for a successful send (draft state, preflight report from sms_campaigns_validate, consent/quiet hours) and names the blocking condition explicitly. It stops short of naming alternatives for changing a time or previewing, but the context is clear.

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