fastmail-mcp MCP Server

An unofficial Model Context Protocol (MCP) server that provides access to the Fastmail API, enabling AI assistants to interact with email, contacts, and calendar data.

Local serverMIT

What is the fastmail-mcp Server?

fastmail-mcp is an MCP project maintained in the madllama25/fastmail-mcp repository. The maintainer describes its purpose as “An unofficial Model Context Protocol (MCP) server that provides access to the Fastmail API, enabling AI assistants to interact with email, contacts, and calendar data”. Read the project documentation for the complete scope.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
check_function_availabilityCheck which functions are available based on account permissions (includes setup guidance). Calendar tools run over CalDAV, so calendar is reported available…
test_bulk_operationsSafely test bulk operations with dry-run mode
send_emailSend an email (supports threading via optional inReplyTo and references headers)
advanced_searchAdvanced email search with multiple criteria
get_recent_emailsGet the most recent emails (inspired by JMAP-Samples top-ten)
list_mailboxesGet all mailboxes in your account. On accounts with many mailboxes the full output can be large — pass properties for a slim view.
ParametersdryRun (default: true), limit (default: 3)
get_mailbox_by_nameLook up a mailbox by its full path from the root (e.g. Inbox/Receipts)
create_mailboxCreate a new mailbox (folder/label)
list_emailsList emails from a specific mailbox or all mailboxes
list_emails_metadataList emails from a mailbox, metadata only (headers, no body content)
get_emailGet a specific email by ID
get_email_metadataGet a specific email's metadata only (allowlisted headers, no body)
reply_emailReply to an existing email with proper threading headers (automatically builds In-Reply-To and References). Set send=false to save as draft instead of sending.
create_draftCreate an email draft (at least one of to/subject/body/attachments required; supports threading headers for reply drafts)
edit_draftEdit an existing draft in place — only provided fields change; existing attachments are preserved
send_draftSend an existing draft
search_emailsSearch emails by content
search_emails_metadataSearch emails by content, returning metadata only
mark_email_readMark an email as read or unread
pin_emailPin or unpin an email
archive_emailArchive an email — moves it and marks it read in one atomic step
delete_emailDelete an email (move to trash)
move_emailMove an email to a different mailbox (replaces all mailboxes)
add_labelsAdd labels (mailboxes) to an email without removing existing ones
remove_labelsRemove specific labels (mailboxes) from an email
get_email_attachmentsGet list of attachments for an email
download_attachmentDownload an email attachment. If savePath is provided, saves the file to disk and returns the file path and size. Otherwise returns a download URL.
save_attachment_to_webdavSave an attachment directly to WebDAV cloud storage (Fastmail Files, Nextcloud, ...) without touching local disk
advanced_search_metadataSame filters as advanced_search, metadata-only results (no body content)
get_threadGet all emails in a conversation thread
get_thread_metadataGet all emails in a thread, metadata only. Also accepts an email ID and resolves its parent thread.
get_mailbox_statsGet statistics for a mailbox (unread count, total emails, etc.)
get_account_summaryGet overall account summary with statistics
bulk_mark_readMark multiple emails as read/unread
bulk_pinPin or unpin multiple emails
bulk_moveMove multiple emails to a mailbox
bulk_deleteDelete multiple emails (move to trash)
bulk_add_labelsAdd labels to multiple emails simultaneously
bulk_remove_labelsRemove labels from multiple emails simultaneously
list_contactsList all contacts
get_contactGet a specific contact by ID
search_contactsSearch contacts by name or email
create_contactCreate a new contact (requires read-write contacts scope on the API token)
update_contactUpdate an existing contact — each provided field wholly replaces the stored value (emails: [] removes all emails); unspecified fields are untouched
delete_contactPermanently delete a contact (cannot be undone)
list_calendarsList all calendars
list_calendar_eventsList calendar events (core fields only — no participants for token efficiency)
get_calendar_eventGet a specific calendar event by ID. Returns organizer and participants when available.
create_calendar_eventCreate a new calendar event. Supports date-only (e.g. 2026-04-01) for all-day events. DTEND is exclusive per RFC 5545 — a one-day event on April 1 needs end…
update_calendar_eventPatch an existing calendar event. Preserves all existing data (attendees, reminders, recurrence rules, etc.) not being changed. Omit a field to leave it…
delete_calendar_eventDelete a calendar event
list_identitiesList sending identities (email addresses that can be used for sending)