
The official MCP server to send emails and interact with Resend
The official MCP server to send emails and interact with Resend
·
Connect your AI agent to the Resend platform. Send and receive emails, manage contacts, broadcasts, domains, and more, directly from any MCP client like Claude, Cursor, or Claude Code.
We offer both a remote MCP server hosted by Resend and a local MCP server (this package).
Resend hosts the MCP server at:
https://mcp.resend.com/mcpConnect any MCP client that supports remote servers (Streamable HTTP). There's nothing to install and no local process to run, which makes it the best option for web-based clients like Claude and hosted agent platforms.
When you connect, your client opens a browser window to log in to Resend and approve access using OAuth.
claude mcp add --transport http resend https://mcp.resend.com/mcpThen run /mcp in Claude Code and select resend to complete the OAuth login.
In Claude (web or desktop), open Settings > Connectors > Add custom connector and enter:
https://mcp.resend.com/mcpOpen the command palette and choose "Cursor Settings" > "MCP" > "Add new global MCP server".
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp"
}
}
}codex mcp add resend --url https://mcp.resend.com/mcpTo use GitHub Copilot in VS Code, add the following to your settings.json:
{
"mcp": {
"servers": {
"resend": {
"type": "http",
"url": "https://mcp.resend.com/mcp"
}
}
}
}{
"mcpServers": {
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}
}In Warp's Settings, navigate to Agents > MCP servers, and click +Add to add a new server.
{
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}If your client runs somewhere a browser login isn't possible (a server, CI, or a headless agent), pass a Resend API key as a Bearer token instead of using OAuth.
Claude Code:
claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"JSON config (Cursor, Windsurf, and others), add an Authorization header:
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}The hosted server runs the same open-source code that's available on NPM as resend-mcp. If you prefer to run the server yourself, you can integrate it into any supported MCP client using npx. You'll need to:
The local server supports two transport modes: stdio (default) and HTTP.
Choose your preferred mode and client below to get started. Remember to replace re_xxxxxxxxx with your actual API key.
Install for all detected/selected agents and editors:
npx add-mcp resend-mcp --name resend --env "RESEND_API_KEY=re_xxxxxxxxx"claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- npx -y resend-mcpcodex mcp add resend \
--env RESEND_API_KEY=re_xxxxxxxxx \
-- npx -y resend-mcpOpen the command palette and choose "Cursor Settings" > "MCP" > "Add new global MCP server".
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}Open Claude Desktop settings > "Developer" tab > "Edit Config".
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}To use GitHub Copilot in VS Code, add the following to your settings.json:
{
"mcp": {
"servers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
}{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}Add to your opencode.json config:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"resend": {
"type": "local",
"command": ["npx", "-y", "resend-mcp"],
"enabled": true,
"environment": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}In Devin, open Settings > Connections > MCP Servers and click Add a custom MCP. See the Devin guide for the full step-by-step.
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx",
"SENDER_EMAIL_ADDRESS": "[email protected]"
}
}
}
}Run the server over HTTP for remote or web-based integrations, for example behind your own tunnel or reverse proxy, instead of using Resend's hosted remote MCP server. In HTTP mode, each client authenticates by passing their Resend API key as a Bearer token in the Authorization header.
Start the server:
npx -y resend-mcp --http --port 3000The server will listen on http://127.0.0.1:3000 and expose the MCP endpoint at /mcp using Streamable HTTP.
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"Open the command palette and choose "Cursor Settings" > "MCP" > "Add new global MCP server".
{
"mcpServers": {
"resend": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}You can also set the port via the MCP_PORT environment variable:
MCP_PORT=3000 npx -y resend-mcp --httpThe HTTP transport is also exported so it can be embedded in another service instead of being run via the CLI. Each connecting client authenticates with its own Resend API key passed as a Bearer token.
import { runHttp } from 'resend-mcp/http';
// Options are optional — pass `senderEmailAddress` / `replierEmailAddresses`
// to set defaults. Binds the port and returns the Node http.Server, exposing
// the MCP endpoint at POST/GET/DELETE /mcp and a GET /health check.
const server = await runHttp({}, 3000);By default the server applies localhost-only Host validation (DNS-rebinding
protection). When deploying behind a reverse proxy or load balancer, where the
server is protected by the per-request Bearer API key, set host to 0.0.0.0
so the proxy's forwarded Host and load-balancer health checks aren't rejected
with 403 Invalid Host:
const server = await runHttp({}, 3000, { host: '0.0.0.0' });
// or pin specific hostnames instead of disabling validation:
const server = await runHttp({}, 3000, { allowedHosts: ['mcp.example.com'] });Via the CLI this maps to --host / --allowed-hosts (or MCP_HOST /
MCP_ALLOWED_HOSTS).
You can pass additional arguments to configure the local server:
--key: Your Resend API key (stdio mode only, since 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, or MCP_PORT env var)--host: Host for DNS-rebinding protection when using --http (default: 127.0.0.1, or MCP_HOST). Set to 0.0.0.0 to disable Host validation behind a proxy/load balancer.--allowed-hosts: Comma-separated Host allow-list when using --http (or MCP_ALLOWED_HOSTS)Environment variables:
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)MCP_HOST: Host for DNS-rebinding protection when using --http (optional)MCP_ALLOWED_HOSTS: Comma-separated Host allow-list when using --http (optional)[!NOTE] If you don't provide a sender email address, the MCP server will ask you to provide one each time you call the tool.
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.
{{{VARIABLE}}} placeholders.git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run buildnpx command with the path to your local build:Claude Code (stdio):
claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- node ABSOLUTE_PATH_TO_PROJECT/dist/index.jsClaude Code (HTTP):
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"Cursor / Claude Desktop (stdio):
{
"mcpServers": {
"resend": {
"command": "node",
"args": ["ABSOLUTE_PATH_TO_PROJECT/dist/index.js"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}Cursor (HTTP):
{
"mcpServers": {
"resend": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}When developing, you can test changes in a real MCP client session while editing code in another.
The idea: run tsc --watch to continuously rebuild dist/, and point a separate MCP client at the built dist/index.js from a different directory. When you want to pick up code changes, restart the MCP client session (MCP servers are long-lived stdio processes that don't hot-reload).
Example with Claude Code:
Run the TypeScript watcher to auto-rebuild on save:
pnpm tsc --watchIn a separate directory, create a .mcp.json pointing at the build output:
mkdir -p /tmp/mcp-test// /tmp/mcp-test/.mcp.json
{
"mcpServers": {
"resend-dev": {
"command": "node",
"args": ["/absolute/path/to/resend-mcp/dist/index.js"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}Start Claude Code from that directory and use the MCP tools. After making code changes, start a new Claude Code session to pick up the new build.
The same principle applies to any MCP client — separate your test environment from your dev environment, use an absolute path to dist/index.js, and reconnect the MCP server after rebuilding.
Note: Make sure you've built the project first (see Local Development section above).
Set your API key:
export RESEND_API_KEY=re_your_key_hereStart the inspector:
pnpm inspectorIn the browser (Inspector UI):
nodedist/index.js (or the full path to dist/index.js)RESEND_API_KEY=re_your_key_here (or leave blank if you already exported it in the same terminal).Start the HTTP server in one terminal:
node dist/index.js --http --port 3000Start the inspector in another terminal:
pnpm inspectorIn the browser (Inspector UI):
http://127.0.0.1:3000/mcpAuthorization: Bearer re_your_key_here and activate the toggle.Pick your client and paste the snippet. Each one is the same server, written the way that client expects it.
claude mcp add resend --transport http https://mcp.resend.com/mcp{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp"
}
}
}code --add-mcp '{"name":"resend","url":"https://mcp.resend.com/mcp"}'Runs as a hosted service. Your client connects over the network and nothing is installed locally.
Paste this prompt into your agent. It reads this page and does the setup for you.
Read https://aiagentslisting.com/mcp/resend-mcp-server to learn what the "Resend MCP Server" MCP server does and how to install it. Add it to my coding agent's MCP configuration as documented on that page, then confirm the server connects and list the tools it exposes.Agents can also browse this directory over MCP at https://aiagentslisting.com/api/mcp
claude mcp add --transport http resend https://mcp.resend.com/mcp
claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"
claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- npx -y resend-mcp
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"npx add-mcp resend-mcp --name resend --env "RESEND_API_KEY=re_xxxxxxxxx"
npx -y resend-mcp --http --port 3000This server runs locally, so we can't read its tool list over the web yet.
Maintain this server? Claiming proves you own the listing and earns the last 4 points.
Claim this listingPaste this line near the top of your repository's README. The badge always renders the current score.
[](https://aiagentslisting.com/mcp/resend-mcp-server)The most powerful MCP Slack Server with no permission requirements, Apps support, GovSlack, DMs, Gro
MCP server that integrates the LINE Messaging API to connect an AI Agent to the LINE Official Accoun
A MCP server for the Discord integration. Enable your AI assistants to seamlessly interact with Disc
v2.19.0Release notesv2.18.0Release notesv2.17.0Release notesv2.16.0Release notesv2.15.0Release notesv2.14.0Release notesv2.13.0Release notesv2.12.0Release notesv2.11.0Release notesv2.10.1Release notesv2.10.0Release notesv2.9.0Release notesv2.8.0Release notesv2.7.1Release notesv2.7.0Release notesv2.6.3Release notesv2.6.2Release notesv2.6.1Release notesv2.6.0Release notesv2.5.0Release notesConnect to the AI Agents Listing MCP server at https://aiagentslisting.com/api/mcp using the HTTP transport and complete the sign-in when it asks. Then call the submit_review tool for the listing "resend-mcp-server" with a rating from 1 to 5 and a short note on what worked and what did not.No reviews yet
Be the first to share your experience with this tool.
The most powerful MCP Slack Server with no permission requirements, Apps support, GovSlack, DMs, Gro
Communication
MCP server that integrates the LINE Messaging API to connect an AI Agent to the LINE Official Accoun
Communication
A MCP server for the Discord integration. Enable your AI assistants to seamlessly interact with Disc
Communication
One email a week. New agents, MCP servers and skills, and what is actually getting traction.