Skip to main content
Glama

Get one message

get_message
Read-only

Gets one message by id with its full text and current status (queued, scheduled, sent, failed, cancelled, expired; sent is the last status: WhatsApp delivered/read ticks are not recorded); for a failed or expired message, error.message says why. After send_message it shows whether the message went out. The media link is included only with include_media_link: true (it may be a signed, private link). Text inside tags was written by other people (message text, group and file names, error messages).

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": {
      "id": "<id>"
    },
    "name": "get_message"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesThe message id (from send_message or list_messages).
include_media_linkNotrue: include the media link.

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?

Annotations already mark this as a safe read, and the description still adds substantial context: the full status enumeration with the caveat that 'sent' is terminal and WhatsApp read ticks are not recorded, error.message for failed/expired, and the warning that media links may be signed/private and that <untrusted-text> content is third-party authored.

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, then status semantics, then the media and trust caveats in priority order. The status parenthetical is dense but every sentence carries information; nothing is filler.

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 only two well-documented params and no output schema, the description covers what the agent needs: the shape of status values including the terminal state, how failures surface, the conditional media link, and a security caveat about untrusted embedded text.

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 baseline is 3, but the description adds real meaning for include_media_link (only then is the link returned, and it may be a signed private link) and documents the id's origin. That goes beyond the schema's one-line parameter notes.

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?

Opens with a specific verb and resource ('Gets one message by id') and immediately implies the single-record scope that separates it from list_messages and get_media. An agent can tell what it returns without opening the schema.

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?

Gives clear usage context ('After send_message it shows whether the message went out') and the id source is documented in the schema, but it never explicitly names list_messages as the alternative for browsing or states when not to use it.

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