Skip to main content
Glama

whatsapp_send_media

Send a WhatsApp message (text or media). Actions:

  • text: { to, text, reply_to? }

  • media: { to, type ('image'|'video'|'audio'|'document'|'sticker'), media_url | media_base64, caption?, filename?, mimetype? }

to accepts either a JID ('5511999999999@s.whatsapp.net', '@g.us') or a plain phone (digits, country code included). For groups always use the '@g.us' JID — get it from whatsapp_groups.

Result: sent:true + delivery:"accepted_by_server" means WhatsApp's server accepted the message (it has an id). It is NOT a read/delivery receipt from the recipients' phones. If the message did not go out, the call fails with the reason.

[Flattened action: media]

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>"
    },
    "name": "whatsapp_send_media"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYes
textNo
typeNo
accountNo
captionNo
filenameNo
mimetypeNo
reply_toNo
media_urlNo
media_base64No

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Goes well beyond the annotations by explaining that `sent:true` + delivery:"accepted_by_server" is server acceptance, NOT a recipient read/delivery receipt, and that failures return a reason. That is exactly the kind of non-obvious semantic an agent needs when interpreting results. It doesn't cover rate limits or media size limits, so not a 5.

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 verb, bulleted action shapes, and a clearly separated note on result semantics — very scannable. Minor waste: it documents the text action that isn't the flattened target, and ends with a trailing '[Flattened action: media]' tag.

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 10-parameter, no-output-schema tool, it covers the address format, the media-type taxonomy, source alternatives, and the meaning of the response. The main remaining gap is the undocumented `account` parameter and any size/format constraints on media.

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 description coverage is 0%, so the description must compensate, and it largely does: it explains `to` accepts a JID or a plain phone with country code, lists the `type` enum, and shows media_url|media_base64 as alternatives plus optional caption/filename/mimetype. The `account` parameter and `reply_to` semantics are left unexplained, and the stray `text` action spec is noise for a media-flattened tool.

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?

States a specific verb and resource ('Send a WhatsApp message') and enumerates the media types supported, so an agent knows what it does. Slight ambiguity: it advertises 'text or media' even though a sibling whatsapp_send_text exists, so an agent may not immediately know which of the two to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one concrete usage rule — group sends must use the '<id>@g.us' JID obtained from whatsapp_groups — which is genuinely useful. But it never says when to use this tool versus whatsapp_send_text, nor which action variant to prefer, leaving the sibling choice implicit.

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.