A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
The official MCP server to send emails and interact with Resend
An MCP server for the Resend platform. Send and receive emails, manage contacts, broadcasts, domains, and more — directly from any MCP client like Claude Desktop, Cursor, or Claude Code.
Create a free Resend account and create an API key. To send to addresses outside of your own, you'll need to verify your domain.
The server supports two transport modes: stdio (default) and HTTP.
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-mcp
Open 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"
}
}
}
}
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 the Authorization header.
Start the server:
npx -y resend-mcp --http --port 3000
The 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 --http
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, or MCP_PORT env var)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)[!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.
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
npx 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.js
Claude 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 --watch
In 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_here
Start the inspector:
pnpm inspector
In 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 3000
Start the inspector in another terminal:
pnpm inspector
In the browser (Inspector UI):
http://127.0.0.1:3000/mcpAuthorization: Bearer re_your_key_here and activate the toggle.A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots