Skip to main content
Glama
codefuturist

Email MCP Server

by codefuturist

Get multiple emails

get_emails
Read-only

Fetch full content of up to 20 emails in one call to triage or summarize batches without repeated requests; bodies default to compact text and emails remain unread.

Instructions

Fetch the full content of multiple emails in a single call (max 20). More efficient than calling get_email repeatedly when triaging or summarising several emails. Does NOT mark emails as seen. Defaults to format="text" (HTML stripped) for compact, AI-friendly output. Each message carries the same 📰 newsletter / 🤖 automated marker as get_email.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idsYesEmail IDs to fetch (max 20). Obtain IDs from list_emails or search_emails.
formatNoBody format (default: text — HTML converted to readable text with markdown links). Use stripped to also remove quoted replies.text
accountYesAccount name from list_accounts
mailboxNoMailbox path (default: INBOX)INBOX
maxLengthNoTruncate each email body at this many characters (default 5000; 0 = unlimited).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.6.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / format / description
      Previous value: -"Body format (default: text — strips HTML for efficient AI reading). Use stripped to also remove quoted replies."New value: +"Body format (default: text — HTML converted to readable text with markdown links). Use stripped to also remove quoted replies."
    • addedInput schema / properties / maxLength / default
      Added value: +5000
    • changedInput schema / properties / maxLength / description
      Previous value: -"Truncate each email body at this many characters."New value: +"Truncate each email body at this many characters (default 5000; 0 = unlimited)."
    • changedInput schema / properties / maxLength / minimum
      Previous value: -100New value: +0
  2. First observedv0.2.3

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds genuinely useful behavior beyond them: it explicitly states emails are NOT marked as seen, and it explains the default text format strips HTML for compact AI-friendly output. This preempts the common concern that reading mail mutates read state.

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?

Four sentences, each earning its place, with the core purpose (batch fetch, max 20) front-loaded. No filler or repetition.

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?

For a batch-read tool with safety fully covered by annotations and no output schema, the description covers the essentials: batch cap, format default, side-effect behavior, and the newsletter/automated markers returned per message. Return-shape details are reasonably signaled.

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%, so ids, format, account, mailbox, and maxLength are all already documented. The description restates the max-20 cap and the text default, adding only the 'AI-friendly' rationale, so 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?

States a specific verb and resource ('Fetch the full content of multiple emails in a single call') and quantifies the batch limit (max 20). It explicitly positions itself against the sibling get_email, so an agent can distinguish batch vs. single fetch without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative ('More efficient than calling get_email repeatedly') and the condition that selects this tool ('when triaging or summarising several emails'). The 'Does NOT mark emails as seen' line implicitly redirects state-changing intent to mark_email, giving the agent clear routing guidance.

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