
Email Mcp
Connects to Gmail, Outlook, iCloud, and generic IMAP providers through a unified interface, handling OAuth flows automatically for Gmail and Outlook. Exposes 24 tools covering search, send, reply, forward, drafts, folder management, and batch operations like deleting or moving hundreds of emails at once. Uses native APIs where possible (Gmail API, Microsoft Graph) and falls back to IMAP for universal compatibility. Search results are compact by default to avoid token bloat, but you can fetch full bodies when needed. Credentials are encrypted at rest with AES-256-GCM. Reach for this when you want Claude to triage your inbox, bulk organize messages, or handle email workflows without switching between different provider APIs.
- GitHub stars
- 13
- tools
- 36
- transport
- STDIO
- last updated
- Feb 20, 2026
Tools
36 toolsPublic tool metadata for what this MCP can expose to an agent.
email_list_accountsList all configured accounts with connection status
List all configured accounts with connection status
No parameter schema in public metadata yet.
email_add_accountAdd a new IMAP or iCloud account (Gmail/Outlook require setup wizard)
Add a new IMAP or iCloud account (Gmail/Outlook require setup wizard)
No parameter schema in public metadata yet.
email_remove_accountRemove an account and its stored credentials; revokes the Google grant for Gmail, removes Outlook tokens from the local token cache, and reports the outcome
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
No parameter schema in public metadata yet.
email_test_accountTest connection to an account
Test connection to an account
No parameter schema in public metadata yet.
email_list_foldersList all folders/labels for an account
List all folders/labels for an account
No parameter schema in public metadata yet.
email_searchSearch emails with filters. Returns compact results by default (returnBody=false). Set returnBody=true to include full email bodies
Search emails with filters. Returns compact results by default (returnBody=false). Set returnBody=true to include full email bodies
No parameter schema in public metadata yet.
email_getGet full email content by ID (headers, body, attachment metadata). sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX
Get full email content by ID (headers, body, attachment metadata). sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX
No parameter schema in public metadata yet.
email_get_threadGet an entire email thread/conversation. On iCloud/IMAP a thread is searched in one folder: INBOX, or the one named in sourceFolder
Get an entire email thread/conversation. On iCloud/IMAP a thread is searched in one folder: INBOX, or the one named in sourceFolder
No parameter schema in public metadata yet.
email_get_attachmentDownload a specific attachment by ID (returns base64 data). sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX
Download a specific attachment by ID (returns base64 data). sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX
No parameter schema in public metadata yet.
email_save_attachmentDownload an attachment directly to disk, returning metadata only, which avoids the token cost of round-tripping large files as base64. outputPath is relative to a fixed downloads directory and cannot escape it. sourceFolder as on email_get_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 to a fixed downloads directory and cannot escape it. sourceFolder as on email_get_attachment
No parameter schema in public metadata yet.
email_sendCompose and send a new email (to, cc, bcc, subject, body, attachments)
Compose and send a new email (to, cc, bcc, subject, body, attachments)
No parameter schema in public metadata yet.
email_replyReply to an email in its thread. replyAll addresses the sender and all To/Cc recipients except your own address. Attachments supported. sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX
Reply to an email in its thread. replyAll addresses the sender and all To/Cc recipients except your own address. Attachments supported. sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX
No parameter schema in public metadata yet.
email_forwardForward an email to new recipients (to, cc, bcc, optional text on top, attachments). The original's attachments are left out unless includeOriginalAttachments: true. sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX
Forward an email to new recipients (to, cc, bcc, optional text on top, attachments). The original's attachments are left out unless includeOriginalAttachments: true. sourceFolder names the folder on iCloud/IMAP when the message is not in INBOX
No parameter schema in public metadata yet.
email_draft_createSave a draft without sending (attachments supported). inReplyToEmailId saves it as a reply inside that message's thread
Save a draft without sending (attachments supported). inReplyToEmailId saves it as a reply inside that message's thread
No parameter schema in public metadata yet.
email_draft_updateUpdate an existing draft in place. A reply draft stays in its thread. On iCloud/generic IMAP the old draft is deleted and a new one appended, so the returned id is new
Update an existing draft in place. A reply draft stays in its thread. On iCloud/generic IMAP the old draft is deleted and a new one appended, so the returned id is new
No parameter schema in public metadata yet.
email_draft_listList all drafts
List all drafts
No parameter schema in public metadata yet.
email_moveMove an email to a different folder. Supports sourceFolder for IMAP/iCloud
Move an email to a different folder. Supports sourceFolder for IMAP/iCloud
No parameter schema in public metadata yet.
email_transferMove or copy emails between accounts, preserving the original message via raw MIME transfer. deleteAfter=true trashes the source only after a confirmed import
Move or copy emails between accounts, preserving the original message via raw MIME transfer. deleteAfter=true trashes the source only after a confirmed import
No parameter schema in public metadata yet.
email_deleteDelete an email (trash or permanent). Supports sourceFolder for IMAP/iCloud
Delete an email (trash or permanent). Supports sourceFolder for IMAP/iCloud
No parameter schema in public metadata yet.
email_markMark as read/unread, starred, or flagged. Supports sourceFolder for IMAP/iCloud
Mark as read/unread, starred, or flagged. Supports sourceFolder for IMAP/iCloud
No parameter schema in public metadata yet.
email_labelAdd/remove labels (Gmail only)
Add/remove labels (Gmail only)
No parameter schema in public metadata yet.
email_folder_createCreate a new folder
Create a new folder
No parameter schema in public metadata yet.
email_get_labelsList all labels with counts (Gmail only)
List all labels with counts (Gmail only)
No parameter schema in public metadata yet.
email_get_categoriesList all categories (Outlook only)
List all categories (Outlook only)
No parameter schema in public metadata yet.
email_batch_deleteDelete multiple emails at once (up to 1000 for Gmail, batches of 20 for Outlook, UID ranges for IMAP)
Delete multiple emails at once (up to 1000 for Gmail, batches of 20 for Outlook, UID ranges for IMAP)
No parameter schema in public metadata yet.
email_batch_moveMove multiple emails to a folder in a single call
Move multiple emails to a folder in a single call
No parameter schema in public metadata yet.
email_batch_markMark multiple emails read/unread, starred, or flagged at once
Mark multiple emails read/unread, starred, or flagged at once
No parameter schema in public metadata yet.
email_batch_labelAdd or remove labels on multiple emails at once (native batch call on Gmail, one by one elsewhere)
Add or remove labels on multiple emails at once (native batch call on Gmail, one by one elsewhere)
No parameter schema in public metadata yet.
email_report_spamReport an email as spam/junk, training the provider's own filter. Not an abuse report to the provider's security team
Report an email as spam/junk, training the provider's own filter. Not an abuse report to the provider's security team
No parameter schema in public metadata yet.
email_batch_report_spamReport multiple emails as spam/junk at once
Report multiple emails as spam/junk at once
No parameter schema in public metadata yet.
email_create_block_ruleCreate a standing rule that intercepts future mail matching a pattern and either deletes it or moves it. Not supported on iCloud/generic IMAP
Create a standing rule that intercepts future mail matching a pattern and either deletes it or moves it. Not supported on iCloud/generic IMAP
No parameter schema in public metadata yet.
email_list_block_rulesList the standing block rules on an account, for auditing or before deleting one
List the standing block rules on an account, for auditing or before deleting one
No parameter schema in public metadata yet.
email_delete_block_ruleDelete a standing block rule — use to undo a rule that turned out too broad
Delete a standing block rule — use to undo a rule that turned out too broad
No parameter schema in public metadata yet.
email_create_forward_ruleCreate a standing rule that forwards future mail matching a pattern to another address. Creating the same rule twice returns the existing one
Create a standing rule that forwards future mail matching a pattern to another address. Creating the same rule twice returns the existing one
No parameter schema in public metadata yet.
email_list_forward_rulesList every rule on an account that forwards mail elsewhere, including rules made by hand in Gmail or Outlook
List every rule on an account that forwards mail elsewhere, including rules made by hand in Gmail or Outlook
No parameter schema in public metadata yet.
email_delete_forward_ruleDelete a forwarding rule by id
Delete a forwarding rule by id
No parameter schema in public metadata yet.
Sponsors
Readme
@marlinjai/email-mcp
email-mcp logo
A unified MCP server for email access across Gmail, Outlook, iCloud, and generic IMAP providers.
Features
- Multi-provider support -- Gmail (REST API), Outlook (Microsoft Graph), iCloud (IMAP), and generic IMAP/SMTP
- OAuth2 authentication -- Browser-based OAuth flows for Gmail and Outlook, with automatic token refresh
- Full email client -- Search, read, send, reply, forward, organize, and manage drafts
- Batch operations -- Delete, move, or mark hundreds of emails in a single call
- Lightweight search -- Compact search results by default (~20KB vs ~1.4MB) with optional full body retrieval
- Encrypted credential storage -- AES-256-GCM encryption at rest with machine-derived keys
- Provider-native APIs -- Uses Gmail API and Microsoft Graph where available for richer features, falls back to IMAP for universal compatibility
Installation
Install globally from npm:
npm install -g @marlinjai/email-mcp
Or run directly with npx (no install needed):
npx @marlinjai/email-mcp
Quick Start
Details
- Repository
- github.com/marlinjai/email-mcp
- Category
- Communication & Messaging
- Package
@marlinjai/email-mcp- Transport
- STDIO
- Registry
- MCP registry, active