Self-hosting status
Extrovert currently provides a hosted API, console, DNS service, and mail platform. You can run the packaged MCP server yourself, but the repository is not a turnkey, supported distribution of the full mail platform.
Supported deployment choices
Section titled “Supported deployment choices”| Choice | What runs locally | What remains hosted |
|---|---|---|
| Hosted MCP OAuth | The MCP client only | MCP endpoint, API, console, DNS, mail, and storage |
| Packaged MCP over stdio | The MCP adapter process | API, console, DNS, mail, and storage |
| Packaged MCP over Streamable HTTP | The MCP adapter service | API, console, DNS, mail, and storage |
| Mock mode | MCP or SDK plus deterministic fixtures | Nothing is contacted; no real delivery occurs |
Point SDK and MCP clients at a different API with EXTROVERT_API_BASE_URL only when that API is a
compatible deployment you operate. Changing the URL does not create the required services.
Full platform components
Section titled “Full platform components”A complete deployment needs all of the following:
| Component | Responsibility |
|---|---|
| Agent and admin API | Authentication, tenancy, inbox lifecycle, mail operations, Review Loop, commerce, and jobs |
| PostgreSQL | Shared durable state, claims, leases, audit, billing, review, and DNS records |
| Zone renderer and authoritative DNS | Render database-backed zones and serve delegated domain records |
| Receiving service | Store mail and expose IMAP-backed message, thread, search, and attachment operations |
| Sending service | Deliver authenticated mail and report delivery outcomes |
| MCP server | Translate tools and hosted OAuth into API calls |
| Console | Human membership, credentials, inboxes, mail, review, domains, deliverability, and billing controls |
| Background workers | Poll inbound mail, deliver webhooks, process purchases, provision domains, and advance durable jobs |
The old live-read DNS binary is retired. Current deployments render zone files from PostgreSQL and serve them through authoritative DNS instances. Do not design a new deployment around the retired single-process DNS path.
Production topology
Section titled “Production topology”The hosted service runs application services on every node of a three-node cluster. Shared workers use durable claims, idempotency, and leader fencing rather than relying on a single replica. Authoritative DNS runs once per node. A self-operated production design would need equivalent database durability, worker safety, DNS availability, secret management, mail-state backups, and rolling-deploy behavior.
This topology is an operational description, not a supported self-hosting installer.
Security invariants
Section titled “Security invariants”A compatible deployment must preserve:
- organization, project, agent, and inbox ownership checks on every request;
- fixed key ceilings and explicit permissions;
- authenticated human sessions kept separate from agent credentials;
- HMAC verification over raw webhook bodies;
- encrypted inbox credentials and narrow export permission;
- bounded request bodies, lists, pagination, waits, and external fan-out;
- durable idempotency for outbound mail, review mutations, and commerce requests;
- public errors and logs that do not expose infrastructure provider names or secrets.
Offline development
Section titled “Offline development”Use the SDK mock transport or set EXTROVERT_MOCK=1 for MCP when developing without network access.
The fixtures cover identity, inboxes, message reads, review outcomes, and waits as deterministic
contract examples. They do not validate DNS propagation, delivery, receiving, OAuth, or payment.