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.
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.
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 |
|---|---|
| check_function_availability | Check which functions are available based on account permissions (includes setup guidance). Calendar tools run over CalDAV, so calendar is reported available… |
| test_bulk_operations | Safely test bulk operations with dry-run mode |
| send_email | Send an email (supports threading via optional inReplyTo and references headers) |
| advanced_search | Advanced email search with multiple criteria |
| get_recent_emails | Get the most recent emails (inspired by JMAP-Samples top-ten) |
| list_mailboxes | Get all mailboxes in your account. On accounts with many mailboxes the full output can be large — pass properties for a slim view. |
| Parameters | dryRun (default: true), limit (default: 3) |
| get_mailbox_by_name | Look up a mailbox by its full path from the root (e.g. Inbox/Receipts) |
| create_mailbox | Create a new mailbox (folder/label) |
| list_emails | List emails from a specific mailbox or all mailboxes |
| list_emails_metadata | List emails from a mailbox, metadata only (headers, no body content) |
| get_email | Get a specific email by ID |
| get_email_metadata | Get a specific email's metadata only (allowlisted headers, no body) |
| reply_email | Reply 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_draft | Create an email draft (at least one of to/subject/body/attachments required; supports threading headers for reply drafts) |
| edit_draft | Edit an existing draft in place — only provided fields change; existing attachments are preserved |
| send_draft | Send an existing draft |
| search_emails | Search emails by content |
| search_emails_metadata | Search emails by content, returning metadata only |
| mark_email_read | Mark an email as read or unread |
| pin_email | Pin or unpin an email |
| archive_email | Archive an email — moves it and marks it read in one atomic step |
| delete_email | Delete an email (move to trash) |
| move_email | Move an email to a different mailbox (replaces all mailboxes) |
| add_labels | Add labels (mailboxes) to an email without removing existing ones |
| remove_labels | Remove specific labels (mailboxes) from an email |
| get_email_attachments | Get list of attachments for an email |
| download_attachment | Download 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_webdav | Save an attachment directly to WebDAV cloud storage (Fastmail Files, Nextcloud, ...) without touching local disk |
| advanced_search_metadata | Same filters as advanced_search, metadata-only results (no body content) |
| get_thread | Get all emails in a conversation thread |
| get_thread_metadata | Get all emails in a thread, metadata only. Also accepts an email ID and resolves its parent thread. |
| get_mailbox_stats | Get statistics for a mailbox (unread count, total emails, etc.) |
| get_account_summary | Get overall account summary with statistics |
| bulk_mark_read | Mark multiple emails as read/unread |
| bulk_pin | Pin or unpin multiple emails |
| bulk_move | Move multiple emails to a mailbox |
| bulk_delete | Delete multiple emails (move to trash) |
| bulk_add_labels | Add labels to multiple emails simultaneously |
| bulk_remove_labels | Remove labels from multiple emails simultaneously |
| list_contacts | List all contacts |
| get_contact | Get a specific contact by ID |
| search_contacts | Search contacts by name or email |
| create_contact | Create a new contact (requires read-write contacts scope on the API token) |
| update_contact | Update an existing contact — each provided field wholly replaces the stored value (emails: [] removes all emails); unspecified fields are untouched |
| delete_contact | Permanently delete a contact (cannot be undone) |
| list_calendars | List all calendars |
| list_calendar_events | List calendar events (core fields only — no participants for token efficiency) |
| get_calendar_event | Get a specific calendar event by ID. Returns organizer and participants when available. |
| create_calendar_event | Create 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_event | Patch an existing calendar event. Preserves all existing data (attendees, reminders, recurrence rules, etc.) not being changed. Omit a field to leave it… |
| delete_calendar_event | Delete a calendar event |
| list_identities | List sending identities (email addresses that can be used for sending) |
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.