Resend Email
официальныйОтправляйте электронные письма прямо из редактора с помощью Resend API.
Что можно делать с Resend Email MCP?
- Отправка и управление электронными письмами — Попросите ассистента отправлять, перечислять, получать, отменять или массово отправлять письма с вложениями, копией/скрытой копией, планированием и пользовательскими заголовками через
send_email. - Управление контактами и аудиториями — Создавайте, обновляйте или удаляйте контакты, управляйте членством в сегментах и подписками на темы, а также импортируйте контакты из CSV с помощью
create_contact. - Создание и отправка рассылок — Создавайте, планируйте, отправляйте или отменяйте кампании рассылок с плейсхолдерами персонализации и предварительным текстом через
create_broadcast. - Обработка входящих писем — Перечисляйте и читайте полученные письма, а также загружайте вложения из входящих сообщений с помощью
list_received_emails. - Управление шаблонами и доменами — Создавайте, обновляйте, публикуйте или дублируйте шаблоны писем с переменными, а также проверяйте или настраивайте домены отправителя через
create_templateиverify_domain. - Мониторинг и автоматизация — Просматривайте журналы запросов API, управляйте вебхуками и запускайте автоматизации, отправляя события для контактов с помощью
list_logsиsend_event.
Документация
MCP-сервер Resend
Подключите вашего ИИ-агента к платформе Resend. Отправляйте и получайте электронные письма, управляйте контактами, рассылками, доменами и многим другим — напрямую из любого MCP-клиента, такого как Claude, Cursor или Claude Code.
Мы предлагаем как удалённый MCP-сервер, размещённый компанией Resend, так и локальный MCP-сервер (этот пакет).
Удалённый MCP-сервер
Resend размещает MCP-сервер по адресу:
https://mcp.resend.com/mcp
Подключите любой MCP-клиент, поддерживающий удалённые серверы (Streamable HTTP). Ничего устанавливать не нужно, и не требуется запускать локальный процесс, что делает этот вариант лучшим для веб-клиентов, таких как Claude, и размещённых агентских платформ.
При подключении ваш клиент открывает окно браузера для входа в Resend и подтверждения доступа через OAuth.
Claude Code
claude mcp add --transport http resend https://mcp.resend.com/mcp
Затем выполните /mcp в Claude Code и выберите resend, чтобы завершить вход через OAuth.
Claude
В Claude (веб или десктоп) откройте Settings > Connectors > Add custom connector и введите:
https://mcp.resend.com/mcp
Cursor
Откройте палитру команд и выберите «Cursor Settings» > «MCP» > «Add new global MCP server».
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp"
}
}
}
Codex
codex mcp add resend --url https://mcp.resend.com/mcp
Copilot
Чтобы использовать GitHub Copilot в VS Code, добавьте следующее в ваш settings.json:
{
"mcp": {
"servers": {
"resend": {
"type": "http",
"url": "https://mcp.resend.com/mcp"
}
}
}
}
Windsurf
{
"mcpServers": {
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}
}
Warp
В настройках Warp перейдите в раздел Agents > MCP servers и нажмите +Add, чтобы добавить новый сервер.
{
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}
Аутентификация с помощью API-ключа
Если ваш клиент работает в среде, где вход через браузер невозможен (сервер, CI или headless-агент), передайте API-ключ Resend в качестве 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. Если вы предпочитаете запускать сервер самостоятельно, вы можете интегрировать его в любой поддерживаемый MCP-клиент с помощью npx. Вам потребуется:
Локальный сервер поддерживает два режима транспорта: 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 Settings» > «MCP» > «Add new global MCP server».
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Claude Desktop
Откройте настройки Claude Desktop > вкладка «Developer» > «Edit Config».
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Copilot
Чтобы использовать GitHub Copilot в VS Code, добавьте следующее в ваш 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 откройте Settings > Connections > MCP Servers и нажмите Add a custom MCP. Полные пошаговые инструкции см. в руководстве Devin.
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx",
"SENDER_EMAIL_ADDRESS": "onboarding@resend.dev"
}
}
}
}
Транспорт HTTP
Запустите сервер через HTTP для удалённых или веб-интеграций, например за собственным туннелем или обратным прокси, вместо использования размещённого удалённого MCP-сервера Resend. В режиме HTTP каждый клиент аутентифицируется, передавая свой API-ключ Resend в качестве Bearer-токена в заголовке Authorization.
Запустите сервер:
npx -y resend-mcp --http --port 3000
Сервер будет прослушивать http://127.0.0.1:3000 и предоставлять MCP-конечную точку по адресу /mcp с использованием Streamable HTTP.
Claude Code
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"
Cursor
Откройте палитру команд и выберите «Cursor Settings» > «MCP» > «Add new global MCP server».
{
"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. Каждый подключающийся клиент аутентифицируется с помощью собственного API-ключа Resend, передаваемого в качестве 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 только для localhost (защита от
DNS-rebinding). При развёртывании за обратным прокси или балансировщиком нагрузки,
где сервер защищён пофайловым 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: Ваш API-ключ Resend (только для режима stdio, поскольку режим HTTP использует Bearer-токен от клиента)--sender: Адрес отправителя по умолчанию с подтверждённого домена--reply-to: Адрес для ответа (reply-to) по умолчанию (можно указать несколько раз)--http: Использовать транспорт HTTP вместо stdio (по умолчанию: stdio)--port: HTTP-порт при использовании--http(по умолчанию: 3000, или переменная окруженияMCP_PORT)--host: Хост для защиты от DNS-rebinding при использовании--http(по умолчанию:127.0.0.1, илиMCP_HOST). Установите0.0.0.0, чтобы отключить проверкуHostза прокси/балансировщиком нагрузки.--allowed-hosts: Разрешённый списокHostчерез запятую при использовании--http(илиMCP_ALLOWED_HOSTS)
Переменные окружения:
RESEND_API_KEY: Ваш API-ключ Resend (обязателен для stdio, необязателен для HTTP, так как клиенты передают его через Bearer-токен)SENDER_EMAIL_ADDRESS: Адрес отправителя по умолчанию с подтверждённого домена (необязательно)REPLY_TO_EMAIL_ADDRESSES: Адреса для ответа (reply-to) через запятую (необязательно)MCP_PORT: HTTP-порт при использовании--http(необязательно)MCP_HOST: Хост для защиты от DNS-rebinding при использовании--http(необязательно)MCP_ALLOWED_HOSTS: Разрешённый списокHostчерез запятую при использовании--http(необязательно)
[!NOTE] Если вы не укажете адрес отправителя, MCP-сервер будет запрашивать его при каждом вызове инструмента.
Инструменты MCP-сервера
MCP-сервер Resend предоставляет вашему ИИ-агенту нативный доступ ко всей платформе Resend через единую интеграцию. Вы можете управлять всеми аспектами вашей почтовой инфраструктуры с помощью естественного языка.
- Электронные письма: Отправка, список, получение, отмена, обновление и пакетная отправка писем. Поддержка HTML, обычного текста, вложений (локальный файл, URL или base64), CC/BCC, reply-to, планирования, тегов, пользовательских заголовков, отправки по темам и ключей идемпотентности.
- Полученные письма: Список и чтение входящих писем. Список и загрузка вложений полученных писем.
- Шаблоны: Создание, список, получение, обновление, публикация, дублирование и удаление шаблонов писем. Поддержка составления содержимого шаблонов и плейсхолдеров
{{{VARIABLE}}}. - Контакты: Создание, список, получение, обновление и удаление контактов. Управление членством в сегментах, подписками на темы и импортом контактов из CSV. Поддержка пользовательских свойств контактов.
- Рассылки: Создание, отправка, отмена, список, получение, обновление и удаление рассылочных кампаний. Поддержка планирования, плейсхолдеров персонализации и предпросмотра текста.
- Автоматизации: Создание, список, получение, обновление и удаление автоматизаций. Просмотр запусков автоматизации.
- События: Отправка событий для запуска автоматизаций для контакта. Создание, обновление и удаление определений событий.
- Домены: Создание, список, получение, обновление, удаление и проверка доменов отправителя. Настройка отслеживания, TLS и возможностей отправки/получения. Создание и проверка утверждений домена.
- Сегменты: Создание, список, получение и удаление сегментов аудитории.
- Подавления: Список, получение, добавление и удаление записей списка подавлений — по отдельности или пакетно. Жёсткие отказы и жалобы на спам подавляются автоматически; добавляйте адреса вручную, чтобы соблюдать запросы «не связываться».
- Темы: Создание, список, получение, обновление и удаление тем подписки.
- Свойства контактов: Создание, список, получение, обновление и удаление пользовательских атрибутов контактов.
- API-ключи: Создание, список и удаление API-ключей.
- Вебхуки: Создание, список, получение, обновление и удаление вебхуков для уведомлений о событиях.
- Журналы: Список и просмотр журналов запросов 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 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:
-
Запустите 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 -
Запустите инспектор:
pnpm inspector -
В браузере (интерфейс Inspector):
- Выберите stdio (запуск процесса).
- Command:
node - Args:
dist/index.js(или полный путь кdist/index.js) - Env:
RESEND_API_KEY=re_your_key_here(или оставьте пустым, если вы уже экспортировали его в том же терминале). - Нажмите Connect, затем используйте «List tools», чтобы убедиться, что сервер работает.
Использование транспорта HTTP
-
Запустите HTTP-сервер в одном терминале:
node dist/index.js --http --port 3000 -
Запустите инспектор в другом терминале:
pnpm inspector -
В браузере (интерфейс Inspector):
- Выберите Streamable HTTP (подключение по URL).
- URL:
http://127.0.0.1:3000/mcp - Добавьте пользовательский заголовок:
Authorization: Bearer re_your_key_hereи активируйте переключатель. - Нажмите Connect, затем используйте «List tools», чтобы убедиться, что сервер работает.