Skip to main content
Glama

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.

Comes with a CLI (eml) for standalone use outside of an AI assistant.

Requirements

  • Node.js 20+

  • A OneDrive folder (synced locally) — inbox/, outbox/, and drafts/ sub-directories are created automatically on first run

Related MCP server: cloudflare-email

Add to your MCP client

claude mcp add eml -- npx -y eml-mcp /path/to/emails --from=you@example.com

Add 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 (MCP server)

Argument

Required

Description

<email-directory>

Yes

Root directory; inbox/, outbox/, and drafts/ sub-directories must exist inside

--from=<address>

No

From address for composed drafts (default: draft@eml-mcp)

--data-path=<path>

No

Base data directory (default: ~/.eml)

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/inbox

  • File Name: <Subject>-<Received Time>.eml — compose using dynamic values from the trigger, sanitizing characters not allowed in file names

  • File 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 Items

  • Folder Path (Create file step): /Outlook/outbox

eml-mcp will tag these emails as outbox.

CLI

eml <command> [<email-directory>] [--data-path=<path>]

Options

Flag

Description

--data-path=<path>

Base data directory (default: ~/.eml)


Development build

npm install
npm run build   # compiles TypeScript and re-links the eml/eml-mcp bins

Register 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.com

Related MCP Connectors

  • Email inboxes for AI agents: send, receive, reply, search, and manage threaded email over MCP.

  • Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.

  • Hosted email MCP for AI agents with inboxes, send/receive, memory, recovery, and credits.

  • Your agent needs a mailbox of its own — to receive, thread, draft and send, with attachments, without borrowing your personal inbox or your company's SMTP. **What you can ask for** • "Create an inbox for this agent and tell me its address." • "Read the new messages in this thread and draft a reply." • "Send this message with the attachment and wait for the response." • "Search this inbox for everything from that domain." • "Show delivery metrics and the events on this inbox." **How to use it** Point any MCP client at https://mcp.aisa.one/mail/mcp and sign in with OAuth — there is no key to create or paste. 49 tools: create and delete inboxes, list and read messages, raw message bodies, attachments, threads, drafts and draft attachments, send and reply, message search, inbox events, metrics, and list entries — reads and writes. **Why this rather than the source** A real inbox an agent owns, rather than an SMTP credential it borrows from a human. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the contact elsewhere in the catalogue, then write to them from here — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/sales/mcp finds the person to write to.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server providing comprehensive email capabilities via IMAP and SMTP, enabling AI assistants to read, search, send, manage, schedule, and analyze emails across multiple accounts.
    49
    924 npm
    111
    LGPL 3.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that receives emails on your domain and allows AI assistants to search, read, and manage them via natural language queries.
    883 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for parsing .eml email files, extracting metadata, content, and attachments with smart organization into folders. Enables AI to read and handle email files offline without triggering trackers.
    2
    2
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server providing comprehensive email capabilities via IMAP and SMTP, enabling AI assistants to read, search, send, manage, schedule, and analyze emails across multiple accounts.
    49
    924 npm
    LGPL 3.0