Fluxmail
<p align="center">
<img src="docs/assets/fluxmail-banner.png" alt="Fluxmail" width="100%">
</p>
<p align="center"><a href="https://github.com/churichard/fluxmail/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/churichard/fluxmail/ci.yml?branch=main&style=flat-square&label=CI&logo=github"></a> <a href="https://www.npmjs.com/package/fluxmail"><img alt="npm version" src="https://img.shields.io/npm/v/fluxmail?style=flat-square&logo=npm&color=1f4fcc"></a> <a href="https://github.com/churichard/fluxmail/pkgs/container/fluxmail"><img alt="Container image" src="https://img.shields.io/badge/GHCR-container-2496ED?style=flat-square&logo=docker&logoColor=white"></a></p>
Fluxmail is self-hosted email infrastructure for agents and apps. It connects to Gmail, Microsoft 365, Outlook.com, and IMAP/SMTP mailboxes. Agents use MCP, apps and backend workflows use the versioned REST API, and operators use the CLI to connect mailboxes, manage access, and run the service.
## Features
- ๐ฌ Connect Gmail, Google Workspace, Microsoft 365, Outlook.com, and IMAP/SMTP mailboxes to one instance.
- ๐ค Give agents MCP tools to list, search, read, draft, reply, forward, send, schedule, and organize email.
- ๐ Use the same mailbox operations from the versioned REST API and CLI.
- ๐งต Fetch complete messages and threads, work across several mailboxes, and download attachments.
- ๐๏ธ Mark mail as read, star or archive it, move it between folders, send it to Trash, and manage Gmail labels or Outlook categories.
- ๐ Limit each client to selected mailboxes and actions with permission profiles or custom policies.
- ๐ฅ Add members and share selected mailboxes on Team and Enterprise plans.
- ๐ Run Fluxmail locally or in Docker while keeping its database and encrypted provider credentials on your infrastructure.
## Get started
Fluxmail requires Node.js 20.20.x, or Node.js 22.22 or later.
```bash
npm install -g fluxmail
fluxmail setup --name "Your name" --email you@example.com
```
Then follow the [quickstart](https://fluxmail.ai/docs/quickstart) to connect a mailbox and choose how you want to use Fluxmail: MCP, REST API, or CLI.
## Documentation
- [Overview](https://fluxmail.ai/docs/overview)
- [MCP tools](https://fluxmail.ai/docs/tools)
- [Build with REST](https://fluxmail.ai/docs/build-with-rest)
- [REST API](https://fluxmail.ai/docs/rest-api)
- [Permissions](https://fluxmail.ai/docs/permissions)
- [Configuration](https://fluxmail.ai/docs/configuration)
- [CLI reference](https://fluxmail.ai/docs/cli)
- [Gmail setup](https://fluxmail.ai/docs/connect-gmail-to-mcp)
- [Outlook setup](https://fluxmail.ai/docs/connect-outlook-to-mcp)
- [IMAP setup](https://fluxmail.ai/docs/connect-an-imap-mailbox)
- [Architecture](https://fluxmail.ai/docs/architecture)
- [Teams and plans](https://fluxmail.ai/docs/teams-and-plans)
- [Authentication and instances](https://fluxmail.ai/docs/authentication-and-instances)
## Plans and license
The Personal plan supports three mailboxes and one member. Paid plans raise those limits for teams that share an instance. See [Fluxmail pricing](https://fluxmail.ai/pricing) for current details.
Fluxmail is source available under the [Elastic License 2.0](LICENSE.md). You may use, modify, create derivative works, and redistribute Fluxmail subject to that license. Running a fork does not by itself require a paid Fluxmail subscription, and the built-in Personal plan supports three mailboxes and one member without a paid key.
Official Pro and Team entitlements require a valid Fluxmail license key. ELv2 does not allow you to change or circumvent license key functionality, remove protected functionality, or provide Fluxmail itself as a hosted or managed service that exposes a substantial set of its features. Use of the Fluxmail name and logos is also subject to the [Fluxmail Terms of Service](https://fluxmail.ai/terms).
TDQS
Scored across 17 tools
Most tools have clear, distinct purposes: drafts, sending, listing, searching, scheduling, and attachments are all separated. The only potential confusion is between list_emails and search_emails, both of which retrieve emails, but their filtering semantics are described distinctly enough to avoid serious misselection.
All tools follow a consistent snake_case verb_noun convention: list_accounts, send_email, get_thread, cancel_scheduled_email, etc. There are no mixed casing styles or vague verb-only names, making the set highly predictable.
17 tools is slightly above the ideal 3-15 range for a focused server, but the count is justified by the breadth of email operations covered: drafts, sending, scheduled sends, searching, threads, attachments, folders, labels, and account status. It feels substantial rather than bloated.
The surface covers the core email lifecycle: draft creation/update/deletion, send, forward, reply, scheduled sending and cancellation, retrieval by list/get/search/thread, attachment download, and batch modification. It also covers account/folder/label management, leaving no obvious dead ends for normal email workflows.