Resend Email

官方

使用 Resend API 直接从你的编辑器发送电子邮件。

你可以用 Resend Email MCP 做什么?

  • 发送和管理电子邮件 — 让您的 AI 使用 sendEmail 及相关工具发送、安排或批量发送包含 HTML、附件、CC/BCC 和自定义标头的电子邮件。
  • 管理联系人和受众 — 创建、更新、导入或删除联系人,并管理他们的细分成员身份和主题订阅。
  • 创建和发送广播活动 — 起草、安排和发送包含个性化占位符和预览文本的广播电子邮件。
  • 验证和配置域名 — 添加、验证和更新发件人域名,包括跟踪、TLS 和接收设置。
  • 检查 API 日志和 Webhook — 检索并检查包含完整请求/响应体的 API 请求日志,并管理 Webhook 端点。
  • 协作处理模板和广播 — 连接到 Resend 可视化编辑器,读取并迭代模板和广播的草稿内容。

文档

Resend MCP 服务器

smithery badge npm version

将您的 AI 代理连接到 Resend 平台。直接从任何 MCP 客户端(如 Claude、Cursor 或 Claude Code)发送和接收电子邮件、管理联系人、广播、域名等。

我们提供由 Resend 托管的远程 MCP 服务器本地 MCP 服务器(此软件包)。

远程 MCP 服务器

Resend 在以下地址托管 MCP 服务器:

https://mcp.resend.com/mcp

连接任何支持远程服务器(可流式传输的 HTTP)的 MCP 客户端。无需安装任何内容,也无需运行本地进程,这使其成为基于 Web 的客户端(如 Claude)和托管代理平台的最佳选择。

连接时,您的客户端会打开一个浏览器窗口,以登录 Resend 并使用 OAuth 批准访问。

Claude Code

claude mcp add --transport http resend https://mcp.resend.com/mcp

然后在 Claude Code 中运行 /mcp 并选择 resend 以完成 OAuth 登录。

Claude

在 Claude(Web 或桌面版)中,打开 设置 > 连接器 > 添加自定义连接器 并输入:

https://mcp.resend.com/mcp

Cursor

打开命令面板,选择“Cursor 设置”>“MCP”>“添加新的全局 MCP 服务器”。

{
  "mcpServers": {
    "resend": {
      "url": "https://mcp.resend.com/mcp"
    }
  }
}

Codex

codex mcp add resend --url https://mcp.resend.com/mcp

Copilot

要在 VS Code 中使用 GitHub Copilot,请将以下内容添加到您的 settings.json

{
  "mcp": {
    "servers": {
      "resend": {
        "type": "http",
        "url": "https://mcp.resend.com/mcp"
      }
    }
  }
}

Windsurf

{
  "mcpServers": {
    "resend": {
      "serverUrl": "https://mcp.resend.com/mcp"
    }
  }
}

Warp

在 Warp 的设置中,导航到 代理 > MCP 服务器,然后点击 +添加 以添加新服务器。

{
  "resend": {
    "serverUrl": "https://mcp.resend.com/mcp"
  }
}

使用 API 密钥进行身份验证

如果您的客户端在无法进行浏览器登录的环境中运行(服务器、CI 或无头代理),请传递 Resend API 密钥作为 Bearer 令牌,而不是使用 OAuth。

Claude Code:

claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"

JSON 配置(Cursor、Windsurf 等),添加一个 Authorization 标头:

{
  "mcpServers": {
    "resend": {
      "url": "https://mcp.resend.com/mcp",
      "headers": {
        "Authorization": "Bearer re_xxxxxxxxx"
      }
    }
  }
}

本地 MCP 服务器

托管服务器运行与 NPM 上可用的 resend-mcp 相同的开源代码。如果您希望自己运行服务器,可以使用 npx 将其集成到任何受支持的 MCP 客户端中。您需要:

本地服务器支持两种传输模式:stdio(默认)和 HTTP

选择您喜欢的模式和客户端以开始使用。请记住将 re_xxxxxxxxx 替换为您的实际 API 密钥。

Stdio 传输(默认)

快速设置

为所有检测到/选定的代理和编辑器安装:

npx add-mcp resend-mcp --name resend --env "RESEND_API_KEY=re_xxxxxxxxx"

Claude Code

claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- npx -y resend-mcp

Codex

codex mcp add resend \
  --env RESEND_API_KEY=re_xxxxxxxxx \
  -- npx -y resend-mcp

Cursor

打开命令面板,选择“Cursor 设置”>“MCP”>“添加新的全局 MCP 服务器”。

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Claude Desktop

打开 Claude Desktop 设置 >“开发者”选项卡 >“编辑配置”。

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Copilot

要在 VS Code 中使用 GitHub Copilot,请将以下内容添加到您的 settings.json

{
  "mcp": {
    "servers": {
      "resend": {
        "command": "npx",
        "args": ["-y", "resend-mcp"],
        "env": {
          "RESEND_API_KEY": "re_xxxxxxxxx"
        }
      }
    }
  }
}

Gemini CLI

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

OpenCode

添加到您的 opencode.json 配置:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "resend": {
      "type": "local",
      "command": ["npx", "-y", "resend-mcp"],
      "enabled": true,
      "environment": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Windsurf

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Devin

在 Devin 中,打开 设置 > 连接 > MCP 服务器 并点击 添加自定义 MCP。有关完整的分步说明,请参阅 Devin 指南

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx",
        "SENDER_EMAIL_ADDRESS": "onboarding@resend.dev"
      }
    }
  }
}

HTTP 传输

通过 HTTP 运行服务器以进行远程或基于 Web 的集成,例如在您自己的隧道或反向代理后面,而不是使用 Resend 的托管远程 MCP 服务器。在 HTTP 模式下,每个客户端通过将其 Resend API 密钥作为 Bearer 令牌传递到 Authorization 标头中进行身份验证。

启动服务器:

npx -y resend-mcp --http --port 3000

服务器将监听 http://127.0.0.1:3000 并使用可流式传输的 HTTP 在 /mcp 公开 MCP 端点。

Claude Code

claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"

Cursor

打开命令面板,选择“Cursor 设置”>“MCP”>“添加新的全局 MCP 服务器”。

{
  "mcpServers": {
    "resend": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer re_xxxxxxxxx"
      }
    }
  }
}

您也可以通过 MCP_PORT 环境变量设置端口:

MCP_PORT=3000 npx -y resend-mcp --http

作为库使用

HTTP 传输也被导出,因此可以嵌入到另一个服务中,而不是通过 CLI 运行。每个连接的客户端使用其自己的 Resend API 密钥(作为 Bearer 令牌传递)进行身份验证。

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);

默认情况下,服务器应用仅限本地主机的 Host 验证(DNS 重新绑定保护)。当部署在反向代理或负载均衡器后面时,服务器受到每个请求的 Bearer API 密钥的保护,请将 host 设置为 0.0.0.0,这样代理转发的 Host 和负载均衡器健康检查就不会被拒绝并返回 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'] });

通过 CLI,这映射到 --host / --allowed-hosts(或 MCP_HOST / MCP_ALLOWED_HOSTS)。

选项

您可以传递其他参数来配置本地服务器:

  • --key:您的 Resend API 密钥(仅限 stdio 模式,因为 HTTP 模式使用来自客户端的 Bearer 令牌)
  • --sender:来自已验证域名的默认发件人电子邮件地址
  • --reply-to:默认回复电子邮件地址(可以多次指定)
  • --http:使用 HTTP 传输而不是 stdio(默认:stdio)
  • --port:使用 --http 时的 HTTP 端口(默认:3000,或 MCP_PORT 环境变量)
  • --host:使用 --http 时用于 DNS 重新绑定保护的主机(默认:127.0.0.1,或 MCP_HOST)。设置为 0.0.0.0 以在代理/负载均衡器后面禁用 Host 验证。
  • --allowed-hosts:使用 --http(或 MCP_ALLOWED_HOSTS)时,以逗号分隔的 Host 允许列表

环境变量:

  • RESEND_API_KEY:您的 Resend API 密钥(stdio 必需,HTTP 可选,因为客户端通过 Bearer 令牌传递它)
  • SENDER_EMAIL_ADDRESS:来自已验证域名的默认发件人电子邮件地址(可选)
  • REPLY_TO_EMAIL_ADDRESSES:以逗号分隔的回复电子邮件地址(可选)
  • MCP_PORT:使用 --http 时的 HTTP 端口(可选)
  • MCP_HOST:使用 --http 时用于 DNS 重新绑定保护的主机(可选)
  • MCP_ALLOWED_HOSTS:使用 --http 时,以逗号分隔的 Host 允许列表(可选)

[!NOTE] 如果您不提供发件人电子邮件地址,MCP 服务器将在您每次调用工具时要求您提供一个。

MCP 服务器工具

Resend 的 MCP 服务器通过单一集成,为您的 AI 代理提供对整个 Resend 平台的原生访问。您可以使用自然语言管理电子邮件基础架构的所有方面。

  • 电子邮件:发送、列出、获取、取消、更新和批量发送电子邮件。支持 HTML、纯文本、附件(本地文件、URL 或 base64)、抄送/密送、回复、计划发送、标签、自定义标头、基于主题的发送和幂等键。
  • 已接收的电子邮件:列出和阅读入站电子邮件。列出和下载已接收的电子邮件附件。
  • 模板:创建、列出、获取、更新、发布、复制和删除电子邮件模板。支持编写模板内容和 {{{VARIABLE}}} 占位符。
  • 联系人:创建、列出、获取、更新和删除联系人。管理细分成员资格、主题订阅和 CSV 联系人导入。支持自定义联系人属性。
  • 广播:创建、发送、列出、获取、更新和删除广播活动。支持计划发送、个性化占位符和预览文本。
  • 自动化:创建、列出、获取、更新和删除自动化。查看自动化的运行情况。
  • 事件:发送事件以触发联系人的自动化。创建、更新和删除事件定义。
  • 域名:创建、列出、获取、更新、删除和验证发件人域名。配置跟踪、TLS 和发送/接收功能。创建和验证域名声明。
  • 细分:创建、列出、获取和删除受众细分。
  • 禁止列表:列出、获取、添加和删除禁止列表条目,可单独或批量操作。硬退信和垃圾邮件投诉会自动被禁止;手动添加地址以遵守请勿联系请求。
  • 主题:创建、列出、获取、更新和删除订阅主题。
  • 联系人属性:创建、列出、获取、更新和删除自定义联系人属性。
  • API 密钥:创建、列出和删除 API 密钥。
  • Webhooks:创建、列出、获取、更新和删除用于事件通知的 webhooks。
  • 日志:列出和检查 API 请求日志,包括完整的请求和响应正文。
  • 编辑器:连接(和断开)Resend 仪表板中的可视化编辑器,并在协作处理广播和模板时阅读草稿内容。

本地开发

  1. 克隆此项目并构建:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
  1. 要使用本地构建,请将 npx 命令替换为本地构建的路径:

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"
      }
    }
  }
}

使用 MCP 客户端进行实时测试

在开发时,您可以在另一个编辑器中编辑代码的同时,在真实的 MCP 客户端会话中测试更改。

思路:运行 tsc --watch 以持续重新构建 dist/,并将一个单独的 MCP 客户端指向来自不同目录的已构建的 dist/index.js。当您想要获取代码更改时,重新启动 MCP 客户端会话(MCP 服务器是长期存在的 stdio 进程,不会热重载)。

以 Claude Code 为例:

  1. 运行 TypeScript 监视器以在保存时自动重新构建:

    pnpm tsc --watch
    
  2. 在一个单独的目录中,创建一个指向构建输出的 .mcp.json

    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"
          }
        }
      }
    }
    
  3. 从该目录启动 Claude Code 并使用 MCP 工具。进行代码更改后,启动一个新的 Claude Code 会话以获取新的构建。

同样的原则适用于任何 MCP 客户端——将您的测试环境与开发环境分开,使用 dist/index.js 的绝对路径,并在重新构建后重新连接 MCP 服务器。

使用 MCP Inspector 进行测试

注意: 确保您已先构建项目(请参阅上面的本地开发部分)。

使用 Stdio 传输

  1. 设置您的 API 密钥:

    export RESEND_API_KEY=re_your_key_here
    
  2. 启动检查器:

    pnpm inspector
    
  3. 在浏览器(Inspector UI)中:

    • 选择 stdio(启动一个进程)。
    • 命令: node
    • 参数: dist/index.js(或 dist/index.js 的完整路径)
    • 环境变量: RESEND_API_KEY=re_your_key_here(如果您已在同一终端中导出,则留空)。
    • 点击 连接,然后使用“列出工具”来验证服务器是否正常工作。

使用 HTTP 传输

  1. 在一个终端中启动 HTTP 服务器:

    node dist/index.js --http --port 3000
    
  2. 在另一个终端中启动检查器:

    pnpm inspector
    
  3. 在浏览器(Inspector UI)中:

    • 选择 可流式传输的 HTTP(连接到 URL)。
    • URL: http://127.0.0.1:3000/mcp
    • 添加自定义标头:Authorization: Bearer re_your_key_here 并激活切换开关。
    • 点击 连接,然后使用“列出工具”来验证服务器是否正常工作。