Resend Email
официальныйОтправляйте электронные письма прямо из редактора с помощью Resend API.
Что можно делать с Resend Email MCP?
- Отправка транзакционных писем — Попросите вашего ассистента составить и отправить HTML- или текстовое письмо с вложениями, копией/скрытой копией и пользовательскими заголовками через
https://mcp.resend.com/mcp. - Управление шаблонами писем — Попросите вашего ассистента создавать, обновлять, публиковать или дублировать шаблоны с плейсхолдерами
{{{VARIABLE}}}для многоразовых кампаний. - Отслеживание доставки и вовлеченности — Попросите ассистента вывести список отправленных писем и получить метрики доставки, а также отменить запланированные отправки до их выполнения.
- Обработка входящих писем — Попросите ассистента прочитать полученные сообщения и загрузить их вложения прямо из вашего почтового ящика Resend.
- Управление контактами и аудиториями — Поручите ассистенту создавать, обновлять или сегментировать контакты, а также импортировать CSV-списки с пользовательскими свойствами.
- Мониторинг использования API — Запросите квоты на уровне аккаунта и информацию о лимитах запросов, чтобы следить за вашей почтовой инфраструктурой.
Размещённый MCP-сервер
npx add-mcp 'https://mcp.resend.com/mcp'Устанавливается в Claude Code, Codex, Cursor и другие
Документация
Resend MCP Server
Подключите своего ИИ-агента к платформе 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 (веб или десктоп) откройте Настройки > Коннекторы > Добавить пользовательский коннектор и введите:
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 через единую интеграцию. Вы можете управлять всеми аспектами вашей email-инфраструктуры с помощью естественного языка.
- Электронные письма: Отправка, список, получение, отмена, обновление, пересылка и массовая отправка писем. Получение метрик доставки и вовлеченности. Поддержка HTML, обычного текста, вложений (локальный файл, URL или base64), CC/BCC, reply-to, планирования, тегов, пользовательских заголовков, отправки на основе тем и ключей идемпотентности.
- Полученные письма: Список и чтение входящих писем. Список и загрузка вложений полученных писем.
- Шаблоны: Создание, список, получение, обновление, публикация, дублирование и удаление email-шаблонов. Поддержка составления содержимого шаблонов и плейсхолдеров
{{{VARIABLE}}}. - Контакты: Создание, список, получение, обновление и удаление контактов. Управление членством в сегментах, подписками на темы и импортом контактов из CSV. Поддержка пользовательских свойств контактов.
- Рассылки: Создание, отправка, отмена, дублирование, список, получение, обновление и удаление кампаний рассылок. Список кликов по ссылкам рассылки и ее получателей по типу события (отправлено, доставлено, открыто, кликнуто, отклонено, получена жалоба, отписано, подавлено). Поддержка планирования, плейсхолдеров персонализации и предварительного текста.
- Автоматизации: Создание, список, получение, обновление, дублирование и удаление автоматизаций. Просмотр запусков автоматизации.
- События: Отправка событий для запуска автоматизаций для контакта. Создание, обновление и удаление определений событий.
- Домены: Создание, список, получение, обновление, удаление и проверка доменов отправителя. Настройка отслеживания, TLS и возможностей отправки/получения. Создание и проверка утверждений доменов.
- Сегменты: Создание, список, получение, обновление и удаление сегментов аудитории.
- Подавления: Список, получение, добавление и удаление записей списка подавлений, по отдельности или пакетно. Жесткие отказы и жалобы на спам подавляются автоматически; добавляйте адреса вручную для соблюдения запросов «не связываться».
- Темы: Создание, список, получение, обновление и удаление тем подписки.
- Свойства контактов: Создание, список, получение, обновление и удаление пользовательских атрибутов контактов.
- API-ключи: Создание, список, обновление и удаление API-ключей.
- Вебхуки: Создание, список, получение, обновление и удаление вебхуков для уведомлений о событиях, а также просмотр их истории доставки — события, отправленные на вебхук, полезная нагрузка одного события и попытки его доставки. Повторная отправка события для постановки в очередь новой доставки и ротация секрета подписи вебхука.
- Журналы: Список и просмотр журналов API-запросов, включая полные тела запросов и ответов.
- Использование: Получение информации об использовании и квотах на уровне аккаунта: письма, контакты, сегменты, рассылки, AI-кредиты, запуски автоматизаций, домены и ограничение скорости 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 (запуск процесса).
- Команда:
node - Аргументы:
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», чтобы убедиться, что сервер работает.