Skip to main content
Glama
openmaxai

@openmaxai/email-mcp

by openmaxai

Get email

get_email

Retrieve a single email message by its UID. Choose full content or headers, and optionally download attachments to a temporary directory.

Instructions

Read one message by uid. format=full returns text/html bodies; format=headers returns only headers. include_attachments=true saves attachments to a private temp dir and returns their paths.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uidYesMessage uid as returned by list_emails / search_emails (IMAP UID, or POP3 UIDL)
folderNoMailbox folder (IMAP). POP3 only supports INBOX.INBOX
formatNofull
include_attachmentsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose format-dependent return content and the side effect of saving attachments to a private temp dir. However, it does not state whether fetching alters read/seen state, how the temp dir is cleaned up, or whether any access permissions are needed. The disclosure is partial rather than complete.

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 compact sentences, front-loaded with the core operation, and every clause adds a distinct behavioral detail. No filler or redundancy.

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?

No output schema or annotations exist, so the description must fully explain return behavior. It covers bodies, headers, and attachment paths, but omits other returned message fields (subject, from, date, flags) and does not clarify read-state side effects. Adequate for a basic getter, but with gaps an agent would have to discover at runtime.

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 only 50%, and the description compensates well by explaining 'format=full' vs 'format=headers' and what 'include_attachments=true' does. Since uid and folder already have schema descriptions, the added value for the remaining parameters lifts this above baseline.

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 one message by uid.' This clearly distinguishes it from sibling list/search tools, which operate over collections of messages. The scope is unambiguous and actionable.

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 implies the intended use case — you have a UID and want a specific message — but it never names alternatives or says when not to use it. The schema's mention that UIDs come from list_emails/search_emails adds context, but the description itself provides no explicit routing between siblings.

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