eml-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@eml-mcpsearch my inbox for emails from Alice"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
eml-mcp
MCP server for managing email archives stored as .eml files. Designed to work alongside a pair of Power Automate flows that automatically export Outlook emails to OneDrive as .eml files, giving AI assistants full read and write access to your inbox, sent items, and drafts through a structured set of tools.
Requirements
Node.js 20+
A OneDrive folder (synced locally) —
inbox/,outbox/, anddrafts/sub-directories are created automatically on first run
Installation
npx eml-mcp /path/to/emails --from=you@example.comAdd to your MCP client
claude mcp add eml -- npx -y eml-mcp /path/to/emails --from=you@example.comAdd to ~/.copilot/mcp-config.json:
{
"mcpServers": {
"eml": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/eml-mcp/dist/server.js", "/path/to/emails", "--from=you@example.com"]
}
}
}Add to ~/.codex/config.toml:
[mcp_servers.eml]
command = "npx"
args = ["-y", "eml-mcp", "/path/to/emails", "--from=you@example.com"]Arguments
Argument | Required | Description |
| Yes | Root directory; |
| No | SQLite index path (default: |
| No | From address for composed drafts (default: |
Power Automate — Automatic .eml archiving
Each flow watches one Outlook folder and saves every email as an .eml file to the corresponding OneDrive directory. Set up the inbox flow first, then duplicate it for sent items — the only two values that change are noted in the second section.
Trigger
When a new email arrives (V3) — Office 365 Outlook
Set the folder to Inbox. Add subject/sender filters as needed.
Step 1 — Export email (V2)
Export email (V2) — Office 365 Outlook
Message Id:
Message Id(dynamic value from trigger)
This action returns the raw MIME content of the email (RFC-2822 format, compatible with .eml).
Step 2 — Create file
Create file — OneDrive for Business
Folder Path:
/Outlook/inboxFile Name:
<Subject>-<Received Time>.eml— compose using dynamic values from the trigger, sanitizing characters not allowed in file namesFile Content:
Body(dynamic value from the Export email (V2) step)
The file is created in OneDrive and, on next refresh_index call or server restart, it will be picked up automatically by eml-mcp tagged as inbox.
Duplicate the inbox flow and change only two values:
Trigger folder:
Sent ItemsFolder Path (Create file step):
/Outlook/outbox
eml-mcp will tag these emails as outbox.
Tools
Tool | Description |
| Full-text search with filters (from, date, attachments, folder…) |
| Parse and return a single email |
| Create a new draft |
| Modify an existing draft and re-open it |
| Open an existing |
| Permanently delete an |
| Save one or all attachments from an email to a directory |
| Open an attachment with the system default application |
| Find emails containing attachments by filename, type, or keyword |
| Incrementally sync the index with disk state (add new, remove deleted, update changed) |
Development build
npm install
npm run buildRegister the local build in Claude Code:
claude mcp add eml node "/absolute/path/to/eml-mcp/dist/server.js" -- "/path/to/emails" --from=you@example.comThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MiguelRipoll23/eml-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server