Labsco
MCP SERVER

FastMail

by jmhron

Reads, searches and sends FastMail over JMAP — folder listing, filtered search by sender, subject, date or attachment, and outbound mail with CC and BCC.

Email: Mailboxes & Delivery
Summary
Search filters good enough to skip the inbox.

Most mail servers give you a mailbox and a keyword and leave the rest to luck. Combining sender, subject, date range and attachment presence in one call is what turns "find the contract Sarah sent in March" into a single request. The thing to weigh: a FastMail API token has access to the whole account, and this one both reads and sends, so it is a broader grant than a read-only integration.

What it is

A Python MCP server on top of FastMail's JMAP API. It covers the whole loop an assistant needs for mail: find the folder, find the message, read the body, reply — with search filters detailed enough that you rarely have to page through a mailbox.

What you get
  • Credential setup as its own call, so the API token is handed over once at the start of a session — `configure_fastmail`
  • Mailbox discovery: every mailbox with its name, role and email counts, or a single one found by partial name or by role — `list_mailboxes`, `find_mailbox`
  • Messages from a mailbox addressed either by id or by name, with a `limit` and a switch for whether to include the full body — `get_emails`
  • Search with real filters rather than one query box: `keyword`, `from_email`, `subject`, a mailbox to search inside, `hasAttachment`, and an `after`/`before` date range — `search_emails`
  • The full body of one message, returned as text, as HTML, or both — `get_email_body`
  • Outbound mail with `to`, `cc` and `bcc` lists, a subject and a body, plain or HTML — `send_email`
Requirements

A FastMail account with API access and an API token created under Settings → Privacy & Security → Integrations — the token starts with `fmu1-`. Python 3.8+. There is no package install: clone, `pip install -r requirements.txt`, and register `fastmail_mcp_server.py` with python in your client config; it speaks stdio. Setting `MCP_DEBUG` turns on debug logging. The project is `fastmail-mcp-server` (0.1.0 in pyproject).