to anna@northwind.com
Hi Anna, the refund for order 4012 went out this morning. It should land in 3 to 5 working days.
sales@agent.acme.com, live in about 30 seconds
Every agent gets a real address on your domain, an inbox it can hold a conversation in, and a memory of everyone it has talked to. You watch all of it, and step in whenever you want.
or
Settings, then Connectors, then Add custom connector. Paste this and sign in.
https://connect.mcpmailer.com/mcp No account needed first. You sign in when your app asks to connect, and that creates it.
Agents
Every agent gets its own address, API key, and inbox.
Your agents
Activity
Re: Your refund for order 4012
Invoice 8871 is 14 days overdue
Availability next week
Following up on your demo
Re: SSO setup on your account
Re: Following up on your demo
Three slots for Thursday
Connect Claude, ChatGPT, Vercel AI SDK, or LangChain once, and it gains 67 email abilities: writing, replying, searching, waiting for an answer, remembering who it spoke to. Pick one to watch it run.
Send from the agent mailbox. Replies carry generous quotas; cold sends are rate-limited.
Agent mail is ordinary mail, so it has to survive the same checks ordinary mail does. Every send is authenticated, threaded against what came before, and metered by whether it is a reply or a cold approach.
Authenticate
SPF, DKIM, and DMARC signed on the way out and checked on the way in.
Thread
References and In-Reply-To carried over, so the reply lands in context.
Meter
Replies pass free. Cold sends draw down the quota you set.
Every agent, every thread, every send and receive, in one place. Search the whole archive, read what a customer actually wrote back, and take over a conversation yourself when it needs a person.
Inbox
Every conversation your agents are having, across all mailboxes.
from anna@northwind.com: Got it, thank you. Can you send the invoice too?
support@agents.acme.comto ops@vendor.io: Following up on the payment terms we agreed in March.
billing@agents.acme.comfrom kai@applicant.dev: Tuesday or Thursday afternoon both work for me.
recruiting@agents.acme.comfrom dana@lumen.co: We are comparing two options internally, will revert Friday.
sales@agents.acme.comto marc@fieldco.net: Here is the metadata URL for your identity provider.
support@agents.acme.comto priya@orbit.dev: Any of these work on our side, just reply with one.
scheduling@agents.acme.comAn agent that only sends mail forgets everyone it has ever met. The workspace around the inbox is what makes the next conversation better than the last one.
The address book your agents read before they reply. Anything an agent remembers about someone shows up here.
Shared context that outlives a conversation. You see every note; each agent sees only the ones you grant it, plus the ones it wrote itself.
Credentials your agents can use without you handing them over in plaintext. Encrypted in your browser with a key we never receive and cannot recover.
A signed POST to your endpoint the moment an agent receives mail, or when a send bounces or draws a complaint. No polling.
Addresses your agents will not email. Sends are rejected before they reach the provider, which is what keeps your sending reputation intact.
Apps you have authorized to act as your agents. Revoking one stops it immediately, and you see the same approval screen if it asks again.
What happened to your mail after it left, and anything we did about it. Bounces, complaints, unsubscribes, and every throttle or pause.
Thirty days across every agent, against the cold and reply quotas your tier allows, so a runaway agent is visible before it is expensive.
Everything the MCP server can do, over plain HTTP with the same key, for anything in your stack that does not speak MCP.
Add acme.com or agents.acme.com and we give you the settings to paste into your domain provider, then check them for you until they work. Nothing you already run is touched: existing mail keeps flowing exactly as it does today.
How domain setup workscustom domain
| Type | Name | Value | Purpose |
|---|---|---|---|
| CNAME | kzt4…._domainkey.agents.acme.com | kzt4….dkim.amazonses.com | DKIM |
| CNAME | r7wq…._domainkey.agents.acme.com | r7wq….dkim.amazonses.com | DKIM |
| CNAME | m2pv…._domainkey.agents.acme.com | m2pv….dkim.amazonses.com | DKIM |
| TXT | _mcpmailer.agents.acme.com | mcpmailer-verify=8f2c… | ownership |
| MX | agents.acme.com | 10 inbound-smtp.eu-north-1.amazonaws.com | inbound mail |
| TXT | agents.acme.com | v=spf1 include:amazonses.com ~all | SPF |
| TXT | _dmarc.agents.acme.com | v=DMARC1; p=none; | DMARC |
Thirty days of sends and receives across every agent, against the cold and reply quotas your tier allows. A single agent that has started talking too much is visible long before it shows up on an invoice.
See what a plan includesLast 30 days across all agents. Quota tier: established.
Sent, 30d
842
today: 52
Received, 30d
1,176
today: 74
Bounces, 30d
3
Complaints, 30d
0
Pick yours and we show you exactly what to do. Claude, ChatGPT, and OpenClaw are a settings screen and a paste. The rest are a few lines in whatever you are building.
Settings, then Connectors, then Add custom connector. Paste this and sign in.
Terminal
openclaw mcp add mcpmailer --url https://connect.mcpmailer.com/mcp --transport streamable-http --auth oauth --timeout 320000 mcp_servers:
mcpmailer:
url: https://connect.mcpmailer.com/mcp
auth: oauthawait this.addMcpServer('mcpmailer', 'https://connect.mcpmailer.com/mcp', {
transport: {
type: 'streamable-http',
headers: { Authorization: 'Bearer mmk_live_...' }
}
});import { createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';
const mcp = await createMCPClient({
transport: {
type: 'http',
url: 'https://connect.mcpmailer.com/mcp',
headers: { Authorization: 'Bearer mmk_live_...' }
}
});
const { text } = await generateText({
model: 'openai/gpt-5.4',
tools: await mcp.tools(),
prompt: 'Email anna@customer.com her order status.'
});from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain.agents import create_agent
client = MultiServerMCPClient({
"mcpmailer": {
"transport": "streamable_http",
"url": "https://connect.mcpmailer.com/mcp",
"headers": {"Authorization": "Bearer mmk_live_..."},
}
})
agent = create_agent("openai:gpt-4.1", await client.get_tools())from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async with MCPServerStreamableHttp(
name="mcpmailer",
params={
"url": "https://connect.mcpmailer.com/mcp",
"headers": {"Authorization": "Bearer mmk_live_..."},
},
cache_tools_list=True,
) as server:
agent = Agent(name="Support", mcp_servers=[server])
result = await Runner.run(agent, "Reply to the newest support email.")The same tools, pointed at different jobs. Each one is a real subject line an agent on that job would send.
Answers tickets where your customers already are, and escalates the ones that need a person.
Subject Re: Refund for order 4012
Replies to a demo request in seconds and keeps the thread warm until a human takes it.
Subject Re: Demo request
Handles the scheduling ping-pong so only the decisions reach you.
Subject Re: Interview for Senior Engineer
Chases payment politely and consistently, and reads the replies that come back.
Subject Invoice 2024-118 is 14 days overdue
Negotiates times over email with people who just want to write "does Tuesday work?".
Subject Re: Catch-up next week
What people ask before they connect an agent: how addresses work, what happens to deliverability, and what you can see and stop.
MCPmailer is email infrastructure for AI agents. Each agent gets its own address, an inbox it can hold a threaded conversation in, and a memory of the people it has talked to. Your assistant reaches all of it over MCP, and you watch every message from a dashboard.
A transactional email API delivers mail your product sends. MCPmailer is built for conversations: an agent receives replies, keeps threading in both directions, waits hours for an answer, and remembers who it was talking to. Sending is one tool out of many rather than the whole product.
No. If you use Claude, ChatGPT, or another MCP client, connecting MCPmailer is a settings screen and a paste, and your assistant does the rest. The REST API and the SDKs are there for people building software, not a requirement for everyone else.
MCP, the Model Context Protocol, is the standard way an AI assistant connects to outside tools. A client that speaks MCP can use any MCP server, so connecting MCPmailer once gives your assistant every email ability it has without you writing an integration.
Yes. Everything the MCP server can do is available over a plain HTTP REST API with the same key, plus SDKs and a CLI. Agents that do not speak MCP, cron jobs, and back end services all use the same account, inboxes, and quotas.
An inbox on mcpmailer.email is live in about 30 seconds: sign up, create an agent, connect your client. Sending from your own domain takes as long as your DNS provider needs to publish three records, usually minutes.