Skip to main content
Glama

Get Media

wa_get_media
Read-only

Fetch the attachment (image/video/audio/document/sticker) a received WhatsApp message carried, as base64. Use the message_id from wa_list_messages. 'refused' means no retrievable media for that id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
account_idYesthe account that received the message, from wa_list_accounts
message_idYesthe WhatsApp message id whose attachment to fetch, from wa_list_messages

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
mimeNo
statusYesok (media returned) or refused
refusalNo
media_base64Nobase64 of the attachment, present when status is ok

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / refusal / properties / account_status
      Added value: +{
      +  "description": "when the number is not working: its status — starting, not_running, whatsapp_down, suspended, pairing, unlinked or locked",
      +  "type": "string"
      +}
    • addedOutput schema / properties / refusal / properties / account_status_reason
      Added value: +{
      +  "description": "the detail of account_status, e.g. no_egress, stopped, no_plan",
      +  "type": "string"
      +}
    • addedOutput schema / properties / refusal / properties / since
      Added value: +{
      +  "description": "when the number stopped working, RFC3339, when known",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations cover safety (readOnlyHint=true, idempotentHint=false). The description adds behavioral context beyond them: the payload comes back as base64 and a 'refused' outcome signals no retrievable media, which tells the agent how to interpret an edge-case result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core purpose and finished with the input source and the edge-case signal. No filler or redundancy.

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?

With an output schema present and annotations declaring the read-only safety profile, the description need not explain return structure; it nonetheless adds base64 and the 'refused' semantic. Everything needed for a correct call is present.

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 description coverage is 100%, so both parameters are already documented with the same sourcing hints the description repeats. The description adds no syntax or format detail beyond the schema, so the baseline 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 specific verb (fetch), the resource (the attachment a received message carried), the concrete media types (image/video/audio/document/sticker), and the return encoding (base64). An agent can distinguish it from wa_get_message, which handles message content rather than the attachment payload.

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?

Specifies the input source ('Use the message_id from wa_list_messages') and sets expectations for a failure case ('refused' means no retrievable media). It doesn't explicitly contrast with siblings like wa_get_message, but the context for correct invocation is clear enough.

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