Skip to main content
Glama

send_whatsapp_message

Comprehensive WhatsApp message sending with action-based operations. Supports all message types including text, media, location, contact, poll, event messages, with scheduling, live delivery, expiration, agent messaging, and template support. All message sending operations unified in one tool.

Scheduling: pass exactly one of deliverAt, delay or delayTo on the text, media, template, agent or scheduled actions. Leaving all three out sends the message right away. On WhatsApp Cloud API (WABA) numbers a plain text, media or agent message still needs the customer to have written within the last 24 hours at delivery time, so a reminder that lands later than that must use the template action.

Input Schema

NameRequiredDescriptionDefault
chatYesWhatsApp chat ID (e.g., 1234567890@c.us for phone numbers, 123456789000000000@g.us for groups, 123456789000000@newsletter for WhatsApp channels)
pollNoPoll content (required for poll action)
agentNoAgent ID (24 character hex string)
delayNoDeliver the message after this many seconds (max 31536000, a year)
eventNoEvent content (required for event action)
mediaNoMedia content (required for media action)
orderNoEnsure strict message delivery order
actionYesAction to perform for WhatsApp message sending
deviceNoTarget WhatsApp device ID (24 character hex string) used for message delivery. Only required if you have multiple WhatsApp numbers connected. Use MCP tool "get_whatsapp_devices" to retrieve a list of available devices.
actionsNoActions to perform after message delivery (for agent action)
agentIdNoAgent ID for agent messaging (required for agent action)
delayToNoDeliver the message after a duration: 30m, 2h, 3d, 2w, 1M (max a year)
enqueueNoMessage delivery mode (for live action)never
messageNoText message content (required for text, scheduled, live, expiring, agent, template actions)
contactsNoArray of contacts to send, max 10 (required for contact action)
locationNoLocation content (required for location action)
templateNoTemplate configuration (required for template action)
deliverAtNoAbsolute ISO 8601 instant to deliver the message at, with a time zone (e.g. 2026-09-20T09:00:00+02:00). Must be in the future and less than a year away
referenceNoCustom reference ID for message tracking
expirationNoTime-to-live duration e.g. "1h", "30m", "2d" (for expiring action)
previewUrlNoEnable URL preview in messages (for text, template actions)
sendReadAckNoSend chat read acknowledgment after the message is delivered

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden and does disclose important constraints like scheduling exclusivity and the WABA 24-hour delivery window. However, it does not explain many action-specific behaviors, rate limits, authentication needs, or return behavior, leaving significant gaps for such a large tool.

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 description is front-loaded with purpose and scheduling rules, and the scheduling guidance is dense and useful. It has some mild redundancy in the opening paragraph, such as repeating that all message sending operations are unified, but it remains appropriately sized for a complex 22-parameter tool.

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?

Given the tool's complexity, 22 parameters, and no output schema, the description provides key operational context around scheduling and WABA delivery constraints. The schema itself thoroughly documents parameters, but the description does not explain return values or all action-specific behavior, so it is strong but not fully complete.

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 schema already documents individual parameters. The description adds cross-parameter meaning by stating exactly one of deliverAt, delay, or delayTo must be used and that omission sends immediately, which is useful semantic context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it sends WhatsApp messages and enumerates supported message types and actions. It does not explicitly differentiate itself from sibling sending tools such as send_whatsapp_flow or campaign/channel message tools, so it falls short of a 5 despite being otherwise clear.

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?

The description gives strong when-to-use guidance for scheduling: pass exactly one of deliverAt, delay, or delayTo, and leaving all out sends immediately. It also explains the WABA 24-hour window and directs delayed reminders to the template action. It does not, however, explain when to choose this tool over sibling sending tools.

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