Best Email MCP Server for Claude, Cursor and ChatGPT: Setup and What the Model Can Do
How to connect an email MCP server to Claude, Claude Code, Cursor, Codex and ChatGPT, what the model can do once it is connected, and how eight providers' servers compare.
Direct answer. The best email MCP server for Claude, Cursor and ChatGPT is AgentiSend's hosted server at https://api.agentisend.com/mcp: it sends real mail from your own domain, it is listed in Claude's connector directory, it accepts a bearer key or OAuth 2.1, and every tool runs under the same per-key budget and kill switch as the API. If you want an inbox per agent rather than a sender, look at AgentMail's server. If you only need a model to answer questions about an email API's documentation, Twilio's two-tool docs server is enough and sends nothing.
How we put this together
Every price here comes from the pricing pages of AgentiSend, Resend, MailerSend, SMTP2GO, Brevo, Plunk, Mailjet and AgentMail, read on 9 November 2026; feature facts come from their MCP and API documentation, read between 28 September and 10 November 2026. We did not connect the servers to our own mail domains, so the setup steps below are the documented ones.
Our earlier list of which email APIs have an MCP server answers the yes-or-no question. This page covers what comes after: connecting a server to the client you use, and what the model is and is not allowed to do with your domain once it can send.
Why the setup decision is a deliverability decision
Connecting an email MCP server hands a language model a send button on your domain. The model does not get tired, does not notice that it already sent the same note three times, and will follow a confident instruction it found in a document. Mailbox providers will not care that a model sent the mail. They will score your domain on the bounces and complaints, and the domain that suffers is the same one that sends your invoices.
So the questions that matter for an MCP server are practical ones. Does it send, or only read? Does it run under a limit you set, or a looser one? Can the model raise its own limit? Is there a way to stop it that the model cannot undo?
Setting up AgentiSend in each client
Create an API key in the AgentiSend console first, and give it a budget lower than your plan for the first week. Then add the server.
Claude (web and desktop). Open claude.ai/directory/agentisend and click Connect, then sign in to AgentiSend and approve. To add it by hand, use Customize, then Connectors, then Add custom connector, and paste the server URL. Claude holds the OAuth connection, so there is no key to copy.
Claude Code.
claude mcp add --transport http agentisend https://api.agentisend.com/mcp \
--header "Authorization: Bearer as_YOUR_API_KEY_HERE"
Cursor. Put this in .cursor/mcp.json:
{
"mcpServers": {
"agentisend": {
"url": "https://api.agentisend.com/mcp",
"headers": { "Authorization": "Bearer as_YOUR_API_KEY_HERE" }
}
}
}
Codex CLI. The key stays in your environment and only the variable name is written to Codex's config:
codex mcp add agentisend --url https://api.agentisend.com/mcp \
--bearer-token-env-var AGENTISEND_API_KEY
ChatGPT. AgentiSend has published a ChatGPT plugin. The pages we read did not give its install steps, so follow the current flow inside ChatGPT.
Clients that only speak stdio. A local launcher proxies to the same hosted server, so the tools and limits are identical:
AGENTISEND_API_KEY=as_YOUR_API_KEY_HERE npx -y @agentisend/mcp-server
Three first prompts that cannot hurt your domain
- "Call whoami." It reports the account, what this connection may do and how much budget is left. Run it first in every new session.
- "Preflight an email to [email protected] from [email protected]."
preflight_emailruns every check a real send runs, including domain verification, suppression and budget, and sends nothing. - "Send a test to [email protected]." Simulator addresses are charged nothing, reach no mail server and never count toward your domain's bounce or complaint rate, so the model can rehearse a failure safely. Before your domain verifies, it can also send from
[email protected]to your team's sign-in addresses, up to 20 a day.
What the model can do once it is connected
AgentiSend serves 92 tools, with 46 listed by default to keep the model's tool list short and the rest reachable through list_more_tools. Useful ones include send_email, send_batch, explain_email, why_was_this_not_sent, get_agent_budget, setup_domain, wait_for_domain, list_received_emails and reply_to_email. Every tool that changes something accepts an idempotency_key, so a model that retries a timed-out call replays the first result instead of sending a second copy.
Some things are deliberately out of the model's reach:
| The model tries to | What happens |
|---|---|
| Raise its own budget or per-minute ceiling | Refused; set_limit only lowers. A person raises it in the console. |
| Approve a send the loop guard held | Refused. It can ask with request_approval and check with list_agent_actions. |
| Turn the kill switch back off | Refused for any API key; a signed-in person resumes. |
| Send to an address that unsubscribed or complained | Refused while the suppression stands. |
| Send the 4th near-identical message to one person within 60 minutes | Held for a person, returned as approval_required. |
Every refusal carries code, message, fix and retryable. A model that reads retryable: false has been told, in a field it can parse, that trying again will not help.
How eight email MCP servers compare
| Provider | Where it runs | Sends mail | Auth | Tools | Send limit on the key |
|---|---|---|---|---|---|
| AgentiSend | Hosted, plus stdio launcher | Yes | Bearer key or OAuth 2.1 | 92 (46 listed) | Yes, same as API |
| Resend | Hosted, plus local resend-mcp |
Yes | OAuth (hosted) | 16 areas, no count given | Not listed |
| AgentMail | Hosted | Yes | OAuth or x-api-key |
39, plus 2 with OAuth | Plan caps |
| MailerSend | Hosted | Yes, and SMS | Not stated | No count given | Not stated |
| Brevo | Hosted | Not stated; covers 27 modules | Bearer token | No count given | Not listed |
| Plunk | Local (@plunk/mcp) |
Yes | Secret key | 23 | Project caps |
| SMTP2GO | Hosted | Via execute-request |
Not stated | 5 | Not stated |
| Mailjet | Local | No, read only | API key | Not stated | Not applicable |
Twilio's MCP server for SendGrid exposes 2 tools that search public documentation; it does not authenticate and does not send. Mailtrap's server is a Node.js command-line utility covering sending, sandbox testing and templates, without a tool count.
The servers, one by one
1. AgentiSend
Best for: anyone giving Claude, Cursor or another client the ability to send transactional mail from their own domain without giving it the ability to burn that domain.
Beyond the tool limits above, a key has two ceilings set by a person: budget_per_period and rate_ceiling_per_minute. A limit.warning webhook fires at 80% of the budget. POST /limits/kill-all pauses every key in one request. Mail the model reads through get_received_email carries a verdict of clear, review or unavailable, and a domain can hold review mail until a person releases it; over MCP, held messages stay out of inbox reads unless the call asks for them. The domain underneath is signed with 2048-bit DKIM, and hard bounces and complaints are suppressed automatically.
The full tool catalogue with scopes is in the AgentiSend MCP guide, and accounts start free at agentisend.com.
2. Resend
Best for: existing Resend customers who want OAuth sign-in to a hosted server.
The hosted server is at mcp.resend.com, and a local one ships as resend-mcp. Its documentation lists 16 areas including emails, received emails, inboxes, broadcasts, domains and webhooks; inboxes are hosted-only.
Watch out for: no per-key send budget is listed on the pricing page.
3. AgentMail
Best for: agents that need their own inboxes with threads and drafts.
Watch out for: limits are plan-wide caps (1,000 a day on Developer), and its received-mail scanning is in Labs.
4. MailerSend
Best for: a model that should send SMS as well as email.
Watch out for: the MCP page does not say a send budget applies to the key, and send_bulk_email is exposed to the model.
5. Plunk
Best for: local use with a confirmation step. Sends to more than one recipient ask the person first unless PLUNK_ALLOW_UNCONFIRMED_SENDS is set.
Watch out for: it runs locally with a secret key, so each machine holds the key.
6. Brevo and SMTP2GO
Best for: teams already on those platforms. Brevo's hosted server covers 27 modules, from contacts to dedicated IPs; SMTP2GO's execute-request can send when the key allows it.
Watch out for: neither page says a send budget applies to the server's key.
Questions people ask
Can Claude send email on its own? Only with an email MCP server connected. With AgentiSend, Claude sends from your verified domain under the key's budget, and a person approves anything the loop guard holds.
Is a hosted MCP server safer than a local one? A hosted server keeps the key off each developer's machine and lets the provider apply account limits on every call. A local server is fine when the limits live in the API behind it.
How do I stop a model that is sending too much? Call POST /limits/kill-all with a reason, or ask the model to call it; any key may pause. Only a person can resume.
Will mail sent through MCP land in spam more often? No. The mail goes through the same pipeline as API sends, so placement depends on your domain's SPF, DKIM, DMARC and the complaint rate of what the model sends.
Sources
Documentation read 28 September to 10 November 2026: resend.com MCP documentation (mcp.resend.com, resend-mcp), docs.agentmail.to/integrations/mcp, developers.mailersend.com/mcp, developers.brevo.com/docs/mcp-protocol, docs.useplunk.com/guides/mcp-server, developers.smtp2go.com/docs/mcp, documentation.mailjet.com (installing the Mailjet MCP server), twilio.com/docs/ai/mcp, docs.mailtrap.io/for-ai-agents/tools/mcp-server. Pricing pages read 9 November 2026: resend.com/pricing, agentmail.to/pricing, mailersend.com/pricing.