Skip to main content
Glama

get_email

Read-onlyIdempotent

Read a message body and attachment metadata by its opaque message ID. Cached copies include freshness metadata; set waitForFresh for a bounded provider refresh. Reading does not mark the message as read.

Input Schema

NameRequiredDescriptionDefault
accountIdYes
maxWaitMsNoMaximum refresh wait in milliseconds (up to 15000). At the deadline, a cached copy may be returned with freshness metadata; this is not a guarantee of a fresh response.
messageIdYesPass the full opaque message ID exactly as returned by search_emails, get_email, or a completed action. Never decode, reconstruct, shorten, or otherwise alter it. After archive_email or move_email completes, use its returned replacement messageId for later message operations.
waitForFreshNoWait briefly for a provider refresh instead of immediately returning a cached copy. Check the returned freshness timestamps and stale/refreshing flags.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / messageId / description
      Added value: +"Pass the full opaque message ID exactly as returned by search_emails, get_email, or a completed action. Never decode, reconstruct, shorten, or otherwise alter it. After archive_email or move_email completes, use its returned replacement messageId for later message operations."
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that: cached copies carry freshness metadata, waitForFresh triggers a bounded provider refresh that is not guaranteed to return fresh data, and reading has no read-receipt side effect.

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 tightly packed sentences: identity of the operation, caching/freshness semantics, then the no-side-effect guarantee. The most actionable constraint comes first and nothing is wasted.

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

Completeness4/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 carries return-value burden and does explain that responses include freshness timestamps and stale/refreshing flags. It stops short of describing the body/attachment-metadata return shape, but for a read tool with full annotation coverage this is nearly complete.

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 75% and the messageId parameter already carries rich guidance in the schema. The description reinforces that the ID is opaque and links waitForFresh to freshness metadata, but adds no syntax or format detail beyond what the schema provides, 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 and resource ('Read a message body and attachment metadata') qualified by the opaque message ID key. It implicitly distinguishes itself from get_attachment (which fetches attachment content) and get_thread (which fetches a whole conversation), so an agent can route correctly.

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?

The description explains the cache/freshness behavior and the side-effect guarantee ('Reading does not mark the message as read'), which helps an agent choose between this and mark_email_read. However, it never states when to use get_email versus get_thread or search_emails, so usage is only implied.

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