MailKite
Get your API key
Agent email Agent email

Set up your agent's email

Four steps take your agent from nothing to an inbox it can send and receive from: an account, a connection, a domain, and an address. Your agent can do most of it itself over MCP.

1. Create an account

Sign up free at app.mailkite.dev and grab your API key — or skip the key entirely: the hosted MCP server signs you in over OAuth in the browser on first connect. The free tier covers sending, receiving, and agent inboxes.

2. Connect the MCP server

Point your agent at the hosted server. On first connect it authenticates in the browser (auto-login if you're already signed in to the dashboard):

connect
# Hosted MCP server — OAuth in the browser on first connect, no key to copy
claude mcp add --transport http mailkite https://mcp.mailkite.dev/mcp

# Any MCP client (Cursor, Claude Desktop, Cline, Zed) — same URL in config
{ "mcpServers": { "mailkite": { "url": "https://mcp.mailkite.dev/mcp" } } }

Prefer a skill over a server? The agent skill installs in one line:

terminal
# Or install the agent skill — works in Claude Code, Cursor, Codex, and more
npx skills add mailkite/agent-skills

3. Add a domain

Give the agent an address space you own. It can add the domain and read back the DNS records to publish, then verify them — all as tool calls:

add a domain
// The agent adds a domain and gets the DNS records to publish
mailkite_create_domain({ domain: "yourdomain.com" })
// → { id, dns: [ { type: "MX", value: "mx.mailkite.dev", priority: 10 }, … ] }

// Publish those records, then verify
mailkite_verify_domain({ id: "dom_…" }) // → { verified: true }

In a hurry? Claim a free MailKite subdomain instead — MailKite sets up its DNS for you, so it works the instant you claim it. See Domains & DNS for both paths.

4. Open an inbox

Every address on a verified domain is receivable. Send inbound to your own webhook, or hand the address to an inbox agent that reads and replies on its own:

open an inbox
// Point an address at your webhook…
mailkite_set_webhook({ domain: "yourdomain.com", url: "https://yourapp.com/hooks/mailkite" })

// …or turn it into an inbox agent that answers mail on its own
mailkite_create_route({
match: "support@yourdomain.com",
action: "agent",
agentPrompt: "Answer questions for yourdomain.com. Reply in-thread. " +
"Escalate anything you can't resolve to humans@yourdomain.com."
})

That's it — your agent has an inbox. Next, wire up the everyday loop in Send & receive from your agent, or build a support inbox agent.

A little about MailKite

MailKite is programmable email for developers and AI agents. One connection gives your agent send, inbound-as-JSON, domain management, and inbox agents as native tools — no mail server, no OAuth broker, no MIME wrangling. It works the same over the SDKs, the CLI, or raw HTTP.

Next: Connect your agent for the full tool list, or the Quickstart.