Fastmail MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FASTMAIL_BASE_URL | No | Base URL for Fastmail API | https://api.fastmail.com |
| FASTMAIL_API_TOKEN | Yes | Your Fastmail API token | |
| FASTMAIL_DOWNLOAD_DIR | No | Directory to download attachments | ~/Downloads/fastmail-mcp/ |
| FASTMAIL_CALDAV_PASSWORD | No | App-specific password for CalDAV | |
| FASTMAIL_CALDAV_USERNAME | No | Fastmail email for CalDAV calendar access | |
| FASTMAIL_ALLOW_UNSAFE_BASE_URL | No | Set to 'true' to allow custom base URLs |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_mailboxesA | List all mailboxes in the Fastmail account |
| list_emailsC | List emails from a mailbox |
| get_emailB | Get a specific email by ID |
| send_emailC | Send an email |
| reply_emailA | Reply to an existing email with proper threading headers (In-Reply-To, References). Automatically fetches the original email to build the reply chain. By default sends immediately; set send=false to save as a draft instead. |
| create_draftA | Create an email draft without sending it. Supports threading headers for replies. IMPORTANT: each call creates a new draft — do not call twice for the same message. |
| edit_draftA | Edit an existing draft email. Since JMAP emails are immutable, this atomically destroys the old draft and creates a new one with the updated fields. Only fields you provide will be changed; others are preserved from the original draft. |
| send_draftA | Send an existing draft email. The draft must have recipients (to/cc/bcc) and a from address. After sending, the email is moved to the Sent folder and the draft keyword is removed. |
| search_emailsC | Search emails by subject or content |
| list_contactsB | List contacts from the address book |
| get_contactB | Get a specific contact by ID |
| search_contactsB | Search contacts by name or email |
| list_calendarsB | List all calendars |
| list_calendar_eventsC | List events from a calendar |
| get_calendar_eventA | Get a specific calendar event by ID |
| create_calendar_eventC | Create a new calendar event |
| list_identitiesA | List sending identities (email addresses that can be used for sending) |
| get_recent_emailsC | Get the most recent emails from inbox (like top-ten) |
| mark_email_readB | Mark an email as read or unread |
| pin_emailC | Pin or unpin an email |
| delete_emailB | Delete an email (move to trash) |
| move_emailB | Move an email to a different mailbox |
| add_labelsA | Add labels (mailboxes) to an email without removing existing ones |
| remove_labelsA | Remove specific labels (mailboxes) from an email |
| get_email_attachmentsB | Get list of attachments for an email |
| download_attachmentA | 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. |
| advanced_searchC | Advanced email search with multiple criteria |
| get_threadA | Get all emails in a conversation thread |
| get_mailbox_statsA | Get statistics for a mailbox (unread count, total emails, etc.) |
| get_account_summaryB | Get overall account summary with statistics |
| bulk_mark_readB | Mark multiple emails as read/unread |
| bulk_pinA | Pin or unpin multiple emails |
| bulk_moveC | Move multiple emails to a mailbox |
| bulk_deleteA | Delete multiple emails (move to trash) |
| bulk_add_labelsA | Add labels to multiple emails simultaneously |
| bulk_remove_labelsB | Remove labels from multiple emails simultaneously |
| check_function_availabilityB | Check which MCP functions are available based on account permissions |
| test_bulk_operationsA | Test bulk operations by finding recent emails and performing safe operations (mark read/unread) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 38 tools
Most tools have distinct purposes, with clear differentiation between single and bulk operations (e.g., pin_email vs bulk_pin). However, some overlap exists between get_recent_emails, list_emails, and search_emails, though descriptions help distinguish them.
All tools follow a consistent verb_noun snake_case convention. Bulk operations are prefixed with 'bulk_', and variants like 'mark_read', 'move', 'delete' maintain the same pattern throughout.
38 tools is excessive compared to typical MCP servers (5-15). Many operations are duplicated as single and bulk variants, which could be combined with parameters. This overcomplicates the tool surface.
Email operations are well-covered, but calendar and contact support is incomplete: missing update/delete for calendar events and create/update/delete for contacts. The domain coverage has notable gaps.