Mailoo
Email, calendar, reminders & ManageSieve MCP server (IMAP/SMTP, AI triage, scheduling, OAuth2).
Connector by Bitfloo · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying Mailoo?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/bitfloo-mailoo
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
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, install config and code. Checked Oct 25, 2026.
- Tools
- 29 read · 12 write · 16 delete
- Secrets
- 5 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 57
Read from the source code; the running server may list different tools.
Read 29 · Look things up without changing anything.
analyze_email_for_schedulingcheck_calendar_permissionscheck_healthcheck_notification_setupextract_calendarextract_contactsfind_email_folderget_emailget_email_securityget_email_statsget_email_statusget_emails
Show 17 more tools
get_hooks_configget_threadget_watcher_statuslist_accountslist_calendarslist_emailslist_eventslist_labelslist_mailboxeslist_presetslist_reminderslist_scheduledlist_templatessearch_emailssieve_get_scriptsieve_list_scriptssieve_status
Write 12 · Create, change, send or run things.
add_labeladd_to_calendarcreate_labelcreate_mailboxcreate_reminderdownload_attachmentexport_emailmark_emailmove_emailrename_mailboxsave_drafttest_notification
Delete 16 · Delete, drop, revoke or wipe things.
apply_templatebulk_actioncancel_scheduledconfigure_alertsdelete_emaildelete_labeldelete_mailboxforward_emailremove_labelreply_emailschedule_emailsend_draft
Show 4 more tools
send_emailsieve_activate_scriptsieve_delete_scriptsieve_put_script
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
MCP_EMAIL_ALERT_WEBHOOK_URLMCP_EMAIL_HTTP_TOKENMCP_EMAIL_OAUTH2_CLIENT_SECRETMCP_EMAIL_OAUTH2_REFRESH_TOKENMCP_EMAIL_PASSWORD
Other settings (environment variables or headers).
MCP_EMAIL_ACCOUNT_NAMEMCP_EMAIL_ADDRESSMCP_EMAIL_ALERT_DESKTOPMCP_EMAIL_ALERT_SOUNDMCP_EMAIL_ALERT_URGENCY_THRESHOLDMCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATEMCP_EMAIL_DEFAULT_ACCOUNTMCP_EMAIL_FULL_NAMEMCP_EMAIL_HOOK_AUTO_CALENDARMCP_EMAIL_HOOK_AUTO_FLAGMCP_EMAIL_HOOK_AUTO_LABELMCP_EMAIL_HOOK_BATCH_DELAY
Show 35 more settings
MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTESMCP_EMAIL_HOOK_CALENDAR_CONFIRMMCP_EMAIL_HOOK_CALENDAR_NAMEMCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONSMCP_EMAIL_HOOK_ON_NEW_EMAILMCP_EMAIL_HOOK_PRESETMCP_EMAIL_HTTP_ALLOWED_HOSTSMCP_EMAIL_HTTP_HOSTMCP_EMAIL_IMAP_DISABLE_IMAP4REV2MCP_EMAIL_IMAP_HOSTMCP_EMAIL_IMAP_PORTMCP_EMAIL_IMAP_STARTTLSMCP_EMAIL_IMAP_TLSMCP_EMAIL_IMAP_VERIFY_SSLMCP_EMAIL_OAUTH2_CLIENT_IDMCP_EMAIL_OAUTH2_PROVIDERMCP_EMAIL_RATE_LIMITMCP_EMAIL_READ_ONLYMCP_EMAIL_SAVE_TO_SENTMCP_EMAIL_SIEVE_HOSTMCP_EMAIL_SIEVE_PORTMCP_EMAIL_SMTP_HOSTMCP_EMAIL_SMTP_POOL_ENABLEDMCP_EMAIL_SMTP_POOL_MAX_CONNECTIONSMCP_EMAIL_SMTP_POOL_MAX_MESSAGESMCP_EMAIL_SMTP_PORTMCP_EMAIL_SMTP_STARTTLSMCP_EMAIL_SMTP_TLSMCP_EMAIL_SMTP_VERIFY_SSLMCP_EMAIL_SYSTEM_ONE_ENABLEDMCP_EMAIL_TOOLSETMCP_EMAIL_USERNAMEMCP_EMAIL_WATCHER_ENABLEDMCP_EMAIL_WATCHER_FOLDERSMCP_EMAIL_WATCHER_IDLE_TIMEOUT
Network hosts it talks to 10
accounts.google.com· found in codeapple.com· found in codeauth.example.test· found in codebiomejs.dev· found in codegithub.com· found in codeglama.ai· found in codelogin.microsoftonline.com· found in codemail.google.com· found in codeoauth2.googleapis.com· found in codeoutlook.office.com· found in code
Files it touches
/opt/mailoo/main.js/private/etc/tmp/mailoo-scheduler.log/usr/share/sounds/freedesktop/stereo/message-new-instant.oga- Your home directory (~)
- Any path the agent passes to its tools
Tools (57)
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 Email 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 | duplicate.
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 Templatecan change or delete dataApply an email template with variable substitution. Use action "preview" to see the result, "draft" to save as draft, or "send" to send immediately.
bulk_actionRun Bulk Actioncan change or delete dataBatch operation on multiple emails by UID list. Supports mark_read, mark_unread, flag, unflag, move, and delete. delete moves the messages to Trash. Max 100 IDs per call. Returns success/failure counts.
cancel_scheduledCancel Scheduled Emailcan change or delete dataCancel a scheduled email. Removes it from the queue and moves the associated draft to Trash.
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_healthCheck Account Healthread-onlyCheck connection health, quota, and capabilities for email accounts. 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 Alertscan change or delete dataUpdate 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.
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. 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.
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.
Show 42 more tools
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 AttachmentDescription is built at runtime.
export_emailExport EmailDescription is built at runtime.
extract_calendarExtract Calendar Eventsread-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 which real mailbox folder(s) 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 real folder path to use as sourceMailbox.
forward_emailForward Emailcan change or delete dataForward an email to new recipients with optional additional message. Original email is quoted below. Original attachments are not included.
get_emailGet EmailGet the full content of a specific email by ID. Does NOT mark the email as seen (uses IMAP BODY.PEEK — non-destructive). Use format="text" to strip HTML, or format="stripped" to also remove quoted replies and signatures. Use maxLength to cap the body size for large emails. Set markRead=true only when you want to explicitly mark the email as read.
get_email_securityRead Email Securityread-onlyRead-only SPF/DKIM/DMARC and From/Reply-To/Return-Path domain signals for an email. Does not change flags. Does not return unsubscribe or tracking URLs.
get_email_statsGet Email Statisticsread-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 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.
get_hooks_configGet Hooks Configurationread-onlyGet the current AI hooks configuration including preset, rules, and custom instructions.
get_threadGet Email Threadread-onlyReconstruct a full email conversation thread by following References and In-Reply-To headers. Returns all related messages. Does NOT mark emails as seen. Use format="text" to strip HTML, or format="stripped" to also remove quoted replies. Use newestFirst=true to show the most recent message in full and older messages as header-only summaries. Use get_email first to obtain the message_id.
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 🏷️). 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 Calendar 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 Triage 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 Scheduled Emailsread-onlyList scheduled emails. Shows pending, sent, or all scheduled emails.
list_templatesList Templatesread-onlyDescription is built at runtime.
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 Labelcan change or delete dataRemove 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 to Emailcan change or delete dataReply to an email with proper threading (In-Reply-To & References headers). Use get_email first to read the original.
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 Emailcan change or delete dataSchedule 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. Omit query (or pass an empty string) to use it as a pure filter — e.g. find all emails with attachments from a specific recipient without a keyword. Supports additional filters for recipient, attachments, size, and reply status.
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 Emailcan change or delete dataSend a new email. Supports plain text or HTML body, CC, BCC, and attachments. Optional messageId lets a retried call reuse the same Message-ID.
sieve_activate_scriptActivate Sieve Scriptcan change or delete dataActivate a ManageSieve script (RFC 5804 SETACTIVE). Pass an empty name to deactivate all.
sieve_delete_scriptDelete Sieve Scriptcan change or delete dataDelete a ManageSieve script (RFC 5804 DELETESCRIPT). Active scripts must be deactivated first.
sieve_get_scriptGet Sieve Scriptread-onlyDownload a ManageSieve script by name (RFC 5804 GETSCRIPT).
sieve_list_scriptsList Sieve Scriptsread-onlyList ManageSieve scripts on the account (RFC 5804 LISTSCRIPTS).
sieve_put_scriptSave Sieve Scriptcan change or delete dataCreate or replace a ManageSieve script (RFC 5804 PUTSCRIPT). Does not activate it.
sieve_statusCheck Sieve Availabilityread-onlyDetect whether ManageSieve is available for an account (port 4190 by default). If the provider only exposes filters in a web UI, this reports a warning rather than IMAP capabilities.
test_notificationSend Test NotificationSend a test desktop notification to verify that OS permissions are correctly configured. Use check_notification_setup first to diagnose any issues.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 453
- Last commit
- Oct 23, 2026 (7 days ago)
- Last release
- Oct 18, 2026 (12 days ago)
- Last package publish
- Oct 18, 2026 (12 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.Bitfloo/mailoo- Version
- 0.2.2
- Auth
- API key
- Packages
- npm @bitfloo/mailoo
- License
- LGPL-3.0
- Repository
- github.com/Bitfloo/mailoo
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get Mailoo running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
Mailoo MCP server. Agent Mart. https://agentmart.dev/connectors/bitfloo-mailoo (last updated 2026-10-25)