Skip to main content
Glama
Wh1isper

MCP Email Server

get_emails_content

Idempotent

Retrieve full email content and headers by email ID to read messages after listing metadata. Supports pagination and optional mark-as-read.

Instructions

Get the full content (including body and reply-thread headers) of one or more emails by their email_id. Use list_emails_metadata first. This tool is non-read-only because mark_as_read=true changes remote flags.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mailboxNoThe mailbox to retrieve emails from.INBOX
email_idsYesOne or more email_id values to retrieve, supplied as an array (obtained from list_emails_metadata).
body_offsetNoCharacter offset into each email body to start reading from. Use together with max_body_length to page through long emails: if a returned body ends with the '...[TRUNCATED]' marker, fetch the next chunk with body_offset += max_body_length.
account_nameYesThe name of the email account.
mark_as_readNoIf True, mark each successfully retrieved email as read. If marking fails, a warning is logged and retrieval still succeeds.
max_body_lengthNoMaximum number of body characters to return, counted from body_offset. If the body extends past this window, the '...[TRUNCATED]' marker is appended after the requested body window.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
emailsYes
failed_idsYes
output_bytesNo
output_sha256No
content_omittedNo
output_lifetimeNo
requested_countYes
retrieved_countYes
output_file_pathNo
output_media_typeNo
Behavior5/5

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

The description goes beyond the readOnlyHint=false annotation by explaining exactly why the tool is non-read-only: 'because mark_as_read=true changes remote flags.' This discloses a conditional side-effect and clarifies the default behavior (read-only unless mark_as_read is true), providing valuable context that the annotation alone does not convey.

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?

The description is exactly two sentences: the first states the core function, the second adds a usage directive and a transparency note. Every sentence earns its place, with no wasted words, making it highly concise and well-structured.

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?

The description covers the essential context: what it retrieves, the prerequisite call, and the side-effect behavior. With an output schema present, return values need no explanation. However, it does not explicitly state the max number of emails or that email_ids can be an array, but those details are in the schema. Minor gap in missing explicit mention of multi-email support, but overall adequate.

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%, and parameter descriptions already explain meaning, defaults, and paging behavior (e.g., body_offset, max_body_length, and the truncation marker). The tool description adds no additional parameter semantics beyond what the schema provides, so the baseline 3 is appropriate.

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 clearly states a specific verb+resource: 'Get the full content (including body and reply-thread headers) of one or more emails by their email_id.' It distinguishes this from sibling tools like list_emails_metadata, which presumably returns metadata only, making the tool's unique role obvious.

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?

The description explicitly instructs to 'Use list_emails_metadata first,' providing a clear prerequisite and implying that list_emails_metadata is for metadata only. However, it does not explicitly state when not to use this tool or compare it to other alternatives like download_attachment, so it misses the full 'when-not/alternatives' guidance needed for a 5.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Wh1isper/mcp-email-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server