Resend Email

官方

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

你可以用 Resend Email MCP 做什么?

  • 发送和管理电子邮件 — 让您的助手通过 send_email 发送、列出、获取、取消或批量发送带附件、抄送/密送、定时发送及自定义标头的电子邮件。
  • 管理联系人和受众 — 使用 create_contact 创建、更新或删除联系人,管理细分成员资格和主题订阅,并从CSV导入联系人。
  • 构建和发送广播 — 通过 create_broadcast 创建、安排、发送或取消广播活动,支持个性化占位符和预览文本。
  • 处理入站电子邮件 — 使用 list_received_emails 列出和阅读收到的电子邮件,并从入站消息中下载附件。
  • 管理模板和域名 — 使用 create_templateverify_domain 创建、更新、发布或复制带变量的电子邮件模板,并验证或配置发件域名。
  • 监控和自动化 — 使用 list_logssend_event 查看API请求日志、管理Webhooks,并通过为联系人发送事件来触发自动化操作。

文档

Resend MCP 服务器

smithery badge npm version

将你的 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 仪表板中的可视化编辑器,并在协作处理广播和模板时读取草稿内容。

本地开发

  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 桌面版(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. 启动 inspector:

    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. 在另一个终端中启动 inspector:

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

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