Skip to main content
Glama

Read message

read_message
Idempotent

Returns the full message: sender, recipients, subject, body and attachment list. By default the HTML body is converted to plain text with link targets kept in parentheses.

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": {
      "messageId": "<messageId>"
    },
    "name": "read_message"
  }
}

Input Schema

NameRequiredDescriptionDefault
formatNoBody format: 'text' (default) or 'html'.text
messageIdYesMessage id (see 'list_messages' or 'wait_for_message').
markAsReadNoMark the message as read. Default: true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.3/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false but destructiveHint=false and idempotentHint=true, meaning this tool has a write side effect; the description never explains that reading marks the message as read by default, which is the single most important behavior to surface. It does disclose useful rendering behavior (HTML converted to plain text with link targets in parentheses), but that does not compensate for omitting the mutation.

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?

Two short sentences, no filler. The return-value enumeration comes first and the format-default caveat second, matching the order in which an agent needs the information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names the returned fields, and it covers the format parameter's rendering. However, for a tool annotated as not read-only it omits the mark-as-read side effect, and says nothing about how attachments are represented or what happens if the message id is invalid.

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 all three parameters are already documented, establishing a baseline of 3. The description does add meaning by explaining what the default 'text' format actually does to an HTML body, which goes slightly beyond the schema but only for one parameter.

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?

The description uses a specific verb ('Returns') and resource ('the full message') and enumerates exactly what comes back: sender, recipients, subject, body and attachment list. That makes it clearly distinct from send_message or list_messages, though it never names a sibling tool to sharpen the contrast.

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?

Usage is only implied: it is obviously the tool for fetching one message in full, but there is no explicit when-to-use versus list_messages guidance, and no exclusions or prerequisites stated. The list_messages tie-in lives only in the messageId schema description, not in the tool description.

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