Skip to main content
Glama
BigCactusLabs

dead-letter

Convert email to bundle

convert_eml_to_bundle

Convert .eml files into self-contained bundles of Markdown and attachments to prepare archived email for RAG or LLM pipelines.

Instructions

Convert a .eml file to a self-contained bundle with markdown and attachments.

Creates a directory containing the converted markdown, extracted attachments, and optionally the original .eml source.

source_handling only accepts 'copy' over MCP: the original .eml is copied into the bundle and left untouched. The 'move' and 'delete' modes are rejected here — use the CLI or the Python API for those.

Returns JSON with bundle_path, markdown_path, attachment_paths, and optional diagnostics.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
presetNodefault
eml_pathYes
bundle_rootYes
thread_modeNolatest
thread_orderNooldest-first
source_handlingNocopy
include_raw_htmlNo
strip_signaturesNo
strip_disclaimersNo
embed_inline_imagesNo
include_all_headersNo
no_calendar_summaryNo
strip_quoted_headersNo
strip_tracking_pixelsNo
strip_signature_imagesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.4

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does meaningful work: it discloses that the original .eml is copied and left untouched, that move/delete are rejected over MCP, and that the result is a new directory of extracted artifacts. It does not cover overwrite behavior if bundle_root already exists, so it is not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence, followed by short, scannable paragraphs on output shape and the source_handling restriction. There is mild redundancy between 'self-contained bundle' and 'Creates a directory containing...' but nothing wasteful.

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?

An output schema exists, so enumerating return keys is largely redundant and the description need not explain return values. The real gap is the undocumented parameter surface: for a 15-parameter tool, an agent has no basis for setting the dozen optional flags.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 15 parameters, so the description must compensate. It only explains source_handling (and even that partially) while leaving preset, thread_mode, thread_order, and the ten include_*/strip_* booleans entirely undocumented in both schema and prose.

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 states a specific verb and resource ('Convert a .eml file to a self-contained bundle') and clarifies the output artifact (a directory with markdown, attachments, and optionally the source). It is distinguishable from convert_eml by the 'bundle' framing, but it never explicitly contrasts itself with that sibling, so it stops short of 5.

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?

It gives a real usage constraint for one parameter: source_handling only accepts 'copy' over MCP, and move/delete must be done via CLI or Python API. However, it offers no guidance on when to choose this tool over convert_eml, convert_mbox, or convert_directory, so tool-level selection is left to inference.

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