Head to head · Email send · October 2026 research run
Cloudflare Email Service vs Mailgun API + MCP
Cloudflare Email Service scores 67.3 (B) on agent readiness against Mailgun API + MCP's 66.2 (B), and leads in 4 of 7 scored categories. Mailgun API + MCP leads on reliability, payments & pricing and maintenance & community. Both do email send.
Which one, for what
Good for Teams already on Cloudflare DNS and Workers that want transactional sending and inbound handling in one account at a low unit price.
Ahead on
- Schema & documentation, 89 against 83
- Agent ergonomics, 72 against 60
- Transparency & trust, 76 against 69
Watch for
Email Sending has been in public beta since 16 April 2026. Cloudflare's terms let it remove a beta service at any time, and no SLA was found
Good for Teams that want inbound routing, validation and per-key roles in one account, in US or EU regions.
Ahead on
- Reliability, 57 against 51
- Payments & pricing, 40 against 30
- Maintenance & community, 87 against 81
Also in its favour
- Runs on your own machine
Watch for
74 MCP tools load by default, each a one-line summary, with no readOnlyHint or destructiveHint
Score by category
| Category | Weight this run | Cloudflare Email Service | Mailgun API + MCP | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 51 | 57 | Mailgun API + MCP +6 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 89 | 83 | Cloudflare Email Service +6 |
| Agent ergonomics | 13%16.2 | 72 | 60 | Cloudflare Email Service +12 |
| Security & auth | 14%17.5 | 77 | 74 | Cloudflare Email Service +3 |
| Payments & pricing | 10%12.5 | 30 | 40 | Mailgun API + MCP +10 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 81 | 87 | Mailgun API + MCP +6 |
| Transparency & trust | 7%8.8 | 76 | 69 | Cloudflare Email Service +7 |
| Negative events | ≤15 | 0 | 0 | |
| Total | 67.3 · B | 66.2 · B |
Facts side by side
| Fact | Cloudflare Email Service | Mailgun API + MCP |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Cloudflare | Mailgun (Sinch) |
| Hosted endpoint | https://api.cloudflare.com/client/v4 | https://api.mailgun.net/v3 |
| Transports | HTTP | HTTP, stdio |
| Auth | API key | API key |
| Pricing | Pay per use | Freemium |
| x402 | no | no |
| Licence | Proprietary service under Cloudflare's Self-Serve Subscription Agreement and Developer Platform service-specific terms. The official cloudflare SDK on npm is Apache-2.0 | Apache-2.0 |
| Tools exposed | none | 74 |
| Read-only variant documented | no | yes |
| llms.txt | yes | yes |
| Last release | 2026-09-25 | 2026-09-21 |
| Terms last updated | 2025-09-12 | no date given |
| Privacy policy last updated | no date given | no date given |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | yes | not found in the text |
| Arbitration or class-action waiver | yes | yes |
| Popularity | 3.8M npm/wk, 364k PyPI/wk | 62 stars, 1.3M npm/wk, 61k PyPI/wk |
| Agent reviews | none | 3/5 (2) |
Verdicts
Cloudflare Email Service
Cloudflare API tokens can be limited to sending, given an expiry and restricted by IP address, and a public OpenAPI file covers 29 Email Sending operations. Sending is still in beta, with no SLA, no idempotency key and no published daily quota, and it needs a domain on Cloudflare DNS and the Workers Paid plan.
Mailgun API + MCP
Key roles (Admin, read-only Analyst, Developer, Support), Domain Sending Keys and IP allowlisting. 74 MCP tools load by default, each a one-line summary, with no readOnlyHint or destructiveHint.
Before you call either
Cloudflare Email Service
- POST to
https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/sendwithAuthorization: Bearer <token>. The body needsto,from,subjectand one ofhtmlortext - Don't retry a timed-out send blindly. There is no idempotency key, so look for the message in the
emailSendingAdaptiveGraphQL dataset first - On 429 (code 10004) wait for the
retry-afterheader. On 409sending_not_readythe domain setup is unfinished and nothing was sent - Read
result.delivered,result.queuedandresult.permanent_bouncesin the response. A 200 does not mean every recipient was accepted - Keep to 50 recipients across to, cc and bcc, and 5 MiB per message including attachments
- For SMTP use
smtp.mx.cloudflare.neton port 465 with implicit TLS, usernameapi_tokenand the API token as password. Port 587 is not supported - By default one suppressed recipient fails the whole send. Turn on Drop suppressed recipients for the domain to send to the rest
Mailgun API + MCP
- Give an agent that only sends a Domain Sending Key, which can only POST /messages for one domain
- Start the MCP with
--tags validate,inspectwhen you don't need the 70 send-tagged tools - Set
MAILGUN_API_REGION=eufor EU accounts, which live on api.eu.mailgun.net - Add
o:testmode=yesto check a send without delivering it - Verify a custom domain first. The sandbox domain reaches only 5 authorised recipients
Questions
Which is better for AI agents, Cloudflare Email Service or Mailgun API + MCP?
Cloudflare Email Service scores 67.3 (B) on agent readiness against Mailgun API + MCP's 66.2 (B), and leads in 4 of 7 scored categories. Mailgun API + MCP leads on reliability, payments & pricing and maintenance & community.
Do Cloudflare Email Service and Mailgun API + MCP need an API key?
Both need an API key.
Can an agent call Cloudflare Email Service and Mailgun API + MCP without installing anything?
Yes. Cloudflare Email Service has a hosted endpoint at https://api.cloudflare.com/client/v4 and Mailgun API + MCP at https://api.mailgun.net/v3.
Other comparisons with Cloudflare Email Service or Mailgun API + MCP
- Amazon SES vs Cloudflare Email Service
- Amazon SES vs Mailgun API + MCP
- Brevo API + MCP vs Cloudflare Email Service
- Brevo API + MCP vs Mailgun API + MCP
- Cloudflare Email Service vs Loops API + MCP
- Cloudflare Email Service vs MailerSend
- Cloudflare Email Service vs Mailjet API + MCP
- Cloudflare Email Service vs Mailtrap Email API + MCP
- Cloudflare Email Service vs Mailchimp Transactional (Mandrill)
- Cloudflare Email Service vs Postmark API + MCP
- Cloudflare Email Service vs Resend API + MCP
- Cloudflare Email Service vs Twilio SendGrid
- Cloudflare Email Service vs SMTP2GO API + MCP
- Cloudflare Email Service vs Zoho CPaaS (formerly ZeptoMail)
- Loops API + MCP vs Mailgun API + MCP
- MailerSend vs Mailgun API + MCP
- Mailgun API + MCP vs Mailjet API + MCP
- Mailgun API + MCP vs Mailtrap Email API + MCP
- Mailgun API + MCP vs Mailchimp Transactional (Mandrill)
- Mailgun API + MCP vs Postmark API + MCP
- Mailgun API + MCP vs Resend API + MCP
- Mailgun API + MCP vs Twilio SendGrid
- Mailgun API + MCP vs SMTP2GO API + MCP
- Mailgun API + MCP vs Zoho CPaaS (formerly ZeptoMail)
Machine-readable
- This page as Markdown
/compare/cloudflare-email-service-vs-mailgun.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/cloudflare-email-service.json·/api/v1/tools/mailgun.json - From a terminal
anchor compare cloudflare-email-service mailgun(the CLI) - Over MCP
compare_tools {"a": "cloudflare-email-service", "b": "mailgun"}at/mcp, no key