Fastmail MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FASTMAIL_BASE_URL | No | Optional base URL for the Fastmail API. | https://api.fastmail.com |
| FASTMAIL_API_TOKEN | Yes | Your Fastmail API token, generated from Settings → Privacy & Security → Connected apps & API tokens. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_mailboxesA | List the mailboxes, folders, and label IDs in the connected Fastmail account. Use when the user wants mailbox names, wants to choose a destination for moving or labeling email, or asks what folders exist. Do not use when the user wants recent messages or inbox contents; use get_recent_emails, list_emails, or search_emails instead. |
| list_emailsA | List email summaries from one Fastmail mailbox or across the account in paginated form. Use when you already know the mailboxId and want to browse messages there, such as "show messages in Archive" or "list emails in Projects". Returns an object with items, total, has_more, and next_offset so the caller can continue paging without fetching everything at once. Do not use for "check email" or "read my inbox" when no mailbox is specified; use get_recent_emails instead. Do not use when you already have an emailId; use get_email. |
| get_emailA | Get one specific email by ID, including full content and metadata. Use after get_recent_emails, list_emails, search_emails, or advanced_search when you need to read the body, inspect headers, or prepare a reply. Do not use for browsing or discovery; use get_recent_emails or search tools first. |
| send_emailA | Send a new outbound email from the connected Fastmail account. Use when the user says things like "send email to Alice" or wants to compose a fresh message right now. Do not use for threaded replies; use reply_email. Do not use when the user wants to save a draft instead of sending; use save_draft or create_draft. |
| reply_emailA | Reply to an existing email with Fastmail threading headers preserved automatically. Use when the user says "reply to this email", "answer the latest message from Alice", or wants a proper threaded response. Do not use for a brand-new outbound message; use send_email. Do not use when you only want to save a reply draft; use save_draft. |
| save_draftA | Save an unsent draft email in Fastmail, including reply-thread headers when provided. Use when the user says "save a draft", "draft a reply", or wants a message prepared without sending it yet. Do not use for immediate delivery; use send_email. Do not use for a minimal placeholder draft with only partial fields; use create_draft. |
| create_draftA | Create a minimal draft email record without sending it. Use when the user wants a placeholder draft or partial draft state, such as saving a subject/body before the message is complete. Do not use for threaded replies or a send-ready draft reply; use save_draft or reply_email. |
| search_emailsA | Search Fastmail email by free-text query across subject and message content in paginated form. Use when the user wants to find email about a topic or phrase, such as "search for invoices" or "find messages about taxes". Returns items, total, has_more, and next_offset so the agent can stop after the first useful page instead of pulling a large result set. Do not use for "check email" or "show recent emails"; use get_recent_emails. Do not use when you need structured filters like sender, unread, attachments, or date range; use advanced_search. |
| list_identitiesA | List Fastmail sending identities that can be used in the from field. Use before send_email, save_draft, or create_draft when the user wants to send from an alias or confirm which sender addresses are allowed. Do not use for inbox or message retrieval. |
| get_recent_emailsA | Get the newest email summaries from a Fastmail mailbox, defaulting to Inbox, in paginated form. Use when the user says "check email", "read my inbox", "show recent emails", or asks what just arrived. Returns items, total, has_more, and next_offset so the caller can keep paging only when needed. Use mailboxName to target another mailbox. Do not use when you need full message content for a known emailId (use get_email) or when you need filtered search results (use search_emails or advanced_search). |
| mark_email_readA | Mark one email as read or unread. Use after selecting a specific email when the user wants to clear unread state or mark something unread for later. Do not use for bulk mailbox triage; use bulk_mark_read. |
| delete_emailA | Delete one email by moving it to Trash. Use when the user explicitly wants a single message deleted or trashed. Do not use for mailbox cleanup across many messages; use bulk_delete. |
| move_emailA | Move one email to a different Fastmail mailbox. Use when the user wants a specific message filed into another mailbox. Do not use to add extra labels while keeping the current mailbox membership; use add_labels. |
| add_labelsA | Add one or more mailbox labels to an email without removing existing ones. Use when the user wants to tag or categorize a message while keeping its current mailbox membership. Do not use to relocate an email into a single destination mailbox; use move_email. |
| remove_labelsA | Remove one or more mailbox labels from an email. Use when the user wants to untag a specific message while leaving any remaining mailbox memberships alone. Do not use to move an email to Trash; use delete_email. |
| get_email_attachmentsA | List the attachments on a specific email. Use after get_email when you need attachment IDs before downloading one. Do not use to download content directly; use download_attachment. |
| download_attachmentA | Get an attachment download URL or save an attachment to disk when savePath is provided. Use when the user wants the file from a specific message attachment. Do not use when you still need to discover attachment IDs; use get_email_attachments first. |
| advanced_searchA | Search Fastmail email with structured filters such as sender, recipient, subject, unread state, attachments, mailbox, and date range in paginated form. Use when the user asks for something like "find the latest message from Alice", "show unread invoices with attachments", or "find messages from last week". Returns items, total, has_more, and next_offset so the agent can refine or continue the search without consuming excess context. Do not use for simple inbox checks; use get_recent_emails. Do not use when you already have an emailId; use get_email. |
| get_threadA | Get all emails in one conversation thread. Use when the user wants the full conversation around a known thread or needs context before replying. Do not use when you only have one emailId and need the full message first; use get_email. |
| get_mailbox_statsA | Get statistics such as unread counts and total emails for a mailbox or across the account. Use when the user wants a summary of mailbox volume or unread counts rather than individual messages. Do not use for listing messages themselves. |
| get_account_summaryA | Get an overall Fastmail account summary with aggregate mailbox statistics. Use when the user wants a high-level status view of the mailbox rather than raw email lists. Do not use for message content or search. |
| bulk_mark_readA | Mark multiple emails as read or unread in one call. Use when the user wants to triage a group of specific email IDs together. Do not use for one email; use mark_email_read. |
| bulk_moveA | Move multiple emails to a mailbox in one call. Use when the user wants to file a set of known email IDs into the same destination mailbox. Do not use to apply labels while preserving the current mailbox set; use bulk_add_labels. |
| bulk_deleteA | Delete multiple emails by moving them to Trash. Use when the user explicitly wants to trash a batch of specific messages. Do not use for a single message; use delete_email. |
| bulk_add_labelsA | Add labels to multiple emails in one call. Use when the user wants to categorize many specific messages at once. Do not use to relocate messages into a different mailbox; use bulk_move. |
| bulk_remove_labelsA | Remove labels from multiple emails in one call. Use when the user wants to untag a batch of specific messages together. Do not use to delete or move email. |
| check_function_availabilityA | Report which Fastmail email and identity functions are currently available for this account and API token. Use when setup seems incomplete, a mail tool fails in an unexpected way, or you need a quick capability summary for the configured account. Do not use for reading email content or browsing the inbox. |
| test_bulk_operationsA | Test bulk email actions against recent inbox messages, optionally as a dry run. Use only for safe operational verification of bulk email tooling. Do not use for normal user-facing mailbox tasks; use the actual bulk tools instead. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/as-j/fastmail-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server