What is an MCP Server?
MCP is an open protocol that standardizes how applications provide context to LLMs. Among other benefits, it provides LLMs tools to act on your behalf.What can Resend’s MCP Server do?
Resend’s MCP Server gives your AI agent native access to the full Resend platform through a single integration. You can manage all aspects of your email infrastructure using natural language.- Emails — Send, list, get, cancel, update, and batch send emails. Supports HTML, plain text, attachments (local file, URL, or base64), CC/BCC, reply-to, scheduling, tags, and topic-based sending.
- Received Emails — List and read inbound emails. List and download received email attachments.
- Contacts — Create, list, get, update, and remove contacts. Manage segment memberships and topic subscriptions. Supports custom contact properties.
- Broadcasts — Create, send, list, get, update, and remove broadcast campaigns. Supports scheduling, personalization placeholders, and preview text.
- Domains — Create, list, get, update, remove, and verify sender domains. Configure tracking, TLS, and sending/receiving capabilities.
- Segments — Create, list, get, and remove audience segments.
- Topics — Create, list, get, update, and remove subscription topics.
- Contact Properties — Create, list, get, update, and remove custom contact attributes.
- API Keys — Create, list, and remove API keys.
- Webhooks — Create, list, get, update, and remove webhooks for event notifications.
Prerequisites
The Resend MCP server is available on NPM and can be easily integrated into any supported MCP client usingnpx. To use the MCP Server, you’ll need to:
How to use the MCP Server
The server supports two transport modes: stdio (default) and HTTP. Choose your preferred mode and client below to get started. Remember to replacere_xxxxxxxxx with your actual API key.
Stdio Transport (Default)
- Claude Code
- Codex
- Cursor
- Claude Desktop
- Copilot
- Gemini CLI
- OpenCode
HTTP Transport
Run the server over HTTP for remote or web-based integrations. In HTTP mode, each client authenticates by passing their Resend API key as a Bearer token in theAuthorization header.
Start the server:
http://127.0.0.1:3000 and expose the MCP endpoint at /mcp using Streamable HTTP.
- Claude Code
- Cursor
MCP_PORT environment variable:
Options
You can pass additional arguments to configure the server:--key: Your Resend API key (stdio mode only; HTTP mode uses the Bearer token from the client)--sender: Default sender email address from a verified domain--reply-to: Default reply-to email address (can be specified multiple times)--http: Use HTTP transport instead of stdio (default: stdio)--port: HTTP port when using--http(default: 3000, orMCP_PORTenv var)
RESEND_API_KEY: Your Resend API key (required for stdio, optional for HTTP since clients pass it via Bearer token)SENDER_EMAIL_ADDRESS: Default sender email address from a verified domain (optional)REPLY_TO_EMAIL_ADDRESSES: Comma-separated reply-to email addresses (optional)MCP_PORT: HTTP port when using--http(optional)
If you don’t provide a sender email address, the MCP server will ask you to
provide one each time you call the tool.
Local Development
Clone the project and build:npx command with the path to your local build:
Stdio
- Claude Code
- Codex
- Cursor / Claude Desktop / Gemini CLI
HTTP
First, start the local HTTP server:- Claude Code
- Cursor
Testing with MCP Inspector
Make sure you’ve built the project first (see Local
Development section above).
Using Stdio Transport
Configure in the browser
In the Inspector UI:
- Choose stdio (launch a process)
- Command:
node - Args:
dist/index.js(or the full path todist/index.js) - Env:
RESEND_API_KEY=re_your_key_here(or leave blank if you already exported it in the same terminal) - Click Connect, then use “List tools” to verify the server is working