Resend MCP: what it does, and when your agent needs its own inbox
What Resend's MCP server covers and how to install it, and how an agent-owned inbox over MCP keeps each agent to its own mail and drafts.
Resend's MCP server gives Claude, Cursor and other MCP clients tools for nearly everything in a Resend account: sending email, templates, contacts, broadcasts, domains and, on the remote server, inboxes. ACK's MCP server is narrower. It's built around one thing, an inbox your agent owns, and the API key decides which inboxes the agent can reach and whether it can send at all.
This post covers what Resend's server does and how to install it, then where an agent-owned inbox fits.
What does the Resend MCP server do?
Resend describes it as "the official MCP server to send emails and interact with Resend". The README groups its tools by resource:
- Emails: send, list, get, cancel, update and batch send, with HTML, plain text, attachments, CC and BCC, reply-to, scheduling, tags, custom headers and idempotency keys.
- Received emails: list and read inbound mail, and list and download its attachments.
- Inboxes: create, list, get, update and remove them, and manage threads, labels and drafts.
- Templates, contacts, broadcasts, automations, events and domains.
- Segments, suppressions, topics, contact properties, API keys, webhooks, logs and usage.
That's a wide surface. If you already send transactional or marketing mail through Resend, your agent can work on all of it from one connection: draft a template, check why a domain isn't verified, or look up a delivery in the logs.
How do you install it?
There are two versions. The Resend docs describe a remote server at https://mcp.resend.com/mcp. When you connect, your client opens a browser so you can log in to Resend and approve access with OAuth. Where a browser login isn't possible, such as on a server, in CI or for a headless agent, you pass a Resend API key as a Bearer token instead.
In Claude Code, the docs install it as a plugin:
claude plugin install resend@claude-plugins-officialThere's also a local package, resend-mcp, which runs on your machine over stdio. From the README:
claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- npx -y resend-mcpFor Cursor or Claude Desktop, the README's JSON config:
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}The local server reads optional SENDER_EMAIL_ADDRESS and REPLY_TO_EMAIL_ADDRESSES variables for a default sender and reply-to, and can also run in HTTP mode with --http.
One difference matters if you want your agent to handle replies. The docs say: "Inboxes is only available on the remote MCP server, not the local resend-mcp package."
Can Resend receive email too?
Yes. Resend receives mail at a verified domain or at your account's <id>.resend.app subdomain, and you get mail sent to any address there. Resend Inboxes host mailboxes on your verified domains, with threaded replies, labels and drafts shared with your team. When Resend's own inbox agent is set to draft replies, the docs say it "never sends a draft itself".
So if your stack is already on Resend, you can give an agent an inbox without adding a provider. Resend's pricing page says every plan includes 3 inboxes, with extra inboxes at $1 per inbox per month on paid plans.
What does an agent-owned inbox over MCP look like?
ACK runs one remote MCP server at https://mcp.ack.now/mcp. It uses streamable HTTP and takes the same API key as the REST API, in an x-api-key or Authorization header. In Claude Code:
claude mcp add --transport http ack https://mcp.ack.now/mcp \
--header "x-api-key: $ACK_API_KEY"claude mcp add --transport http \
ack https://mcp.ack.now/mcp \
--header "x-api-key: $ACK…"The 39 tools cover inboxes, threads and messages, sending and replying, drafts, and allow and block lists. They call the same code as the REST API, so they fail with the same errors. There are no tools for templates, contact lists or broadcasts, because ACK isn't for bulk mail. Add an email MCP server to your agent has the full setup and the JSON config for other clients.
The inbox is the agent's. It has its own address, receives mail as soon as you create it, and replies stay in the sender's thread. How to give an AI agent its own email address walks through it with curl.
How do you stop the agent sending on its own?
This is where the two servers differ most. The MCP server can only do what the key allows, so the key is your control.
Resend's API key docs list two permission levels. full_access "can create, delete, get, and update any resource." sending_access "can only send emails", and for Inboxes it can call Reply to Thread Email, Forward Thread Email, Create Draft and Send Draft. A sending_access key can be limited to one domain.
ACK keys are set with individual permissions, and scoped to the whole organisation, a pod of inboxes or a single inbox. A key with draft_create but no send permissions can read mail and write drafts in one inbox, and nothing else:
curl https://api.ack.now/v0/inboxes/support-agent@trial.ack.now\
/api-keys \
-H "Authorization: Bearer $ACK_API_KEY" \
--json '{"name": "support-agent, drafts only",
"permissions": {"inbox_read": true, "message_read": true,
"draft_read": true, "draft_create": true,
"draft_update": true}}'POST /v0/inboxes/{inbox_id}/api-keys
{"permissions": {
"message_read": true,
"draft_create": true, …}}Put that key in the MCP config and the agent calls create_draft. If it tries send_message or reply_to_message, it gets a tool error naming the missing permission. A person reads the draft in the app and sends it. Approve your agent's email before it goes out covers the whole flow.
The key also decides what mail the agent sees. Without label_unauthenticated_read, it never sees mail that failed DMARC, or failed both SPF and DKIM. That matters because anyone can email your agent, so anyone can put instructions in front of it.
Which one should you use?
Use Resend's MCP server if Resend already sends your product's mail and you want an agent to help run that account: templates, broadcasts, domains, logs. It covers far more of the email stack than ACK does.
Use an agent-owned inbox if the job is conversation: the agent receives mail, works in threads and replies, and you want each agent fenced into its own inbox, with sending held back until a person approves. ACK is $19 per organisation per month with 10 inboxes included and $2 a month for each one after that, with every feature on the one plan. See pricing.
You can run both. They're separate MCP servers with separate names, so an agent can manage Resend templates and answer mail in its ACK inbox from the same client.
FAQ
Is the Resend MCP server free?
The server is open source and published on npm as resend-mcp. What you can send depends on your Resend plan. Resend's free plan includes 3,000 emails a month, with a limit of 100 a day.
Does ACK's MCP server need a local process?
No. It's a remote server over streamable HTTP. You add the URL and a key, and there's nothing to install.
Can ACK's MCP server send from my own domain?
Yes, on a paid plan. Add the domain and ACK gives you the DKIM, return-path and DMARC records to publish. During the trial, inboxes use a shared ACK address.
Can an agent read another agent's mail?
Not with ACK if you give each agent a key scoped to its own inbox. A support agent's key can't read or send from the finance agent's inbox.
Try it
Start a 14-day trial, make a key for one inbox, and run the claude mcp add command above. Your agent can receive mail in a few minutes. The developer docs have the REST endpoints if you'd rather call the API directly.