Skip to main content
Glama
vobiz-ai

Vobiz MCP Server

Official
by vobiz-ai

Send an SMS, MMS or RCS message

send_message
DestructiveIdempotent

Sends SMS, MMS, or RCS messages via Vobiz; confirm the exact sender, recipients, and text, then preview cost and schedule or send with idempotency.

Instructions

Send a real SMS, MMS or RCS message through Vobiz (POST /api/v1/sms/messages). Each recipient becomes its own message and is billed. Required: from, to, idempotency_key, and confirm: true after the user approved the exact sender, recipients and text. For sms/mms, from is one of your Vobiz messaging numbers (see list_messaging_numbers); for rcs it is your RCS sender name. Use preview_message_cost first to show the price and segment count. Opted-out recipients are refused by Vobiz (opted_out). status scheduled = held until scheduled_at; sent = handed to the network; delivery receipts update it to delivered or failed (check get_message). Repeating an idempotency_key never sends twice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesRecipient numbers in E.164, e.g. ['+14155550123']. Capped by VOBIZ_MAX_RECIPIENTS_PER_SEND.
tagNoYour label, stored on every message; filter list_messages by it.
fromYesSender: an E.164 Vobiz messaging number (sms/mms), or your RCS sender name (rcs).
textNoMessage body. Required for sms and rcs. Long SMS are split into billed segments.
titleNoMMS subject line.
channelNosms (default), mms or rcs.
confirmYesMust be true, set only after the user explicitly approved this send.
media_urlsNoPublic https media URLs (MMS up to 10; RCS sends the first).
scheduled_atNoSend later at this RFC 3339 time, e.g. 2026-11-01T09:00:00Z.
dlt_entity_idNoIndia TRAI DLT Principal Entity ID.
dlt_header_idNoIndia TRAI DLT sender header ID.
dlt_template_idNoIndia TRAI DLT content template ID; text must match it.
failover_to_smsNoRCS only: send the text as SMS if RCS cannot be delivered.
idempotency_keyYesUnique key for this intended operation (e.g. a UUID). Repeating it replays the first result instead of acting again.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.1

TDQS

A4.8/5.0
Behavior5/5

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

Far exceeds what the annotations convey. It discloses real-world side effects (each recipient becomes its own message and is billed), the approval/auth gate, opt-out refusal behavior ('refused by Vobiz (opted_out)'), the status lifecycle (scheduled/sent/delivered/failed) and where to observe it, and how idempotency replay behaves. The destructiveHint and idempotentHint annotations are consistent with, and enriched by, this text.

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 endpoint and the four required fields, then behavioral notes — good ordering. It is dense and semicolon-heavy in a single paragraph, which slightly hurts scannability, but essentially every clause carries operational information.

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 14-parameter mutation tool with no output schema, the description covers requirements, costs, opt-out handling, scheduling semantics, delivery-receipt follow-up, and idempotency — everything an agent needs to invoke it correctly and safely.

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 the baseline is 3, but the description adds genuine meaning: `to` is per-recipient and billed individually, `from` varies by channel, `confirm` is an approval gate rather than a plain boolean, and `idempotency_key` replay semantics are spelled out. Remaining parameters (dlt_*, media_urls, scheduled_at, tag, title) are left to 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 real SMS, MMS or RCS message through Vobiz') and even the underlying endpoint POST /api/v1/sms/messages. It is clearly distinguishable from siblings like list_messages, get_message, and preview_message_cost, which are named for the roles they play relative to it.

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 names the prerequisite flow: 'Use preview_message_cost first to show the price and segment count' and requires 'confirm: true' only after the user approved the exact sender, recipients and text. It also gives the channel-conditioned rule for choosing `from` and the alternative path for checking delivery (get_message).

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