Email MCP (marlinjai)

A unified MCP server for email access across Gmail, Outlook, iCloud, and generic IMAP providers. Its 32 documented tools cover email, account, draft, block. It runs locally over stdio via the published package.

People who work with email, account and draft and want it reachable from Claude, Cursor, VS Code, or another MCP client. The project is written in TypeScript.

VERIFIED ACTIVE

LAST COMMIT 2026-09-27 · ★ 22 · VERIFIED 2026-09-30

MIT · TypeScript servers · how we verify → /methodology

01 · Install Email MCP (marlinjai)

before you install - you'll need

EMAIL_MCP_KEY

Environment variables documented in the project's README - it lists which are required and which have defaults.

Claude Code

claude mcp add marlinjai-email-mcp -- npx -y @marlinjai/email-mcp

Claude Desktop / Cursor / VS Code - add to config

{
  "mcpServers": {
    "marlinjai-email-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@marlinjai/email-mcp"
      ]
    }
  }
}

Same JSON for Cursor. For VS Code, rename the top-level key from `mcpServers` to `servers`.

Using another client? Same JSON, different key

Claude Desktop · mcpServers

Cursor · mcpServers

VS Code · servers

Windsurf · mcpServers

Zed · context_servers

Cline · mcpServers

Roo Code · mcpServers

Continue · mcpServers

LibreChat · mcpServers

Gemini CLI · mcpServers

Codex CLI · mcp_servers

Full setup guides: every client.

02 · Evidence

Security posture

What to check before giving this server access to your agent - from the registry, GitHub, and our own probes. We don't score safety; we show what's verifiable.

runs as local process (stdio) - runs on your machine with your user's permissions

license MIT - declared in the repository

npm package @marlinjai/email-mcp - published under the repo owner's npm scope (@marlinjai)

registry namespace io.github.marlinjai is GitHub-verified and matches the repo owner

03 · What Email MCP (marlinjai) can do

Prose above is summarized from the project's README and registry record - no invented capabilities.

What you can build

With this server connected, an agent can list all configured accounts with connection status, add a new IMAP or iCloud account (Gmail/Outlook require setup wizard), remove an account and its stored credentials, and list all folders/labels for an account.

The 32 tools it gives your agent

Extracted from the project's README - what email-mcp lets an agent do.

email_list_accounts
- List all configured accounts with connection status
email_add_account
- Add a new IMAP or iCloud account (Gmail/Outlook require setup wizard)
email_remove_account
- Remove an account and its stored credentials; revokes the Google grant for Gmail, removes Outlook tokens from the local token cache, and reports the outcome
email_test_account
- Test connection to an account
email_list_folders
- List all folders/labels for an account
email_search
- Search emails with filters. Returns compact results by default (returnBody=false). Set returnBody=true to include full email bodies
email_get
- Get full email content by ID (headers, body, attachment metadata)
email_get_thread
- Get an entire email thread/conversation
email_get_attachment
- Download a specific attachment by ID (returns base64 data)
email_save_attachment
- Download an attachment directly to disk, returning metadata only - avoids the token cost of round-tripping large files as base64. outputPath is relative to a fi
email_send
- Compose and send a new email (to, cc, bcc, subject, body)
email_reply
- Reply to an email (supports reply-all, preserves threading)
show all 32 tools
email_forward
- Forward an email to new recipients
email_draft_create
- Save a draft without sending
email_draft_update
- Update an existing draft in place. On Gmail/Outlook the draft id is unchanged; on iCloud/generic IMAP there's no in-place update (IMAP messages are immutable),
email_draft_list
- List all drafts
email_move
- Move an email to a different folder. Supports sourceFolder for IMAP/iCloud
email_transfer
- Move or copy emails between accounts, preserving the original message (sender, date, threading) via raw MIME transfer. deleteAfter=true trashes the source only
email_delete
- Delete an email (trash or permanent). Supports sourceFolder for IMAP/iCloud
email_mark
- Mark as read/unread, starred, or flagged. Supports sourceFolder for IMAP/iCloud
email_label
- Add/remove labels (Gmail only)
email_folder_create
- Create a new folder
email_get_labels
- List all labels with counts (Gmail only)
email_get_categories
- List all categories (Outlook only)
email_batch_delete
- Delete multiple emails at once (up to 1000 for Gmail, batches of 20 for Outlook, UID ranges for IMAP)
email_batch_move
- Move multiple emails to a folder in a single call
email_batch_mark
- Mark multiple emails read/unread, starred, or flagged at once
email_report_spam
- Report an email as spam/junk, training the provider's own filter - the same signal the "Report Junk" button sends in Gmail/Outlook. This is different from email
email_batch_report_spam
- Report multiple emails as spam/junk at once
email_create_block_rule
- Create a standing rule that intercepts future mail matching a pattern (sender domain/address, subject, or arbitrary header content) and either deletes it or mov
email_list_block_rules
- List the standing block rules on an account, for auditing or before deleting one
email_delete_block_rule
- Delete a standing block rule - use to undo a rule that turned out too broad

Latest releases

v1.7.0 · 2026-09-02

Added · email_batch_label tool - add/remove Gmail labels on multiple emails in one call, using a single native batchModify request instead of one email_label call per message. Falls back to sequential per-message calls…

v1.3.0 · 2026-06-14

Added · email_transfer tool - move or copy emails between accounts (e.g. iCloud/Outlook into Gmail) while preserving the original message intact (sender, date, threading) by transferring the raw MIME. With…

v1.2.7 · 2026-03-16

Fixed · iCloud Junk/Trash folder search rewritten - fetchAll() replaces async iterators so IMAP errors are properly catchable · Any SEARCH failure now triggers FETCH fallback (no longer requires "Invalid message…

04 · Who maintains Email MCP (marlinjai)

email-mcp is maintained by marlinjai. It's the only MCP server we track from this author; the repo dates to Feb 2026.

05 · Facts

category
email - actively maintained as of 2026-09-30.
release cadence
1 release in the last 90 days (latest 2026-09-02)
registry
io.github.marlinjai/email-mcp (active, first published 2026-02-19 · 2 versions)
packages
npm:@marlinjai/email-mcp

06 · Email MCP (marlinjai) FAQ

Is Email MCP (marlinjai) still maintained?

Yes - as of 2026-09-30, its last commit was 2026-09-27 and it shipped 1 release in the last 90 days. We re-verify nightly.

What can Email MCP (marlinjai) do?

With this server connected, an agent can list all configured accounts with connection status, add a new IMAP or iCloud account (Gmail/Outlook require setup wizard), remove an account and its stored credentials, and list all folders/labels for an account.

How do I install Email MCP (marlinjai)?

Run `npx -y @marlinjai/email-mcp`. The README documents one environment variable (EMAIL_MCP_KEY) to set first. You can also paste the ready-made client config above.

Does Email MCP (marlinjai) run locally?

Yes - it's a stdio server: it runs on your machine (via npx) with your user's permissions. Your data stays local unless the server itself calls external APIs.

07 · Alternatives to Email MCP (marlinjai)

More email MCP servers · Lumail · Bird · Parse-DMARC MCP Server · Apple Contacts (mgcrea) · e2a - email for AI agents

More TypeScript MCP servers · Android (martingeidobler) · Adis · Ares · Cnb · Dd · see all