Resend Email MCP

io.github.helbertparanhosPublished by GitHub account helbertparanhosv1.0.1Updated Oct 24, 2026

Complete Resend email MCP: full API coverage + debug layer (deliverability, DNS, bounces).

Overview

AI-generated overview

A local MCP server that gives an assistant full control of a Resend email account: sending, contacts, broadcasts, domains, templates, webhooks, logs and deliver

What you can do
Send, batch, schedule, preview, update and cancel emails, with attachments from base64, URLs or a restricted local directory; read sent and received emails and their attachments. Manage domains and verification, API keys, broadcasts, contacts, contact properties, segments, templates and topics. Create, update and delete webhooks, and list or search API request logs. Run diagnostics: DNS/SPF/DKIM/DMARC checks, deliverability analysis, email lifecycle inspection, bounce explanation and account audit. Call any unwrapped Resend endpoint through a raw escape hatch, and read account and domain snapshots as MCP resources.
When to use it
Useful when you want an assistant to operate a Resend account end to end, from composing and sending campaigns to managing audiences and domains. Especially handy for troubleshooting deliverability, verification and bounce problems, or for auditing an account before changing anything.
Requirements
Runs locally via npx (Node.js). Requires a Resend account and the RESEND_API_KEY environment variable. Optional settings: RESEND_FROM (verified sender), RESEND_REPLY_TO, RESEND_READONLY, RESEND_ATTACHMENTS_DIR, RESEND_BASE_URL and RESEND_MAX_RETRIES. Network access to the Resend API.
Before you install
The API key grants broad account access, including creating and deleting API keys, domains, contacts and templates, and sending email that may cost money or affect sender reputation. Sending, broadcasts and deletes are real actions; set RESEND_READONLY=true to block all mutating tools. Local file attachments stay disabled unless RESEND_ATTACHMENTS_DIR is set. Email content and recipient data go to Resend.

Installation

In SourceWeft

  1. Open Resend Email MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

resend-email-mcp

The most complete Resend MCP server — full coverage of the Resend API (emails, domains, contacts, broadcasts, templates, segments, topics, webhooks, logs) plus a unique debug/diagnostics layer no other Resend MCP offers: deliverability analysis, DNS troubleshooting, email lifecycle inspection, bounce explanation, and account auditing.

Works with Claude Code, Cursor, Claude Desktop, and any other MCP client.

[npm version] [License: MIT] [GitHub Stars] [GitHub Forks] [GitHub Issues] [Glama Quality]

[TypeScript] [Node.js] [MCP] [Claude Code] [Cursor] [Claude Desktop]

[Instagram] [YouTube] [LinkedIn] [Buy Me A Coffee] [Strat Academy]


Why this MCP

resend-email-mcpOfficial resend-mcpMinimal MCPs
Send / batch / schedule✅✅partial
Domains, contacts, broadcasts, templates, segments, topics, webhooks✅✅❌
API request logs tools✅❌❌
Debug layer (diagnose, analyze, inspect, explain, audit)✅ 7 tools❌❌
Readonly safety mode✅❌❌
Raw escape hatch for new endpoints✅❌❌
Idempotency-key support✅partial❌

75 tools + 2 resources.


Quick start

1. Get a Resend API key

Create one at https://resend.com/api-keys.

2. Add to your MCP client

Claude Code (CLI)
bash
claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxx -- npx -y resend-email-mcp
Cursor / Claude Desktop / generic (mcp.json / claude_desktop_config.json)
json
{  "mcpServers": {    "resend": {      "command": "npx",      "args": ["-y", "resend-email-mcp"],      "env": {        "RESEND_API_KEY": "re_xxxxxxxx",        "RESEND_FROM": "Acme <[email protected]>"      }    }  }}

Config file locations:

  • Claude Desktop (Windows): %APPDATA%\Claude\claude_desktop_config.json
  • Claude Desktop (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Cursor: ~/.cursor/mcp.json (or per-project .cursor/mcp.json)

Restart the client and ask: "Send a test email to [email protected]" or "Audit my Resend account."


Configuration

Env varRequiredDescription
RESEND_API_KEY✅Your Resend API key
RESEND_FROM–Default sender for send_email when from is omitted (must be a verified domain)
RESEND_REPLY_TO–Default Reply-To address
RESEND_READONLY–true blocks every mutating tool (send/create/update/delete). Safe exploration of production
RESEND_ATTACHMENTS_DIR–Directory that send_email's localPath attachments are restricted to. Unset = disk reads disabled (safe default; path traversal is blocked)
RESEND_BASE_URL–Override API base URL (default https://api.resend.com). Must be https (http only for localhost)
RESEND_MAX_RETRIES–Retries on 429/5xx (default 3)

Tools

Emails

send_email · send_batch_emails · get_email · list_emails · update_email · cancel_email · preview_email

send_email accepts attachments by base64 content, public path (URL), or localPath (a file on disk, read and base64-encoded automatically — only enabled when RESEND_ATTACHMENTS_DIR is set, and restricted to that directory). preview_email dry-runs a message — resolving the final sender, sizing attachments, and surfacing warnings — without sending.

Attachments (sent & received)

list_email_attachments · get_email_attachment · list_received_emails · get_received_email · list_received_attachments · get_received_attachment

Domains

create_domain · get_domain · list_domains · update_domain · delete_domain · verify_domain

API keys

create_api_key · list_api_keys · delete_api_key

Broadcasts

create_broadcast · get_broadcast · list_broadcasts · update_broadcast · send_broadcast · delete_broadcast

Contacts

create_contact · get_contact · list_contacts · update_contact · delete_contact · get_contact_topics · update_contact_topics · list_contact_segments · add_contact_to_segment · remove_contact_from_segment

Contact properties

create_contact_property · get_contact_property · list_contact_properties · update_contact_property · delete_contact_property

Segments

create_segment · get_segment · list_segments · delete_segment · list_segment_contacts

Templates

create_template · get_template · list_templates · update_template · delete_template · publish_template · duplicate_template

Topics

create_topic · get_topic · list_topics · update_topic · delete_topic

Webhooks

create_webhook · get_webhook · list_webhooks · update_webhook · delete_webhook

Logs

list_logs · get_log

🔍 Debug & diagnostics (the differentiator)

ToolWhat it does
diagnose_domainInspects every DNS record (SPF/DKIM/DMARC) and reports what's missing + how to fix it
analyze_deliverabilityAggregates recent sends into delivery/bounce/complaint rates with a health verdict
inspect_emailRenders one email's full lifecycle timeline and flags problems
explain_bounceClassifies a bounce (hard/soft/block) and recommends the action
audit_accountOne-shot health check of domains, keys, and deliverability
search_logsSmart filtering of API logs by status/path/recipient to find failures
test_sendSafely simulates delivered/bounced/complained via Resend sandbox addresses

Escape hatch

resend_raw — call any Resend endpoint not yet wrapped in a dedicated tool.

Resources

Beyond tools, the server exposes two read-only MCP resources so a client can pull account context without spending a tool call:

URIContent
resend://accountDomains + API keys snapshot
resend://domainsAll sending domains with verification status

Every tool is annotated with MCP hints (readOnlyHint, destructiveHint, idempotentHint) so clients can show which operations are safe and which need confirmation.


Example prompts

  • "Diagnose why acme.com isn't verified." → diagnose_domain
  • "How healthy is my email sending this week?" → analyze_deliverability
  • "What happened to email re_abc123?" → inspect_email
  • "Why did that email bounce and what should I do?" → explain_bounce
  • "Something's wrong with my Resend setup — check everything." → audit_account
  • "Send our launch newsletter to the 'beta' segment." → create_broadcast + send_broadcast

Testing safely

Use Resend's sandbox addresses (no reputation impact):

Or just run test_send and then inspect_email on the returned ID.

Enable RESEND_READONLY=true to explore a production account without any risk of sending or deleting.


Troubleshooting

This MCP is built to debug itself — when something fails, reach for the diagnostic tools instead of guessing.

Symptom / errorLikely causeWhat to run
validation_error: from domain is not verifiedYour from/RESEND_FROM domain isn't verifiedlist_domains → diagnose_domain (shows missing DNS records + fixes) → verify_domain
Emails send but never arriveDeliverability / reputation issueanalyze_deliverability then inspect_email on a sample ID
missing_api_key / invalid_api_key (HTTP 401)RESEND_API_KEY unset or wrongCheck the .env; create a key at resend.com/api-keys
restricted_api_key / not_authorized (403)Key scoped to sending-only or one domainUse a full_access key (list_api_keys to inspect)
rate_limit_exceeded (429)Too many requestsThe client auto-retries with backoff; reduce volume
daily_quota_exceededPlan send limit reachedUpgrade plan or wait for reset
A specific email bouncedInvalid/blocking recipientexplain_bounce (classifies hard/soft/block + action)
"Is anything wrong with my setup?"—audit_account (one-shot health check)
Request fails for unknown reason—search_logs with only_errors: true

Every error returned by this server includes the HTTP status, Resend's error name, and an actionable Hint line.


Local development

bash
git clone https://github.com/helbertparanhos/resend-email-mcp.gitcd resend-email-mcpnpm installnpm run buildcp .env.example .env   # add your RESEND_API_KEYnpm run inspector      # opens the MCP Inspector against the built server

License

MIT © Helbert Paranhos / Strat Academy

Built with the Model Context Protocol. Not affiliated with Resend.

Source: README.md at commit 0206871

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts