Resend MCP Server Cursor IDE Setup 2026: Send & Debug Transactional Email from Chat
Set up the official Resend MCP server in Cursor IDE: API key config, the remote vs. local options, and sending or inspecting real transactional emails without leaving your editor.
Resend MCP Server Cursor IDE Setup 2026
Resend maintains an official MCP server (resend/resend-mcp) that gives Cursor direct access to your Resend account: sending emails, managing contacts and broadcasts, checking domain verification status, and inspecting webhook and inbound-email activity — all as tool calls instead of Dashboard clicks or curl commands.
Two connection methods exist. The remote hosted server needs no install and is the faster path for most setups; the local npx resend-mcp route is the one to reach for if your org's policy prefers a self-managed API key over a hosted connection, or if you're already comfortable with the local-server pattern from other MCP integrations.
What You Get
That's ten tool groups covering essentially the full Resend API surface, not just a "send an email" wrapper.
Why This Is Useful Mid-Development
The obvious use case — "send a test email" without switching to the Dashboard or writing a throwaway curl command — is real but not the interesting one. The bigger win is debugging: when a transactional email isn't arriving, you can ask Cursor to pull the actual send record and delivery status for a given email address, rather than guessing whether the bug is in your code, your domain's DNS, or Resend's delivery pipeline. That distinction matters, because the fix is completely different depending on which layer failed.
It's also useful for building email templates against real send history — asking Cursor to show you a recent transactional email's actual rendered output, rather than trusting what a template should produce.
Prerequisites
npx route, not the remote server)Method 1: Remote Hosted Server (No Install)
Point Cursor at Resend's hosted MCP endpoint and authenticate with your API key. This is the lower-maintenance option — no local process to keep updated, no npx cold-start delay on first call.
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp",
"headers": {
"Authorization": "Bearer re_your_api_key_here"
}
}
}
}
Restart Cursor and check the MCP panel for a connected "resend" entry.
Method 2: Local Server via npx
If you'd rather run the server locally — for instance, to keep the API key out of a synced config or to match how you've set up other API-key-based MCP servers — use the resend-mcp package:
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_your_api_key_here"
}
}
}
}
The local server also accepts --sender and --reply-to flags to set default from/reply-to addresses, so you don't have to specify them in every prompt:
"args": ["-y", "resend-mcp", "--sender", "noreply@yourdomain.com", "--reply-to", "support@yourdomain.com"]
Step: Get Your API Key
1. Log into resend.com and go to API Keys
2. Create a new key — scope it to Sending access only if you don't need contact/domain management from Cursor, since a narrower scope limits what a leaked key can do
3. Copy the key (re_...) — it's shown once
Verify the Connection
Restart Cursor after saving your config, then try in chat:
Send a test email to my.test@example.com with the subject
"MCP test" and a short plain-text body
Or, if you don't want to send a live email yet:
List the domains connected to my Resend account and their verification status
If you get real domain names and verification states back, the connection is live.
Practical Workflows
Debugging a missing transactional email
A user says they never got their password reset email. Their address is
jane@example.com. Look up recent sends to that address in Resend and tell
me the delivery status — did it bounce, get delayed, or never get queued?
Building and testing an email template
I'm writing the welcome email template for new signups. Send a test version
to my own address with realistic placeholder data, then show me the
webhook events Resend generated for that send.
Domain setup verification
I just added DNS records for a new sending domain. Check its
verification status in Resend and tell me which records are still pending.
Batch send for a small campaign
Send this announcement email to the following 12 addresses as a batch:
[list]. Use the subject "Product update" and this HTML body: [body]
Gotchas
Test vs. production sending domains behave differently. Before a domain is verified, sends from it may be restricted or routed to a sandbox — if "send a test email" silently doesn't arrive, check domain verification status before assuming the MCP connection is broken.
API key scope is doing your safety work, not the tool itself. A key with full account access can send, delete contacts, and read all activity. If you're handing Cursor broad Resend access, understand that a prompt-injection scenario (e.g., pasting untrusted content into the same chat) could in theory trigger a send you didn't intend — scope the key to only what you actually need, the same caution that applies to any write-capable MCP server.
Batch sends still count against your plan's rate limits. Resend enforces sending rate limits per account tier; looping the AI over a large contact list in one session can hit them. Ask for a smaller batch or add delay between batches if you're sending to more than a handful of addresses.
Attachments have a size ceiling. Very large attachments (multi-MB) may fail or get silently dropped depending on how they're passed (local file vs. URL vs. base64) — for anything sizable, prefer linking to a hosted file over inlining it as base64.
Troubleshooting
"Unauthorized" or 401 errors
Confirm the API key wasn't truncated when pasted, and that it hasn't been revoked from the Resend Dashboard. Regenerate if you're not sure.
Emails send successfully but never arrive
This is very rarely an MCP problem — it's almost always domain verification (SPF/DKIM not fully propagated) or the recipient's spam filtering. Ask Cursor to check the domain's verification status and the send's actual delivery event before assuming the integration is at fault.
Server doesn't show as connected
For the remote method, double-check the url and headers block matches exactly — a missing Bearer prefix on the token is a common copy-paste mistake. For the local method, confirm Node.js is on your PATH and try running npx -y resend-mcp manually in a terminal to see the raw error.
Contact or broadcast operations fail even though sending works
Some Resend API keys are scoped to sending only. If you need contact and audience management from Cursor, generate a key with the broader scope rather than assuming the tool is broken.
Frequently Asked Questions
Q: Should I use the remote server or the local npx one?
A: The remote hosted server is simpler — no local process, nothing to keep updated — and is the better default for most setups. Use the local npx resend-mcp route if you want the API key to stay in your own local config rather than passed as a header to a hosted endpoint, or if your team's existing MCP setups are all local-process-based and you'd rather stay consistent.
Q: Can this accidentally send real emails to real users?
A: Yes, if the API key is scoped for sending and you ask it to. Treat "send an email" prompts the same way you'd treat any write-capable action — be specific about recipients, and don't hand an unscoped, full-access key to a session where untrusted content (e.g., a webpage you asked Cursor to summarize) is also in context.
Q: Does this replace writing actual email-sending code in my app?
A: No — it's for development-time tasks (testing, debugging, template iteration, one-off sends), not a runtime dependency of your application. Your app still calls the Resend API or SDK directly in production; this MCP connection is a developer tool layered on top.
Q: What happens if my sending domain isn't verified yet?
A: Sends may be restricted or routed through a sandbox mode until DNS verification completes. If test emails aren't arriving, check domain status via the MCP connection or the Dashboard before assuming anything else is broken.
Q: Can I manage Resend audiences and broadcasts from Cursor, or only send individual emails?
A: Both — the official server's tool set covers contacts, segments, and broadcasts in addition to individual and batch sends, provided your API key has the necessary scope.
Q: Is there a size limit on attachments sent through this integration?
A: Yes, in line with Resend's normal API limits. Large attachments are more reliable when passed as a hosted URL rather than inlined as base64 — ask Cursor to link to a file instead of embedding it if you're hitting failures on a sizable attachment.
Related Guides
---