A unified MCP server for email access across Gmail, Outlook, iCloud, and generic IMAP providers.
Email Mcp is an MCP project maintained in the marlinjai/email-mcp repository. The maintainer describes its purpose as “A unified MCP server for email access across Gmail, Outlook, iCloud, and generic IMAP providers”. Read the project documentation for the complete scope.
The documented npm package is @marlinjai/email-mcp. The configuration below comes from the maintainer’s example; adapt its paths and account values to your environment.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| 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). sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX |
| email_get_thread | Get an entire email thread/conversation. On iCloud/IMAP a thread is searched in one folder: INBOX, or the one named in sourceFolder |
| email_get_attachment | Download a specific attachment by ID (returns base64 data). sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX |
| email_save_attachment | Download an attachment directly to disk, returning metadata only, which avoids the token cost of round-tripping large files as base64. outputPath is relative… |
| email_send | Compose and send a new email (to, cc, bcc, subject, body, attachments) |
| email_reply | Reply to an email in its thread. replyAll addresses the sender and all To/Cc recipients except your own address, each once. Optional to/cc/bcc overrides and… |
| email_forward | Forward an email to new recipients (to, cc, bcc, optional text on top, attachments). The original's attachments are left out unless includeOriginalAttachments: |
| email_draft_create | Save a draft without sending (attachments supported). inReplyToEmailId saves it as a reply inside that message's thread (inReplyToSourceFolder names that… |
| email_draft_update | Update an existing draft in place. A reply draft stays in its thread. On Gmail/Outlook the draft id is unchanged; on iCloud/generic IMAP there's no in-place… |
| 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_batch_label | Add or remove labels on multiple emails at once (native batch call on Gmail, one by one elsewhere) |
| 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_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… |
| 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 |
| email_create_forward_rule | Create a standing rule that forwards future mail matching a pattern (sender domain/address, subject, or header content) to another address, for example… |
| email_list_forward_rules | List every rule on an account that forwards mail elsewhere, including rules made by hand in Gmail or Outlook: an audit of where mail is being sent |
| email_delete_forward_rule | Delete a forwarding rule by id |
{
"mcpServers": {
"email": {
"command": "npx",
"args": [
"@marlinjai/email-mcp"
]
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
Your assistant inside the workspace — read channels, search history, post messages and tame the noise.
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Inbox intelligence — search, read, draft and send Gmail through your assistant with OAuth auto-setup.
Read and write Jira, Confluence, Bitbucket, JSM and Compass from your AI client — with your own permissions.
Read and send Telegram messages through your assistant — chats, channels and history via the client API.
Enables Discord bot integration with Model Context Protocol (MCP) compatible applications like Claude Desktop.