mbox-mcp
MCP serverSearchThis integration lets your AI search email archives saved on your computer in .mbox or .eml format. All searching happens on your machine, so messages never leave it and no account sign-in or cloud connection is needed. Once added, you can ask your AI to find old emails directly from your local files.
Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.
Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.
What your AI can do with it
- Search email archives stored as .mbox or .eml files
- Find messages without uploading them anywhere
- Keep every search running on your own machine
- Search archives without signing in to any account
Getting started
- Save this item in Your setup as a reference.
- Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
- Check this page for availability before trying to install it through Ahel.
From the project's README
As published by arose26/mbox-mcp in README.md.
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:
- "Who did I email most in this archive?"
- "Find the message where the landlord mentioned the lease renewal."
- "Summarize my correspondence with bob@example.com from early 2026."
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.
Quick start
Claude Code
claude mcp add mbox -- npx -y mbox-mcp
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"mbox": {
"command": "npx",
"args": ["-y", "mbox-mcp"]
}
}
}
Then: "Open C:\Takeout\Mail\All mail Including Spam and Trash.mbox and tell me about it."
Tools
| 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 |
Built for large archives
A Takeout mbox is often multiple gigabytes with 100k+ messages. The design reads the minimum, lazily:
- Streaming index — one pass in 8 MiB chunks, recording byte offsets; only the current message's first 16 KiB is ever held for envelope parsing (sender, subject, date, RFC 2047 decoding).
- Full MIME on demand — reading a message parses just that message (postal-mime: nested multipart, charsets, quoted-printable/base64). Attachments are listed with names and sizes, never dumped into context.
- Honest body search —
body_queryonly 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. - Staleness-aware cache — archives are indexed once per process and re-indexed if the file changes.
Notes and limitations
- mbox variants: Takeout and Thunderbird produce
mboxrd(bodyFromlines are quoted as>From), which splits cleanly. Plainmboxoarchives with unquoted bodyFromlines can over-split. - Attachment contents are never returned or written anywhere.
- PST/OST and Maildir are out of scope for now.
Development
npm install
npm test # offline tests — synthetic archives built in-suite
npm run build # tsc → dist/
node scripts/smoke.mjs # end-to-end: generates an archive, drives the server over stdio
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.
License
MIT
Signals
- Last commit
- Aug 2026
- Weekly downloads
- 6k
- Weekly_downloads
- 6k weekly_downloads
Advanced
- Delivery
- mbox-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-arose26-mbox-mcp- Source
- github.com/arose26/mbox-mcp