Skip to main content
Glama

Turbo Notify: WhatsApp for AI agents

Edit the caption of an image, video or document

edit_media_caption
Destructive

Replace the caption of an image, video or document this number already sent.

The recipient sees the new caption marked as edited. The file itself stays exactly as it was and the message keeps its id: only the caption changes. There is no way to replace the file; to send a different one, send a new message with send_media.

Only an image, video or document can be edited this way. Audio and stickers have no caption, and a location, contact card or link button cannot be edited at all: delete_message is the only change for them. For the text of a text message use edit_text_message. Using this tool on any other message answers invalid_request: message_not_editable.

Only a message sent THROUGH Turbo Notify can be edited. One typed on the phone itself belongs to the same number but cannot be edited here, and neither can a message received from someone else.

WhatsApp only accepts a change to a caption within 15 minutes of sending it. A later edit is refused up front with invalid_request: edit_window_expired; send a new message instead.

The edit is accepted at once and the outcome arrives as an event: message.edited when it worked, message.edit.failed when WhatsApp or the platform could not apply it. Read them with list_events.

The number first appears online and its unread messages in that conversation are marked as read, then the edit happens. Opening the conversation this way is automatic and uses no quota of its own.

Input Schema

NameRequiredDescriptionDefault
captionYesThe new caption, up to 1024 characters. It replaces the whole caption. Writing `@<number>` mentions that person, as in a caption on send.
message_idYesMessage id (`msg_…`), as returned by a send or by `list_messages`.
number_aliasNoWhich of the organization's WhatsApp numbers this acts on: `main`, the alias of an extra number, or the number's `id` (`num_…`), which stays the same when the alias is renamed. Call `list_numbers` to see them. Defaults to the main number.main

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: the recipient sees the caption as 'edited', the file and message id are untouched, there is no way to swap the file, the call is asynchronous with results arriving as message.edited / message.edit.failed events readable via list_events, and the call has a side effect of bringing the number online and marking the conversation's unread messages as read. That last side effect is exactly the kind of non-obvious behavior destructiveHint alone 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?

Front-loaded with the core action and its alternatives, then layered constraints and finally delivery mechanics. The paragraphs each do work, though the closing note about the number going online and unread messages being marked read could be tightened against the quota remark.

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 mutation tool with real failure modes, the description covers eligibility, error codes (message_not_editable, edit_window_expired), timing limits and how to observe the outcome. An output schema exists so return values need no explanation, and nothing an agent needs to invoke this correctly is missing.

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 coverage is 100%, so message_id, caption and number_alias are already fully documented, including the @-mention syntax and the replacement semantics. The description adds no additional parameter-level meaning beyond what the schema carries, so the baseline of 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?

States a precise verb and resource — 'Replace the caption of an image, video or document' — scoped to a message this number already sent, and immediately distinguishes it from send_media, edit_text_message and delete_message by name.

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?

Gives explicit when-not conditions (audio, stickers, locations, contact cards, link buttons), names the correct alternative for each case (delete_message, edit_text_message, send_media), and lists the two hard preconditions: message must have been sent through Turbo Notify and the edit must fall inside WhatsApp's 15-minute window.

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.