Resend Email

официальный

Отправляйте электронные письма прямо из редактора с помощью Resend API.

Что можно делать с Resend Email MCP?

  • Отправляйте и управляйте электронными письмами — Попросите ИИ отправлять, планировать или массово отправлять письма с HTML, вложениями, копией/скрытой копией и пользовательскими заголовками с помощью sendEmail и связанных инструментов.
  • Управляйте контактами и аудиториями — Создавайте, обновляйте, импортируйте или удаляйте контакты, а также управляйте их членством в сегментах и подписками на темы.
  • Создавайте и отправляйте рассылочные кампании — Составляйте, планируйте и отправляйте массовые письма с плейсхолдерами персонализации и текстом предварительного просмотра.
  • Проверяйте и настраивайте домены — Добавляйте, проверяйте и обновляйте домены отправителя, включая настройки отслеживания, TLS и получения.
  • Просматривайте логи API и вебхуки — Получайте и изучайте логи запросов API с полными телами запросов/ответов, а также управляйте конечными точками вебхуков.
  • Совместно работайте над шаблонами и рассылками — Подключайтесь к визуальному редактору Resend, чтобы читать и дорабатывать черновики контента для шаблонов и рассылок.

Документация

Resend MCP-сервер

smithery badge npm version

Подключите вашего AI-агента к платформе 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-ребендинга). При развертывании за обратным прокси или балансировщиком нагрузки, где сервер защищен 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: Адрес электронной почты для ответа по умолчанию (можно указать несколько раз)
  • --http: Использовать HTTP-транспорт вместо stdio (по умолчанию: stdio)
  • --port: HTTP-порт при использовании --http (по умолчанию: 3000, или переменная окружения MCP_PORT)
  • --host: Хост для защиты от DNS-ребендинга при использовании --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: Адреса электронной почты для ответа, разделенные запятыми (опционально)
  • MCP_PORT: HTTP-порт при использовании --http (опционально)
  • MCP_HOST: Хост для защиты от DNS-ребендинга при использовании --http (опционально)
  • MCP_ALLOWED_HOSTS: Список разрешенных Host, разделенных запятыми, при использовании --http (опционально)

[!NOTE] Если вы не укажете адрес электронной почты отправителя, MCP-сервер будет запрашивать его при каждом вызове инструмента.

Инструменты MCP-сервера

MCP-сервер Resend предоставляет вашему AI-агенту нативный доступ ко всей платформе Resend через единую интеграцию. Вы можете управлять всеми аспектами вашей почтовой инфраструктуры, используя естественный язык.

  • Emails: Отправка, список, получение, отмена, обновление и пакетная отправка писем. Поддерживает HTML, обычный текст, вложения (локальный файл, URL или base64), CC/BCC, reply-to, планирование, теги, пользовательские заголовки, отправку по темам и ключи идемпотентности.
  • Received Emails: Список и чтение входящих писем. Список и загрузка вложений полученных писем.
  • Templates: Создание, список, получение, обновление, публикация, дублирование и удаление шаблонов писем. Поддерживает составление содержимого шаблона и плейсхолдеры {{{VARIABLE}}}.
  • Contacts: Создание, список, получение, обновление и удаление контактов. Управление членством в сегментах, подписками на темы и импортом контактов из CSV. Поддерживает пользовательские свойства контактов.
  • Broadcasts: Создание, отправка, список, получение, обновление и удаление кампаний рассылок. Поддерживает планирование, плейсхолдеры персонализации и предпросмотр текста.
  • Automations: Создание, список, получение, обновление и удаление автоматизаций. Просмотр запусков автоматизации.
  • Events: Отправка событий для запуска автоматизаций для контакта. Создание, обновление и удаление определений событий.
  • Domains: Создание, список, получение, обновление, удаление и подтверждение доменов отправителя. Настройка отслеживания, TLS и возможностей отправки/получения. Создание и подтверждение заявок на домены.
  • Segments: Создание, список, получение и удаление сегментов аудитории.
  • Suppressions: Список, получение, добавление и удаление записей списка подавления, индивидуально или пакетно. Жесткие возвраты и жалобы на спам подавляются автоматически; добавляйте адреса вручную, чтобы соблюдать запросы на отказ от контакта.
  • Topics: Создание, список, получение, обновление и удаление тем подписки.
  • Contact Properties: Создание, список, получение, обновление и удаление пользовательских атрибутов контактов.
  • API Keys: Создание, список и удаление API-ключей.
  • Webhooks: Создание, список, получение, обновление и удаление вебхуков для уведомлений о событиях.
  • Logs: Список и проверка журналов API-запросов, включая полные тела запросов и ответов.
  • Editor: Подключение к визуальному редактору в панели управления 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 (запустить процесс).
    • Command: node
    • Args: dist/index.js (или полный путь к dist/index.js)
    • Env: RESEND_API_KEY=re_your_key_here (или оставьте пустым, если вы уже экспортировали его в том же терминале).
    • Нажмите Connect, затем используйте «List tools», чтобы убедиться, что сервер работает.

Использование HTTP-транспорта

  1. Запустите HTTP-сервер в одном терминале:

    node dist/index.js --http --port 3000
    
  2. Запустите инспектор в другом терминале:

    pnpm inspector
    
  3. В браузере (Inspector UI):

    • Выберите Streamable HTTP (подключиться к URL).
    • URL: http://127.0.0.1:3000/mcp
    • Добавьте пользовательский заголовок: Authorization: Bearer re_your_key_here и активируйте переключатель.
    • Нажмите Connect, затем используйте «List tools», чтобы убедиться, что сервер работает.