Skip to main content
Glama

Get a message's media

get_media

Open and download media attached to a WhatsApp message by chat ID and message ID, returning photos, files, text, or a temporary download URL.

Instructions

Open the photo, video, voice note, audio recording, document or sticker a message carries (a message from read_inbox with media). Photos and stickers come back as images you can see, and text files (txt, csv, json, …) as text. Voice notes, audio, videos, PDFs and other files up to 10 MB come back as the file itself, which your client saves to disk; videos also come with their preview frame. Every answer has a download_url (any size, valid for an hour) and a ready save_with curl command for saving the file yourself. Needs the connection online; an old file may take a moment while the sender's phone uploads it again.

Input Schema

NameRequiredDescriptionDefault
chat_idYes
message_idYes
connection_idNoWhich of your accounts: a connection id from list_connections, or the account's number. Optional when only one account fits. Left out, it's the account the message is on.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full disclosure burden and does so thoroughly: it explains per-type return behavior (images vs text vs raw file), the 10 MB inline limit, video preview frames, a download_url valid for one hour, a ready-made save_with command, and the online/upload-delay constraint.

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 size is justified for a tool with rich return behavior, and the core action is front-loaded in the first sentence. The save_with/curl detail is slightly shopworn but still earns its place by telling the agent how to persist large files.

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?

There is no output schema, so the description must explain return values — and it does, covering every media type, size ceiling, download_url lifetime, and the latency caveat. An agent has everything needed to call and interpret results.

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 only 33% (connection_id is documented, chat_id and message_id are bare strings). The description only loosely implies provenance via 'a message from read_inbox with `media`' and never clarifies what chat_id and message_id should be or where to obtain them, leaving real gaps.

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?

The description opens with a specific verb and resource ('Open the photo, video, voice note, audio recording, document or sticker a message carries') and explicitly ties it to media surfaced by read_inbox. An agent can immediately tell this is the media-fetch tool, distinct from siblings like read_inbox or search.

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 states the trigger condition clearly: use it for 'a message from read_inbox with `media`'. It also notes the connection must be online and that old files may be delayed. It stops short of naming an explicit alternative or when-not-to-use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.