Unofficial Model Context Protocol server for Fastmail integration.
- Log in to Fastmail
- Go to Settings → Privacy & Security → API tokens
- Click New API token
- Give it a name (e.g., "Claude MCP")
- Select the required scopes:
Mail(read/write as needed) - Copy the generated token
Add the following to your Claude Code MCP settings (~/.claude/claude_desktop_config.json or project .mcp.json):
{
"mcpServers": {
"fastmail": {
"type": "url",
"url": "https://fastmail-mcp.vercel.app/mcp",
"headers": {
"Authorization": "Bearer YOUR_FASTMAIL_API_TOKEN"
}
}
}
}Security Note: Keep your API token secure. Never commit it to version control. Consider using environment variables or a secrets manager.
Get mailbox information (folders) - list all mailboxes or get specific ones by ID.
Query emails with filters and sorting.
mailboxId(optional): Mailbox ID to search inlimit(optional, default: 10): Maximum number of emails to returnfrom(optional): Filter by senderto(optional): Filter by recipientsubject(optional): Filter by subject texthasKeyword(optional): Filter by keyword (e.g.,$seen,$flagged)notKeyword(optional): Filter by absence of keywordbefore(optional): Filter by date (ISO format)after(optional): Filter by date (ISO format)sort(optional, default:receivedAt): Sort by propertyascending(optional, default: false): Sort order
Get specific emails by their IDs.
emailIds(required): Array of email IDs to retrieveaccountId(optional): Account ID (auto-detected if not provided)properties(optional): Specific properties to fetchfetchTextBodyValues(optional): Fetch text/plain body valuesfetchHTMLBodyValues(optional): Fetch text/html body valuesfetchAllBodyValues(optional): Fetch all text body valuesmaxBodyValueBytes(optional): Maximum size in bytes for body values
Send emails with support for plain text, HTML, or both.
to(required): Recipient email addresssubject(required): Email subjectbody(required): Plain text bodyhtmlBody(optional): HTML body for multipart/alternative emailsidentityId(optional): Identity ID to send from
Update emails: move to a mailbox and/or set flags. Both operations can be combined in a single call.
emailIds(required): Array of email IDs to update (1-50)mailboxId(optional): Target mailbox ID, or a well-known role:trash,archive,inbox,drafts,junk,sentflags(optional): Array of flags to set:read/unread,flagged/unflagged,answered/unanswered,draft/undraftaccountId(optional): Account ID (auto-detected if not provided)
At least one of mailboxId or flags must be provided.
POST /mcp- MCP protocol endpointGET /health- Health check endpoint
pnpm install # Install dependencies
pnpm dev # Watch mode for TypeScript compilation
pnpm build # Build for production
pnpm start # Run local server
pnpm deploy # Deploy to VercelThis is an unofficial community project and is not affiliated with Fastmail.
Source code and issues: GitHub