MCP server
All ten tools, with their parameters and what comes back. Each tool is one or two REST calls under the hood, so the API reference pages are the deeper documentation for every field.
No parameters. Returns the organisation's domains, mapped down to what an agent needs:
[
{ "id": "dom_01J...", "name": "example.com", "verified": true },
{ "id": "dom_01K...", "name": "example.org", "verified": false }
]| Parameter | Type | Notes |
|---|---|---|
name | string | The domain name. Required. |
auto_configure | boolean | Defaults to true. |
Calls POST /v1/domains and returns the created domain with the DNS records to publish: MX, SPF, the DKIM CNAME, DMARC, and the ownership TXT token.
| Parameter | Type | Notes |
|---|---|---|
domain_id | string | The dom_ ID from list_domains or add_domain. |
Calls GET /v1/domains/{id}/dns and returns the per-record verification state, including the actionable fix message for anything not yet verified.
| Parameter | Type | Notes |
|---|---|---|
domain_id | string | Queues a fresh DNS check for this domain. |
Calls POST /v1/domains/{id}/dns/check, which returns 202 (queued), not a result. The agent should then poll check_dns until records flip to verified. Manual checks are rate limited to one per domain per 30 seconds.
| Parameter | Type | Notes |
|---|---|---|
domain_id | string | The domain to summarise. |
The one tool that derives rather than proxies. It reads the DNS status endpoint and rolls it into a sending-readiness answer:
{
"domain": "example.com",
"verified": false,
"spf": { "ok": true, "fix": null },
"dkim": { "ok": false, "fix": "Add this CNAME record: emayler._domainkey.example.com ..." },
"dmarc": { "ok": true, "fix": null }
}SPF is the TXT record at the domain root, DKIM is the _domainkey CNAME, and DMARC is the record at _dmarc. Each carries an okflag and, when failing, the API's own fix message.
| Parameter | Type | Notes |
|---|---|---|
address | string | Full address, for example sam@example.com. The domain must already be added and verified. |
Calls POST /v1/mailboxes. The new mailbox starts with the five default folders.
| Parameter | Type | Notes |
|---|---|---|
domain_id | string | The domain to create on. |
local_parts | string[] | The parts before the @, for example ["sam", "jo", "team"]. |
Calls POST /v1/mailboxes/bulk and returns every created mailbox. This is the killer tool for team onboarding: a whole company becomes one call.
| Parameter | Type | Notes |
|---|---|---|
mailbox_id | string | The mailbox that receives the alias mail. |
address | string | The alias address, for example sales@example.com. |
Aliases are free and unlimited on every plan. Mail to the alias lands in the target mailbox.
| Parameter | Type | Notes |
|---|---|---|
user_id | string | The usr_ ID. |
mailbox_id | string | The mbx_ ID. |
access | read | full | Read can list and read mail; full can act on it. |
Grants a user access to a mailbox. Pair with identities (created over the API) to give the user a send-as address at the same time.
| Parameter | Type | Notes |
|---|---|---|
mailbox_id | string | The mailbox to read. |
limit | integer 1-20 | Threads to return. Defaults to 10. |
Lists recent threads, fetches each one, and returns them shaped for an LLM context window:
{
"threads": [
{
"id": "thr_01J...",
"subject": "Pricing question",
"participants": ["sam@example.com", "jo@example.org"],
"message_count": 2,
"messages": [
{
"from": "jo@example.org",
"subject": "Pricing question",
"date": "2026-07-30T14:02:11Z",
"body": "[UNTRUSTED EMAIL CONTENT]\nWhat does the Pro plan include?",
"suspected_injection": false
}
]
}
],
"next_cursor": "eyJ..."
}Shaping guarantees: total output stays under a 2,000-token budget on the standard fixture, message bodies cap at 600 characters with middle-truncation, HTML is reduced to Markdown, quoted chains and signatures are stripped, hidden text is removed, and anything that looks assistant-directed is flagged suspected_injection rather than silently dropped. TheMCP overview covers the defenses in detail.
A natural agent workflow
The tools compose in the order they are listed: add_domain to get DNS records, verify_domain plus check_dns to wait out propagation, bulk_create_mailboxes for the team, get_deliverability_status before the first send, and read_mailbox once mail starts arriving.