Email MCP
IMAP/SMTP email MCP server — 52 tools, stdio + HTTP, IMAP IDLE push, multi-account, AI triage.
Connector by codefuturist · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/codefuturist-email-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: email, scheduling
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 27 read · 18 write · 7 delete
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 52
Read from the source code; the running server may list different tools.
Read 27 · Look things up without changing anything.
analyze_email_for_schedulingcheck_calendar_permissionscheck_clipboard_setupcheck_healthcheck_notification_setupdownload_attachmentextract_calendarextract_contactsfind_email_folderget_emailget_email_statsget_email_status
Show 15 more tools
get_emailsget_hooks_configget_threadget_watcher_statuslist_accountslist_calendarslist_emailslist_eventslist_labelslist_mailboxeslist_presetslist_reminderslist_scheduledlist_templatessearch_emails
Write 18 · Create, change, send or run things.
add_labeladd_to_calendarapply_templateconfigure_alertsconfigure_verificationcreate_labelcreate_mailboxcreate_reminderforward_emailget_verification_codemark_emailmove_email
Show 6 more tools
rename_mailboxreply_emailsave_draftschedule_emailsend_emailtest_notification
Delete 7 · Delete, drop, revoke or wipe things.
bulk_actioncancel_scheduleddelete_emaildelete_labeldelete_mailboxremove_labelsend_draft
Files it touches
- Any path the agent passes to its tools
Tools (52)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_labelAdd labelAdd a label to an email. For ProtonMail, this copies the email into the corresponding Labels/<name> folder. For Gmail and standard IMAP, this sets a keyword flag on the message.
add_to_calendarAdd to calendarAdd an email event to the local calendar (macOS Calendar.app / Linux via xdg-open). Automatically extracts event data from the email: ICS attachments, meeting URL (Zoom/Teams/Meet), conference dial-in / ID / passcode, attendees, and email body excerpt. All relevant email attachments (PDFs, docs, etc.) are saved locally and linked in the event notes. A native confirmation dialog is shown on macOS before the event is written. Returns one of: added | cancelled | timed_out | no_display.
analyze_email_for_schedulingAnalyze email for schedulingread-onlyAnalyze an email to detect calendar events and/or reminder-worthy content. Returns structured analysis so the AI can decide whether to call add_to_calendar, create_reminder, both, or neither. Use this as the first step before creating any scheduling resource.
apply_templateApply templateApply an email template with variable substitution. Use action "preview" to see the result, "draft" to save as draft, or "send" to send immediately.
bulk_actionBulk actioncan change or delete dataBatch operation on multiple emails by UID list. Supports mark_read, mark_unread, flag, unflag, move, and delete. Max 100 IDs per call. Returns success/failure counts.
cancel_scheduledCancel scheduledcan change or delete dataCancel a scheduled email. Removes it from the queue and deletes the associated draft.
check_calendar_permissionsCheck calendar permissionsread-onlyCheck whether the local calendar is accessible. On macOS, verifies Calendar.app access (requires Privacy & Security → Calendars permission). Returns granted status and step-by-step setup instructions if access is denied.
check_clipboard_setupCheck clipboard setupread-onlyDiagnose the clipboard integration used for caught verification codes: platform tools, concealed-write support, current [settings.verification] values, and the watcher prerequisite. With test_write=true it performs a harmless clipboard round-trip (writes a test string, reads it back, clears it).
check_healthCheck healthread-onlyCheck connection health, quota, and capabilities for email accounts, plus local cache size, coverage and hit ratio. Useful for diagnosing issues.
check_notification_setupCheck notification setupread-onlyDiagnose desktop notification support on this platform. Checks if required OS tools are available and provides setup instructions to enable notification permissions (macOS, Linux, Windows).
configure_alertsConfigure alertsUpdate alert/notification settings at runtime. Changes take effect immediately. Use save=true to persist changes to the config file. Omit any field to leave it unchanged.
configure_verificationConfigure verification catchingUpdate [settings.verification] at runtime — changes take effect immediately, including starting/stopping the ambient catcher via `enabled`. Use save=true to persist to config.toml (previous file is backed up). Omit every field to see the current configuration. Registered in read-only mode too: this writes config, never the mailbox.
create_labelCreate labelCreate a new label. For ProtonMail, creates a folder under Labels/. For standard IMAP keywords, labels are auto-created on first use — this is a no-op.
create_mailboxCreate mailboxCreate a new mailbox (folder). Use '/' as separator for nested folders (e.g., 'Work/Projects'). Use list_mailboxes to see existing folders.
create_reminderCreate reminderCreate a reminder in macOS Reminders.app from an email. Shows a native confirmation dialog before adding. The reminder notes include a message: deep link that reopens the source email in Mail.app. Use for action items, deadlines, and follow-up tasks extracted from emails. Use analyze_email_for_scheduling first to let the AI decide if a reminder is appropriate.
Show 37 more tools
delete_emailDelete emailcan change or delete dataDelete an email. By default moves to Trash. Set permanent=true for permanent deletion (⚠️ irreversible). The mailbox must be a real folder. Use find_email_folder first if the email was found in a virtual folder.
delete_labelDelete labelcan change or delete dataDelete a label. For ProtonMail, deletes the label folder. For standard IMAP keywords, labels cannot be deleted server-wide — use remove_label on individual emails.
delete_mailboxDelete mailboxcan change or delete data⚠️ DESTRUCTIVE: Permanently delete a mailbox and ALL its contents. This cannot be undone. Use list_mailboxes to verify the folder path.
download_attachmentDownload attachmentread-onlyDescription is built at runtime.
extract_calendarExtract calendarread-onlyExtract calendar events (ICS/iCalendar) from an email. Returns structured event data including time, location, attendees, and status.
extract_contactsExtract contactsread-onlyExtract unique contacts from recent email headers. Returns contacts sorted by frequency (most frequent first). Useful for finding frequent correspondents or building an address book.
find_email_folderFind email folderread-onlyFind a real mailbox folder an email belongs to. Required before move_email or delete_email when the email was found in a virtual folder (e.g., "All Mail", "Starred"). Returns the first real folder path found, to use as sourceMailbox; on a label-based server a message may also sit in other folders.
forward_emailForward emailForward an email to new recipients with optional additional message. The original is converted to readable text and "> "-quoted below your note; its attachments are re-attached unless includeAttachments is false. Set html=true to also send an HTML part carrying the original HTML in a blockquote.
get_emailGet emailread-onlyDescription is built at runtime.
get_email_statsGet email statsread-onlyGet email statistics and analytics for a mailbox. Shows volume, top senders, daily trends, and read/flagged counts.
get_email_statusGet email statusread-onlyGet the current read/flag/label state of an email without fetching its body. Much cheaper than get_email when you only need to check whether an email is unread, flagged, or which labels it has. Also useful to confirm the result of a mark_email call. Does NOT mark the email as seen.
get_emailsGet multiple emailsread-onlyFetch the full content of multiple emails in a single call (max 20). More efficient than calling get_email repeatedly when triaging or summarising several emails. Does NOT mark emails as seen. Defaults to format="text" (HTML stripped) for compact, AI-friendly output. Each message carries the same 📰 newsletter / 🤖 automated marker as get_email.
get_hooks_configGet hooks configread-onlyGet the current AI hooks configuration including preset, rules, and custom instructions.
get_threadGet threadread-onlyDescription is built at runtime.
get_verification_codeGet verification codeFind the newest verification code (OTP/2FA) or sign-in magic link in recent mail, using false-positive-resistant scoring (EN/DE). Use wait_seconds (max 45) to wait for a mail still in flight; if nothing arrives, simply call again. Works without the watcher via polling — with [settings.watcher] enabled, hits land within ~1 second. Set copy_to_clipboard=true to also place the value on the clipboard (concealed from clipboard managers, auto-cleared). The code/link is returned in the result by design.
get_watcher_statusGet watcher statusread-onlyGet the status of IMAP IDLE watcher connections and recent activity.
list_accountsList accountsread-onlyList all configured email accounts. Call this first to discover available account names for use with other tools.
list_calendarsList calendarsread-onlyList all available local calendars (macOS Calendar.app / Linux default). Use the returned calendar names with add_to_calendar to target a specific calendar.
list_emailsList emailsread-onlyList emails in a mailbox with optional filters. Returns paginated results with metadata (read/unread 🔵, flagged ⭐, replied ↩️, attachments 📎, labels 🏷️). List or machine-generated mail is marked 📰 newsletter / 🤖 automated from its RFC headers, with the unsubscribe URI when the sender offers one — personal mail carries no marker. Use get_email to fetch full body content. ProtonMail note: labels are represented as IMAP folders — use list_labels to discover them, then list_emails with mailbox="Labels/X" to find labeled emails.
list_eventsList eventsread-onlyList local calendar events with optional filters. Search by title, date range, or calendar name. Use to check for existing events before creating new ones, or to verify a recently added event. Returns event id, title, start/end time, location, and calendar name.
list_labelsList labelsread-onlyList available labels for an email account. Auto-detects the label system: ProtonMail folder-labels, Gmail X-GM-LABELS, or IMAP keywords. ProtonMail note: labels are represented as IMAP folders under the Labels/ prefix. Use list_emails with mailbox="Labels/<name>" to find emails tagged with a ProtonMail label.
list_mailboxesList mailboxesread-onlyList all mailbox folders for an account with unread counts and special-use flags. Use list_accounts first to get the account name.
list_presetsList presetsread-onlyList all available AI triage presets with their descriptions and suggested labels.
list_remindersList remindersread-onlyList reminders from macOS Reminders.app with optional filters. Search by title or list name. By default only shows incomplete reminders. Use to check for existing reminders before creating new ones, or to verify a recently added reminder. Returns reminder id, title, due date, completion status, priority, and list name.
list_scheduledList scheduledread-onlyList scheduled emails. Shows pending, sent, or all scheduled emails.
list_templatesList templatesread-onlyList all available email templates. Templates are TOML files in ~/.config/email-mcp/templates/ with {{variable}} placeholders for subject and body.
mark_emailMark emailChange email flags — mark as read/unread, flag/unflag. Idempotent: marking an already-read email as read is a no-op.
move_emailMove emailMove an email to a different mailbox folder. The sourceMailbox must be a real folder, not a virtual one like "All Mail". Use find_email_folder first if the email was discovered in a virtual folder.
remove_labelRemove labelRemove a label from an email. For ProtonMail, this removes the email from the label folder. For Gmail and standard IMAP, this removes a keyword flag.
rename_mailboxRename mailboxRename an existing mailbox (folder). Use list_mailboxes to see current folder paths.
reply_emailReply emailReply to an email with proper threading (In-Reply-To & References headers). Use get_email first to read the original. The original message is quoted below the reply by default (Thunderbird/Outlook style) — set quoteOriginal=false for the bare body only.
save_draftSave draftSave an email draft to the Drafts folder. Compose over time, then use send_draft to send it. Use list_emails with the Drafts mailbox to see saved drafts.
schedule_emailSchedule emailSchedule an email to be sent at a specific time in the future. The email is queued locally and sent automatically when the time arrives.
search_emailsSearch emailsread-onlySearch emails by keyword across subject, sender, and body — and, where the local mirror is enabled, attachment filenames (searching "report" finds an email carrying Q3-report.pdf). Omit query (or pass an empty string) to use it as a pure filter — e.g. find all emails from a specific sender without a keyword. Supports additional filters for sender, recipient, date range (since/before — INTERNALDATE; sent_since/sent_before — Date: header), attachments, size, and reply status. At least one of query/from/to/since/before/sent_since/sent_before/has_attachment/larger_than/smaller_than/answered must b…
send_draftSend draftcan change or delete dataSend an existing draft email and remove it from Drafts. The draft is fetched, sent via SMTP, then deleted. Use list_emails with the Drafts mailbox to find draft IDs.
send_emailSend emailSend a new email. Supports plain text or HTML body, CC, and BCC.
test_notificationTest notificationSend a test desktop notification to verify that OS permissions are correctly configured. Use check_notification_setup first to diagnose any issues.
Compare and alternatives
Featured in
Signals
- Stars
- 135
- Forks
- 62
- Open issues
- 30
- Weekly downloads
- 510
- Last commit
- Oct 16, 2026 (12 days ago)
- Last release
- Oct 10, 2026 (18 days ago)
- Last package publish
- Oct 10, 2026 (18 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.codefuturist/email-mcp- Version
- 0.6.0
- Auth
- No auth
- Packages
- npm @codefuturist/email-mcp
- License
- LGPL-3.0
- Repository
- github.com/codefuturist/email-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
Email MCP. Agent Mart. https://agentmart.dev/connectors/codefuturist-email-mcp (last updated 2026-10-25)