Skip to main content
Glama
jmhron

FastMail MCP Server

by jmhron

FastMail MCP Server

A Model Context Protocol (MCP) server for integrating with FastMail's JMAP API. This server provides tools for reading emails, searching, managing folders, and sending emails through FastMail.

šŸš€ Features

  • šŸ“ Mailbox Management: List and find mailboxes/folders

  • šŸ“§ Email Reading: Get emails from specific folders with previews

  • šŸ” Advanced Search: Search by keyword, sender, subject, date range, attachments

  • šŸ“¤ Email Sending: Send emails with CC/BCC support

  • šŸŽÆ Folder Targeting: Search within specific folders

  • ⚔ Fast Performance: Uses FastMail's modern JMAP protocol

šŸ“‹ Prerequisites

  • Python 3.8+

  • FastMail account with API access

  • API token from FastMail (Settings → Privacy & Security → Integrations)

šŸ›  Installation

  1. Clone the repository:

    git clone <your-repo-url> cd fastmail-mcp-server
  2. Install dependencies:

    pip install -r requirements.txt
  3. Get your FastMail API token:

    • Log into FastMail

    • Go to Settings → Privacy & Security → Integrations

    • Create a new API token

    • Copy the token (starts with fmu1-)

šŸš€ Usage

Running the Server

python fastmail_mcp_server.py

The server will start and listen for MCP commands via stdio.

Configuration

First, configure your FastMail credentials:

{ "tool": "configure_fastmail", "arguments": { "apiToken": "fmu1-your-token-here" } }

Available Tools

šŸ“ configure_fastmail

Set up your FastMail API credentials.

šŸ“ list_mailboxes

List all mailboxes with their names, roles, and email counts.

{ "tool": "list_mailboxes", "arguments": { "role": "inbox" // Optional: filter by role } }

šŸ” find_mailbox

Find a specific mailbox by name or role.

{ "tool": "find_mailbox", "arguments": { "name": "Work", // Partial matching supported "role": "sent" // Or search by role } }

šŸ“§ get_emails

Get emails from a specific mailbox.

{ "tool": "get_emails", "arguments": { "mailboxId": "mailbox-id-here", // From list_mailboxes "mailboxName": "Inbox", // Alternative to mailboxId "limit": 20, // Max emails to fetch "includeBody": false // Include full email body } }

šŸ” search_emails

Search emails with advanced filtering.

{ "tool": "search_emails", "arguments": { "keyword": "project update", // Text search "from_email": "boss@company.com", // From specific sender "subject": "meeting", // Subject contains "mailboxId": "inbox-id", // Search within folder "hasAttachment": true, // Has attachments "after": "2024-01-01", // Date range "before": "2024-12-31", "limit": 50, "includeBody": false } }

šŸ“– get_email_body

Get the full body content of a specific email.

{ "tool": "get_email_body", "arguments": { "emailId": "email-id-here", "format": "text" // "text", "html", or "both" } }

šŸ“¤ send_email

Send an email through FastMail.

{ "tool": "send_email", "arguments": { "to": ["recipient@example.com"], "cc": ["cc@example.com"], // Optional "bcc": ["bcc@example.com"], // Optional "subject": "Hello from MCP!", "body": "This is the email body.", "isHtml": false // Set to true for HTML emails } }

šŸ”§ Integration with MCP Clients

Claude Desktop

Add to your Claude Desktop config:

{ "mcpServers": { "fastmail": { "command": "python", "args": ["/path/to/fastmail_mcp_server.py"] } } }

Other MCP Clients

This server follows the standard MCP protocol and should work with any MCP-compatible client.

šŸ— Project Structure

fastmail-mcp-server/ ā”œā”€ā”€ fastmail_mcp_server.py # Main server implementation ā”œā”€ā”€ requirements.txt # Python dependencies ā”œā”€ā”€ pyproject.toml # Package configuration ā”œā”€ā”€ README.md # This file └── examples/ # Example usage scripts └── test_server.py # Test script

šŸ”’ Security Notes

  • API Token Security: Never commit your API token to version control

  • Permissions: The API token has access to your entire FastMail account

  • Network: All communication uses HTTPS with FastMail's secure APIs

šŸ› Troubleshooting

Common Issues

  1. Authentication Error: Verify your API token is correct and has proper permissions

  2. Connection Error: Check your internet connection and FastMail service status

  3. Missing Emails: Ensure you're searching in the correct mailbox

Debug Mode

Enable debug logging by setting environment variable:

export MCP_DEBUG=1 python fastmail_mcp_server.py

šŸ¤ Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

šŸ“„ License

MIT License - see LICENSE file for details.

šŸ™ Acknowledgments

šŸ“š Additional Resources

-
security - not tested
A
license - permissive license
-
quality - not tested

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/jmhron/FastMailMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server