Resend Email
官方使用 Resend API 直接从你的编辑器发送电子邮件。
你可以用 Resend Email MCP 做什么?
- 发送和管理电子邮件 — 让您的助手通过
send_email发送、列出、获取、取消或批量发送带附件、抄送/密送、定时发送及自定义标头的电子邮件。 - 管理联系人和受众 — 使用
create_contact创建、更新或删除联系人,管理细分成员资格和主题订阅,并从CSV导入联系人。 - 构建和发送广播 — 通过
create_broadcast创建、安排、发送或取消广播活动,支持个性化占位符和预览文本。 - 处理入站电子邮件 — 使用
list_received_emails列出和阅读收到的电子邮件,并从入站消息中下载附件。 - 管理模板和域名 — 使用
create_template和verify_domain创建、更新、发布或复制带变量的电子邮件模板,并验证或配置发件域名。 - 监控和自动化 — 使用
list_logs和send_event查看API请求日志、管理Webhooks,并通过为联系人发送事件来触发自动化操作。
文档
Resend MCP 服务器
将你的 AI 代理连接到 Resend 平台。直接从任何 MCP 客户端(如 Claude、Cursor 或 Claude Code)发送和接收电子邮件、管理联系人、广播、域名等。
我们同时提供由 Resend 托管的远程 MCP 服务器和本地 MCP 服务器(即本包)。
远程 MCP 服务器
Resend 在以下地址托管 MCP 服务器:
https://mcp.resend.com/mcp
连接任何支持远程服务器(Streamable 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 桌面版
打开 Claude 桌面版设置 > "开发者"选项卡 > "编辑配置"。
{
"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 模式下,每个客户端通过在 Authorization 标头中传递其 Resend API 密钥作为 Bearer 令牌来进行身份验证。
启动服务器:
npx -y resend-mcp --http --port 3000
服务器将监听 http://127.0.0.1:3000,并使用 Streamable 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);
默认情况下,服务器应用仅限 localhost 的 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时以逗号分隔的Host允许列表(或MCP_ALLOWED_HOSTS)
环境变量:
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 仪表板中的可视化编辑器,并在协作处理广播和模板时读取草稿内容。
本地开发
- 克隆此项目并构建:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
- 要使用本地构建,请将
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 桌面版(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 为例:
-
运行 TypeScript 监视器以在保存时自动重建:
pnpm tsc --watch -
在单独的目录中,创建一个指向构建输出的
.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" } } } } -
从该目录启动 Claude Code 并使用 MCP 工具。进行代码更改后,启动新的 Claude Code 会话以获取新构建。
同样的原则适用于任何 MCP 客户端——将测试环境与开发环境分开,使用指向 dist/index.js 的绝对路径,并在重建后重新连接 MCP 服务器。
使用 MCP Inspector 进行测试
注意: 请确保你已先构建项目(请参阅上面的本地开发部分)。
使用 Stdio 传输
-
设置你的 API 密钥:
export RESEND_API_KEY=re_your_key_here -
启动 inspector:
pnpm inspector -
在浏览器中(Inspector UI):
- 选择 stdio(启动进程)。
- 命令:
node - 参数:
dist/index.js(或dist/index.js的完整路径) - 环境变量:
RESEND_API_KEY=re_your_key_here(如果你已在同一终端中导出,则留空)。 - 点击 连接,然后使用"列出工具"验证服务器是否正常工作。
使用 HTTP 传输
-
在一个终端中启动 HTTP 服务器:
node dist/index.js --http --port 3000 -
在另一个终端中启动 inspector:
pnpm inspector -
在浏览器中(Inspector UI):
- 选择 Streamable HTTP(连接到 URL)。
- URL:
http://127.0.0.1:3000/mcp - 添加自定义标头:
Authorization: Bearer re_your_key_here并激活开关。 - 点击 连接,然后使用"列出工具"验证服务器是否正常工作。