---
title: "Mailroom self-hosted project email for AI agents | Swipe"
description: "Mailroom is self-hosted email infrastructure that gives projects separate addresses and exposes bounded read, search, draft, approval, and send operations to agents."
canonical: "https://swipe.md/tools/mailroom"
language: "en"
---

Agent tools · Checked 12 August 2026

# Mailroom: Give projects and agents a private inbox

Read, search, and draft project email without handing an agent Gmail.

Mailroom is self-hosted email infrastructure that gives projects separate addresses and exposes bounded read, search, draft, approval, and send operations to agents.

Type

cli

Works on

Cloudflare Workers, Gmail, Terminal, MCP

[Open Mailroom ↗︎](https://github.com/iannuttall/mailroom)

## Project email without full Gmail access

Mailroom receives project email through Cloudflare and exposes small operations for agents to list, read, search, triage, and draft messages. Each project can have its own address while one Gmail account remains the optional human inbox.

The important boundary is between drafting and sending. Creating a draft, approving it, and delivering it are separate operations. The shipped automation is disabled, outbound attempts require idempotency keys, and generated prices and links can be checked against configured offers before a reply leaves.

Swipe’s live installation currently handles three domains, three inboxes, and five routes. Agents can read and prepare drafts through the CLI or MCP server, while automatic sending remains off. That makes it a real agent-email workflow, not a demo inbox or a generic Gmail wrapper.

## Start with one exact address

Mailroom is infrastructure, not a hosted app. Deploy it into a Cloudflare account, connect one non-critical domain, and create one exact address before considering catch-all routes. Test an inbound message, a reply, the stored thread, and the final From address before moving important mail.

The MCP server exposes three progressive tools: list operations, describe one operation, and run it. Full bodies and thread content are opt-in rather than automatically placed in the agent context. The packaged skill also tells agents to treat messages and attachments as untrusted input and to request explicit approval before sending.

## Storage, privacy, and setup cost

Original MIME and attachments live in R2. D1 stores routes, messages, threads, drafts, approvals, and delivery history. AI Search stores bounded search documents, with D1 full-text search as a fallback. Workers AI receives message content only when an operator explicitly runs an automation; the default automation is off. Mailroom collects no telemetry because there is no hosted Mailroom service.

This control comes with real setup work. You need Cloudflare DNS, Workers, D1, R2, Queues, Email Routing, and possibly the paid Workers plan for arbitrary outbound recipients. Cloudflare Email Sending is still beta. The npm package is also waiting for the first tagged release, so the current installation path is from source.

Mailroom has no web inbox. That is deliberate, but it means Gmail or the CLI is still needed for normal human reading. Self-hosters are responsible for access, retention, deletion, backups, and the legal obligations around stored email.

## Featured in Swipe

-   [Search the work your AI agents already did](https://swipe.md/issues/search-your-agent-history)

## Sources

-   [Mailroom source and README](https://github.com/iannuttall/mailroom)
-   [Mailroom deployment guide](https://github.com/iannuttall/mailroom/blob/main/docs/deploy.md)
-   [Mailroom architecture](https://github.com/iannuttall/mailroom/blob/main/docs/architecture.md)
-   [Mailroom privacy policy](https://github.com/iannuttall/mailroom/blob/main/PRIVACY.md)
-   [Live multi-domain Mailroom installation](https://github.com/iannuttall/mailroom/blob/main/docs/testing.md)
