The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Mbox MCP listing page.
An MCP server for local email archives. Point it at a Google Takeout .mbox export or a folder of .eml files and ask Claude things like:
Everything stays on your machine. No OAuth, no app passwords, no IMAP connection, no cloud. Every other email MCP server connects to a live account — this one reads the archive files you already have, which is exactly what you want for the 15 years of Gmail sitting in a Takeout export.
Claude Code
Claude Desktop — add to claude_desktop_config.json:
Then: "Open C:\Takeout\Mail\All mail Including Spam and Trash.mbox and tell me about it."
| Tool | What it does |
|---|---|
open_archive | Index an .mbox file or .eml directory: message count, date range, top senders |
search_messages | Search by keyword, sender, subject, date range — plus bounded body-text search |
get_message | Fully parse one message: decoded body, headers, attachment names/sizes |
A Takeout mbox is often multiple gigabytes with 100k+ messages. The design reads the minimum, lazily:
body_query only full-parses messages that already match your envelope filters, stops at a scan cap, and reports how many it scanned, so the model knows to narrow by sender or date first.mboxrd (body From lines are quoted as >From ), which splits cleanly. Plain mboxo archives with unquoted body From lines can over-split.Architecture: src/archive.ts (streaming indexer, header decoding, envelope filtering) and src/reader.ts (per-message MIME parsing) are pure logic; src/index.ts is the MCP wiring. The test suite includes a chunk-seam property test: indexing with pathological 17-byte chunks must produce an identical index to whole-file reads.
MIT