Mailtrap
официальныйИнтегрируется с Mailtrap Email API.
Что можно делать с Mailtrap MCP?
- Отправка транзакционных писем — Попросите ассистента отправить транзакционное письмо с встроенным содержимым или по шаблону через
send-email. - Тестирование писем в песочнице — Отправляйте тестовые письма на адрес в песочнице и проверяйте содержимое, спам-оценки и HTML-анализ.
- Мониторинг журналов доставки — Ищите журналы писем и просматривайте историю событий для отладки проблем с доставкой с помощью
list-email-logs. - Управление шаблонами писем — Создавайте, просматривайте, обновляйте или удаляйте шаблоны с помощью команд на естественном языке.
- Анализ статистики отправки — Получайте показатели доставки, отказов, открытий и кликов за любой период с помощью
get-sending-stats. - Управление доменами отправителя — Просматривайте, создавайте и настраивайте домены отправителя с проверкой DNS и отслеживанием кликов.
Документация
Официальный MCP-сервер Mailtrap
Официальный MCP-сервер для Mailtrap — платформы доставки электронной почты. Он подключает ваш аккаунт Mailtrap к Claude, Cursor, VS Code и другим MCP-совместимым ИИ-ассистентам.
Отправляйте транзакционные и массовые письма, безопасно тестируйте сообщения в Email Sandbox, управляйте шаблонами, контактами, доменами отправки и вебхуками, просматривайте журналы писем и статистику доставки, устраняйте проблемы с доставляемостью и управляйте ресурсами аккаунта — всё с помощью запросов на естественном языке.
Возможности
- Email API и SMTP — Отправка транзакционных и массовых писем, включая пакетные и шаблонные сообщения.
- Тестирование писем — Тестирование сообщений в Email Sandbox и проверка содержимого, заголовков, вложений, спам-оценок и совместимости с HTML-клиентами.
- Мониторинг доставки — Поиск в журналах писем, просмотр истории событий и анализ показателей доставки, отказов, открытий, кликов и спама.
- Инфраструктура электронной почты — Управление доменами отправки, DNS-верификацией, вебхуками и подавлениями.
- Контакты — Управление контактами, списками, пользовательскими полями и событиями, включая импорт и экспорт.
- Управление аккаунтом — Просмотр использования биллинга и управление доступом, разрешениями, API-токенами и субрасчетами.
Поддерживаемые MCP-клиенты
Работает с Claude Desktop, Claude Code, Cursor, VS Code и любым другим MCP-совместимым клиентом. Инструкции по настройке для каждого приведены ниже.
Предварительные требования
Перед использованием этого MCP-сервера вам необходимо:
- Создать аккаунт Mailtrap
- Подтвердить ваш домен
- Получить API-токен в настройках API Mailtrap
- Получить ваш Account ID в управлении аккаунтом Mailtrap
Требуемые переменные окружения:
MAILTRAP_API_TOKEN— Требуется для всех функцийMAILTRAP_ACCOUNT_ID— Требуется для шаблонов, статистики, журналов писем, просмотра списка/сообщений песочницы, доменов отправки и подавлений. Необязательна только для инструментов отправки (send-email, send-sandbox-email и инструментов batch-send-*), инструментов email-кампаний, инструментов информации о компании и инструментов отказа от отслеживания.
Необязательные (можно передавать как параметры инструментов):
DEFAULT_FROM_EMAIL— Отправитель по умолчанию, когдаfromне указан для send-email, send-sandbox-email или инструментов batch-send-* (где он заполняетbase.from). Позволяет переключать отправителя для каждого вызова через параметрfrom.MAILTRAP_SANDBOX_ID— ID песочницы по умолчанию для инструментов песочницы, когдаsandbox_idне указан. Позволяет переключаться между песочницами для каждого вызова через параметрsandbox_id.MAILTRAP_TEST_INBOX_ID— ID тестового инбокса по умолчанию для инструментов песочницы, когдаtest_inbox_idне указан. Позволяет переключаться между инбоксами для каждого вызова через параметрtest_inbox_id. Устаревший псевдоним дляMAILTRAP_SANDBOX_ID, по-прежнему используется как запасной вариант.MAILTRAP_ORGANIZATION_ID— Требуется для инструментов организации (list-sub-accounts,create-sub-account).MAILTRAP_ORGANIZATION_API_TOKEN— API-токен с областью организации. Требуется для инструментов организации (отдельно отMAILTRAP_API_TOKEN).
Быстрая установка
Smithery CLI
Smithery — это установщик реестра и менеджер для MCP-серверов, который работает со всеми ИИ-клиентами.
npx @smithery/cli install mailtrap
Smithery автоматически обрабатывает конфигурацию клиента и предоставляет интерактивный процесс настройки. Это самый простой способ начать работу с MCP-серверами локально.
Настройка
Claude Desktop
Используйте MCPB для установки сервера Mailtrap. Эти файлы можно найти в Releases.
Скачайте файл .MCPB и откройте его. Если у вас установлен Claude Desktop — он откроет его и предложит настроить.
Claude Desktop или Cursor
Добавьте следующую конфигурацию:
{
"mcpServers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Если вы используете asdf для управления Node.js, вы должны использовать абсолютный путь к исполняемому файлу (пример для Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Расположение файла конфигурации Claude Desktop
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Расположение файла конфигурации Cursor
Mac: ~/.cursor/mcp.json
Windows: %USERPROFILE%\.cursor\mcp.json
VS Code
Ручное изменение конфигурации
Выполните в палитре команд: Preferences: Open User Settings (JSON)
Затем в файле настроек добавьте следующую конфигурацию:
{
"mcp": {
"servers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
[!TIP] Не забудьте перезапустить ваш MCP-сервер после изменения раздела "env".
MCP Bundle (MCPB)
Для простой установки в хостах, поддерживающих MCP Bundles, вы можете распространять файл пакета .mcpb.
# Build TypeScript and pack the MCPB bundle
npm run mcpb:pack
# Inspect bundle metadata
npm run mcpb:info
# Sign the bundle for distribution (optional)
npm run mcpb:sign
Это создаёт mailtrap-mcp.mcpb с использованием репозитория manifest.json и собранных артефактов в dist/.
Использование
После настройки вы можете попросить агента отправлять письма и управлять шаблонами, например:
Операции отправки писем:
- "Отправь письмо на john.doe@example.com с темой 'Встреча завтра' и дружеским напоминанием о нашей предстоящей встрече."
- "Напиши sarah@example.com об обновлении проекта и скопируй команду на team@example.com"
- "Отправь приветственный шаблон (uuid
b81aabcd-1a1e-41cf-91b6-eca0254b3d96) на new@example.com с переменными{ name: 'Alex' }" - "Отправь письмо в песочницу на test@example.com с темой 'Тестовый шаблон', чтобы просмотреть, как выглядит наше приветственное письмо"
Журналы писем (отладка доставки):
- "Покажи мои недавние журналы отправленных писем"
- "Покажи журналы писем, отправленных на user@example.com"
- "Получи сообщение журнала для ID abc-123-uuid, чтобы проверить статус доставки"
Статистика отправки:
- "Получи статистику отправки за январь 2025"
- "Покажи показатели доставки по доменам за прошлый месяц"
- "Какая у меня статистика писем по категориям с 2025-01-01 по 2025-01-31?"
Операции с песочницей:
- "Получи все сообщения из моего инбокса песочницы"
- "Покажи первую страницу сообщений песочницы"
- "Найди сообщения, содержащие 'test', в моём инбоксе песочницы"
- "Покажи детали сообщения песочницы с ID 5159037506"
Операции с шаблонами:
- "Перечисли все шаблоны писем в моём аккаунте Mailtrap"
- "Создай новый шаблон письма под названием 'Приветственное письмо' с темой 'Добро пожаловать на нашу платформу!'"
- "Обнови шаблон с ID 12345, изменив тему на 'Обновлённое приветственное сообщение'"
- "Удали шаблон с ID 67890"
Домены отправки:
- "Перечисли мои домены отправки"
- "Получи домен отправки с ID 3938"
- "Создай домен отправки для example.com"
- "Включи отслеживание кликов для домена отправки 3938"
- "Удали домен отправки 3938"
- "Получи домен отправки 3938 с инструкциями по настройке DNS"
- "Покажи информацию о компании для домена отправки 3938"
- "Установи информацию о компании для домена 3938: Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com"
- "Измени город в информации о компании для домена 3938 на New York"
Подавления:
- "Перечисли подавления для bounced@example.com"
- "Подави bounced@example.com в транзакционном потоке домена 3938"
- "Покажи все подавленные email-адреса"
- "Почему user@example.com не получает мои письма?"
- "Удали user@example.com из списка подавлений"
Отказы от отслеживания:
- "Прекрати отслеживать открытия и клики для privacy@example.com на домене 3938"
- "Перечисли всех, кто отказался от отслеживания"
Контакты и списки:
- "Добавь john.doe@example.com в мой список рассылки новостей"
- "Покажи все мои списки контактов"
- "Создай поле контакта под названием 'signup_source' для отслеживания источника контактов"
- "Обнови контакт john.doe@example.com, установив их план на 'pro'"
- "Импортируй контакты из этого CSV в мой список онбординга"
- "Экспортируй все контакты из моего списка рассылки новостей"
- "Запиши событие 'trial_started' для контакта john.doe@example.com"
Вебхуки:
- "Перечисли все вебхуки, настроенные в моём аккаунте"
- "Создай вебхук, указывающий на https://example.com/hooks/mailtrap, для событий отказов и спама"
- "Обнови вебхук 4821, чтобы он также отправлял события доставки"
- "Удали вебхук 4821"
Аккаунт и биллинг:
- "Каково моё текущее использование биллинга в этом месяце?"
- "Сколько писем у меня осталось в моём плане?"
- "Перечисли всех, у кого есть доступ к этому аккаунту Mailtrap"
- "Покажи ресурсы разрешений, доступные в моём аккаунте"
API-токены:
- "Перечисли все API-токены в моём аккаунте"
- "Создай новый API-токен для staging-окружения"
- "Сбрось API-токен с ID 1234"
- "Удали неиспользуемый API-токен 1234"
Организация и субрасчеты:
- "Перечисли все субрасчеты в моей организации"
- "Создай новый субрасчет для клиентского проекта 'Acme Corp'"
Доступные инструменты
send-email
Отправляет транзакционное письмо через Mailtrap. Поддерживает два взаимоисключающих режима — встроенное содержимое (subject + text/html) или на основе шаблона (template_uuid).
Параметры:
from(необязательно): Отправитель как{ email, name? }(простая строка email также принимается во время выполнения). Если не указан, используетсяDEFAULT_FROM_EMAIL.to(необязательно): Массив получателей как объекты{ email, name? }(простые строки email или один не-массивный адрес также принимаются во время выполнения). Необязательно, если указанccилиbcc; по крайней мере один изto/cc/bccдолжен содержать получателя.cc(необязательно): Массив получателей копии (CC) как объекты{ email, name? }(простые строки email также принимаются во время выполнения).bcc(необязательно): Массив получателей скрытой копии (BCC) как объекты{ email, name? }(простые строки email также принимаются во время выполнения).subject(условно): Тема письма. Требуется для встроенных отправок; должен быть опущен, когда установленtemplate_uuid.text(условно): Текст тела письма. Требуется (вместе сhtmlили вместо него) для встроенных отправок; должен быть опущен, когда установленtemplate_uuid.html(условно): HTML-версия тела письма. Требуется (вместе сtextили вместо него) для встроенных отправок; должен быть опущен, когда установленtemplate_uuid.category(необязательно): Категория письма для отслеживания и аналитики. Должна быть опущена, когда установленtemplate_uuid.template_uuid(необязательно): Использовать шаблон письма Mailtrap вместо встроенного содержимого. Когда установлен,subject/text/html/categoryдолжны быть опущены (согласно API Mailtrap).template_variables(необязательно): Объект переменных, подставляемых в шаблон, на который ссылаетсяtemplate_uuid. Разрешён только вместе сtemplate_uuid.
batch-send-transactional-email
Отправляет пакет транзакционных писем одним вызовом API Mailtrap (поток отправки по умолчанию). Общие поля помещаются в base; переопределения для каждого получателя — в requests[]. Каждый запрос должен включать по крайней мере одного получателя через to, cc или bcc. Та же взаимоисключаемость встроенного содержимого и шаблона, что и в send-email — проверяется после объединения базовых данных с каждым запросом.
Параметры:
base(необязательно): Объект с полями, общими для всего пакета.from(необязательно): Отправитель в виде{ email, name? }(простая строка с email также принимается во время выполнения). Если не указано, используетсяDEFAULT_FROM_EMAIL.reply_to(необязательно): Адрес для ответа (Reply-to).subject/text/html/category(необязательно, встроенный режим): Содержимое по умолчанию для каждого запроса.template_uuid/template_variables(необязательно, режим шаблона): Шаблон по умолчанию + переменные. Взаимоисключающие со встроенными полями.custom_variables(необязательно): Пользовательские переменные по умолчанию (со строковыми значениями).headers(необязательно): Пользовательские заголовки по умолчанию.
requests(обязательно): Непустой массив сообщений для каждого получателя. Каждая запись содержит:to(необязательно): Массив получателей в виде объектов{ email, name? }(простые строки с email или один адрес без массива также принимаются во время выполнения). Необязательно, если указаныccилиbcc; по крайней мере одно из полейto/cc/bccдолжно содержать получателя.cc,bcc,reply_to(необязательно).- Встроенные (
subject/text/html/category) или шаблонные (template_uuid/template_variables) переопределения; любое пропущенное поле возвращается к соответствующему значению изbase. custom_variables,headers(необязательно).
batch-send-bulk-email
Отправляет пакет массовых писем через bulk-stream API Mailtrap. Та же структура base + requests[], правила валидации и правила встроенного/шаблонного режима, что и в batch-send-transactional-email — единственное отличие в том, что этот инструмент направляет вызов через bulk-эндпоинт вместо транзакционного. См. параметры выше.
list-email-logs
Выводит журналы отправленных писем (историю доставки) с необязательной пагинацией и фильтрами. Используйте для отладки проблем с доставкой прямо из IDE.
Параметры:
search_after(необязательно): Курсор пагинации из поляnext_page_cursorпредыдущего ответаsent_after(необязательно): Дата/время в формате ISO 8601; только письма, отправленные после этого времениsent_before(необязательно): Дата/время в формате ISO 8601; только письма, отправленные до этого времениfrom_email(необязательно): Фильтр по email отправителя; используется сfrom_operator(по умолчанию: ci_equal)to_email(необязательно): Фильтр по email получателя; используется сto_operator(по умолчанию: ci_equal)status(необязательно): Фильтр по статусу доставки: delivered, not_delivered, enqueued, opted_out; используется сstatus_operator(по умолчанию: equal)subject(необязательно): Фильтр по теме письма; используется сsubject_operator(по умолчанию: ci_contain). Используйтеsubject_operator: empty/not_empty для фильтрации по наличию темы.sending_domain_id(необязательно): Фильтр по ID домена отправки (число); используется сsending_domain_id_operator(по умолчанию: equal)sending_stream(необязательно): Фильтр по потоку: transactional или bulk; используется сsending_stream_operator(по умолчанию: equal)events(необязательно): Фильтр по типу(ам) события: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; используется сevents_operator(include_event / not_include_event)clicks_count/opens_count(необязательно): Фильтр по количеству кликов/открытий; используется с*_operator: equal, greater_than, less_thanclient_ip/sending_ip(необязательно): Фильтр по IP; используется с*_operator: equal, not_equal, contain, not_containemail_service_provider_response(необязательно): Фильтр по тексту ответа провайдера; используется с*_operator(ci_contain и т.д.)email_service_provider(необязательно): Фильтр по провайдеру (точное совпадение); используется с*_operator: equal, not_equalrecipient_mx(необязательно): Фильтр по MX получателя; используется сrecipient_mx_operator(ci_contain и т.д.)category(необязательно): Фильтр по категории письма; используется сcategory_operator: equal, not_equal
Все параметры необязательны.
get-email-log-message
Получает одно сообщение из журнала писем по ID (UUID): читаемое резюме (от, кому, тема, время отправки, статус, категория, поток, вовлечённость, контекст доставки), затем подробную историю событий. При необходимости, с помощью include_content: true вы также можете загрузить и показать тело сообщения (HTML и обычный текст), когда Mailtrap предоставляет URL исходного сообщения.
Параметры:
message_id(обязательно): UUID сообщения из журнала писем (из ответа об отправке или list-email-logs). Используйтеlist-email-logsдля поиска ID сообщений.include_content(необязательно): Когда установленtrue, загружает исходный EML (если доступенraw_message_url) и добавляет разобранные секции HTML и обычного текста, аналогично show-sandbox-email-message.
get-sending-stats
Получение статистики отправки писем (доставка, отказы, открытия, клики, спам) за диапазон дат. При необходимости с разбивкой по домену, категории, почтовому провайдеру или дате. Проверяйте показатели доставки, не покидая редактор.
Параметры:
start_date(обязательно): Начальная дата диапазона статистики (ГГГГ-ММ-ДД)end_date(обязательно): Конечная дата диапазона статистики (ГГГГ-ММ-ДД)breakdown(необязательно): Как разбить статистику:aggregated(по умолчанию),by_domain,by_category,by_email_service_providerилиby_datesending_domain_ids(необязательно): Ограничить результаты этими ID доменов отправки (массив целых чисел)sending_streams(необязательно): Ограничить поtransactionalи/илиbulk(массив строк)categories(необязательно): Ограничить этими категориями писем (массив строк)email_service_providers(необязательно): Ограничить этими провайдерами, например Google, Yahoo, Outlook (массив строк)
create-template
Создаёт новый шаблон письма в вашем аккаунте Mailtrap.
Параметры:
name(обязательно): Название шаблонаsubject(обязательно): Тема письмаhtml(илиtextобязательно): HTML-содержимое шаблонаtext(илиhtmlобязательно): Версия шаблона в виде обычного текстаcategory(необязательно): Категория шаблона (по умолчанию "General")
list-templates
Выводит список всех шаблонов писем в вашем аккаунте Mailtrap.
Параметры:
- Параметры не требуются
get-template
Получает один шаблон письма по ID, включая тему, категорию и HTML/текстовое содержимое.
Параметры:
template_id(обязательно): ID шаблона для получения
update-template
Обновляет существующий шаблон письма.
Параметры:
template_id(обязательно): ID шаблона для обновленияname(необязательно): Новое название шаблонаsubject(необязательно): Новая тема письмаhtml(необязательно): Новое HTML-содержимое шаблонаtext(необязательно): Новая версия шаблона в виде обычного текстаcategory(необязательно): Новая категория шаблона
[!NOTE] При вызове update-template для выполнения обновления необходимо указать хотя бы одно обновляемое поле (name, subject, html, text или category).
delete-template
Удаляет существующий шаблон письма.
Параметры:
template_id(обязательно): ID шаблона для удаления
send-sandbox-email
Отправляет письмо в ваш тестовый inbox Mailtrap для целей разработки и тестирования. Это идеально подходит для тестирования шаблонов писем без отправки реальным получателям. Поддерживает те же два режима, что и send-email — встроенное содержимое или на основе шаблона (template_uuid).
Параметры:
test_inbox_id(необязательно): ID тестового inbox Mailtrap. Обязателен, если не заданMAILTRAP_TEST_INBOX_ID; передавайте при каждом вызове для указания конкретного inbox.from(необязательно): Отправитель в виде{ email, name? }(простая строка с email также принимается во время выполнения). Если не указано, используетсяDEFAULT_FROM_EMAIL.to(необязательно): Массив получателей в виде объектов{ email, name? }(простые строки с email в массиве или строка с email, разделёнными запятыми, также принимаются во время выполнения). Необязательно, если указаныccилиbcc; по крайней мере одно из полейto/cc/bccдолжно содержать получателя.cc(необязательно): Массив получателей копии (CC) в виде объектов{ email, name? }(простые строки с email также принимаются во время выполнения).bcc(необязательно): Массив получателей скрытой копии (BCC) в виде объектов{ email, name? }(простые строки с email также принимаются во время выполнения).subject(условно): Тема письма. Обязательна для встроенной отправки; должна быть опущена, когда заданtemplate_uuid.text(условно): Текст письма. Обязателен (вместе сhtmlили вместо него) для встроенной отправки; должен быть опущен, когда заданtemplate_uuid.html(условно): HTML-версия тела письма. Обязательна (вместе сtextили вместо него) для встроенной отправки; должна быть опущена, когда заданtemplate_uuid.category(необязательно): Категория письма для отслеживания. Должна быть опущена, когда заданtemplate_uuid.template_uuid(необязательно): Использовать шаблон письма Mailtrap вместо встроенного содержимого. Когда задан,subject/text/html/categoryдолжны быть опущены.template_variables(необязательно): Объект переменных, подставляемых в шаблон, на который ссылаетсяtemplate_uuid. Разрешён только вместе сtemplate_uuid.
batch-send-sandbox-email
Отправляет пакет писем в ваш тестовый inbox Mailtrap одним вызовом API, без доставки реальным получателям. Та же структура base + requests[], правила валидации и правила встроенного/шаблонного режима, что и в batch-send-transactional-email — отличие в том, что этот инструмент направляет вызов через sandbox-эндпоинт для одного тестового inbox.
Параметры:
sandbox_id(необязательно): ID sandbox (тестового inbox) Mailtrap. Обязателен, если не заданMAILTRAP_SANDBOX_ID; передавайте при каждом вызове для указания конкретного sandbox.base(необязательно),requests(обязательно): См.batch-send-transactional-emailвыше.
[!NOTE] Для sandbox-инструментов укажите
test_inbox_idв вызове инструмента или задайте переменную окруженияMAILTRAP_TEST_INBOX_ID. Вы можете переключаться между inbox при каждом вызове, передаваяtest_inbox_id. Инструменты, принимающиеsandbox_id, сначала используютMAILTRAP_SANDBOX_ID.
get-sandbox-messages
Получает список сообщений из вашего тестового inbox Mailtrap. Полезно для проверки, какие письма были получены в вашем sandbox во время тестирования.
Параметры:
page(необязательно): Номер страницы для пагинации (минимум: 1)last_id(необязательно): Пагинация с использованием ID последнего сообщения. Возвращает сообщения после указанного ID сообщения (минимум: 1)search(необязательно): Поисковый запрос для фильтрации сообщений
[!NOTE] Все параметры необязательны. Если ни один не указан, будет возвращена первая страница сообщений из inbox. Используйте page для традиционной пагинации, last_id для курсорной пагинации или search для фильтрации сообщений по содержимому.
show-sandbox-email-message
Показывает подробную информацию и содержимое конкретного письма из вашего тестового inbox Mailtrap, включая HTML и текстовое содержимое.
Параметры:
message_id(обязательно): ID сообщения sandbox для получения
[!NOTE] Сначала используйте
get-sandbox-messages, чтобы получить список сообщений и их ID, затем используйте этот инструмент для просмотра полного содержимого конкретного сообщения.
get-sandbox-project
Получает sandbox-проект по ID, включая его inbox и количество писем.
Параметры:
project_id(обязательно): ID проекта для получения
update-sandbox-project
Переименовывает существующий sandbox-проект.
Параметры:
project_id(обязательно): ID проекта для обновленияname(обязательно): Новое название проекта (2–100 символов)
list-sandboxes
Выводит список всех sandbox, доступных для API-токена, во всех проектах.
Параметры:
- Параметры не требуются
mark-sandbox-as-read
Помечает все сообщения в sandbox как прочитанные.
Параметры:
sandbox_id(обязательно): ID sandbox для выполнения действия
reset-sandbox-credentials
Reset the SMTP credentials for a sandbox. Returns the new username/password.
Parameters:
sandbox_id(required): ID of the sandbox to act on
enable-sandbox-email-address
Enable the receive-by-email address for a sandbox (turns on the Mailtrap address that delivers messages to the sandbox via SMTP).
Parameters:
sandbox_id(required): ID of the sandbox to act on
reset-sandbox-email-address
Generate a new receive-by-email address for a sandbox.
Parameters:
sandbox_id(required): ID of the sandbox to act on
forward-sandbox-message
Forward a sandbox message to an external email address. Counts against your monthly forwarding quota.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message to forwardemail(required): Email address to forward the message to
update-sandbox-message
Mark a sandbox message as read or unread.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message to updateis_read(required):truemarks as read,falsemarks as unread
delete-sandbox-message
Delete a single sandbox message.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message to delete
get-sandbox-message-spam-score
Get the SpamAssassin spam report for a sandbox message (score, rules, full report). Standalone alternative to include_spam_report: true on show-sandbox-email-message.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message
get-sandbox-message-html-analysis
Get the HTML analysis report for a sandbox message (client compatibility scores, problematic elements). Standalone alternative to include_html_analysis: true on show-sandbox-email-message.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message
get-sandbox-message-headers
Get the parsed mail headers for a sandbox message.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message
get-sandbox-message-html
Get the rendered HTML body of a sandbox message.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message
get-sandbox-message-text
Get the plain-text body of a sandbox message.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message
get-sandbox-message-raw
Get the raw, MIME-formatted message (headers + body) for a sandbox message.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message
get-sandbox-message-eml
Get the message rendered as an EML file payload (suitable for attaching to a ticket or importing into another mail client).
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message
get-sandbox-message-html-source
Get the unrendered HTML source of a sandbox message (HTML before any Mailtrap-side transformations like CID-link rewrites).
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message
list-sandbox-attachments
List all attachments on a sandbox message (filename, content type, size, download path).
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message
get-sandbox-attachment
Get metadata and download URL for a single attachment.
Parameters:
sandbox_id(optional): Sandbox ID. Falls back toMAILTRAP_SANDBOX_ID.message_id(required): ID of the sandbox message that contains the attachmentattachment_id(required): ID of the attachment to fetch
list-sending-domains
List sending domains and their DNS verification status.
Parameters:
- No parameters required
get-sending-domain
Get a sending domain by ID and its verification status (including DNS records). Optionally include DNS setup instructions by setting include_setup_instructions to true.
Parameters:
sending_domain_id(required): Sending domain IDinclude_setup_instructions(optional): Iftrue, append DNS setup instructions to the response. Default:false
create-sending-domain
Create a new sending domain. After creation, add DNS records to verify the domain (use get-sending-domain with include_setup_instructions: true to see the records).
Parameters:
domain_name(required): Domain name (e.g. example.com)
update-sending-domain
Update a sending domain's tracking and inbound settings.
Parameters:
sending_domain_id(required): Sending domain IDopen_tracking_enabled(optional): Track opens on emails sent from this domainclick_tracking_enabled(optional): Track clicks on links in emails sent from this domaintracking_opt_out_enabled(optional): Add the tracking opt-out link to tracked emails. Requires open or click trackingauto_unsubscribe_link_enabled(optional): Automatically add an unsubscribe link to emailsinbound_enabled(optional): Allow the domain to be attached to an inbound inbox as a catch-all
At least one setting besides sending_domain_id must be provided.
delete-sending-domain
Delete a sending domain.
Parameters:
sending_domain_id(required): Sending domain ID to delete
send-sending-domain-setup-instructions
Email DNS setup instructions for a sending domain to a given address. Useful for forwarding DNS records to a DevOps teammate.
Parameters:
sending_domain_id(required): Sending domain IDemail(required): Email address to send DNS setup instructions to
get-company-info
Get the company info of a sending domain, used for domain compliance verification.
Parameters:
sending_domain_id(required): Sending domain ID
create-company-info
Set the company info of a sending domain, required for domain compliance verification.
Parameters:
sending_domain_id(required): Sending domain IDname(required): Company or individual nameaddress(required): Street addresscity(required): Citycountry(required): Countryzip_code(required): ZIP or postal codewebsite_url(required): Company website URLphone(optional): Phone numberprivacy_policy_url(optional): URL of the privacy policy pageterms_of_service_url(optional): URL of the terms of service pageinfo_level(optional):businessorindividual
update-company-info
Update the company info of a sending domain.
Parameters:
sending_domain_id(required): Sending domain ID- Every field of create-company-info, all optional. At least one must be provided; fields left out are unchanged.
list-suppressions
List or search suppressions (hard bounces, spam complaints, unsubscriptions, manual imports). Returns up to 1000 results per call.
Parameters:
email(optional): Email filter. Returns only suppressions matching this address.
create-suppression
Add an email address to the account's suppression list, so Mailtrap stops delivering to it.
Parameters:
email(required): Email address to suppressdomain_id(required): ID of the sending domain the suppression applies tosending_stream(required):transactionalorbulktype(optional):hard bounce,spam complaint,unsubscriptionormanual import. Defaults tomanual import
delete-suppression
Delete a suppression by ID. Mailtrap will resume delivery to this email unless it gets suppressed again.
Parameters:
suppression_id(required): ID of the suppression to delete
list-tracking-opt-outs
List email addresses excluded from open and click tracking. Returns up to 1000 records per call.
Parameters:
email(optional): Email filter. Returns only opt-outs matching this addressstart_time(optional): Only opt-outs created at or after this time (ISO 8601)end_time(optional): Only opt-outs created at or before this time (ISO 8601)last_id(optional): Pagination cursor — thelast_idfrom the previous response
create-tracking-opt-out
Exclude an email address from open and click tracking for a sending domain.
Parameters:
email(required): Email address to opt out of trackingdomain_id(required): ID of the sending domain the opt-out applies to
delete-tracking-opt-out
Remove an email address from the tracking opt-out list, so open and click tracking applies to it again.
Parameters:
tracking_opt_out_id(required): ID of the tracking opt-out to delete
list-webhooks
List all webhooks configured for the account. Returns the full webhook records as JSON.
Parameters:
- No parameters required
get-webhook
Get a single webhook by ID. Returns the full webhook record as JSON. Note: signing_secret is not returned here — it is only available in the response from create-webhook.
Parameters:
webhook_id(required): ID of the webhook to fetch
create-webhook
Create a webhook. The response includes a signing_secret for verifying webhook payload signatures — this secret is returned only on creation, so store it now. If you lose it, recreate the webhook.
Parameters:
url(required): URL Mailtrap will POST webhook events towebhook_type(required):"email_sending","audit_log", or"inbound_receiving"active(optional, boolean): defaults totruepayload_format(optional):"json"or"jsonlines". Defaults to"json"sending_stream(optional,email_sendingonly):"transactional"or"bulk"event_types(optional,email_sendingonly): array ofdelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(optional,email_sendingonly): sending domain ID to scope this webhook toinbound_inbox_id(optional,inbound_receivingonly): ID of the inbound inbox the webhook is linked to; omit to apply to all inboxes in the account
update-webhook
Update a webhook's mutable fields. webhook_type, sending_stream, and domain_id cannot be changed after creation — recreate the webhook if you need to change those.
Parameters:
webhook_id(required): ID of the webhook to updateurl(optional): New webhook URLactive(optional, boolean): Enable or disable the webhookpayload_format(optional):"json"or"jsonlines"event_types(optional,email_sendingonly): array ofdelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectinbound_inbox_id(optional,inbound_receivingonly): ID of the inbound inbox the webhook is linked to
delete-webhook
Permanently delete a webhook by ID. Returns the deleted webhook record.
Parameters:
webhook_id(required): ID of the webhook to delete
get-contact
Получить контакт по ID или email. Возвращает полную запись контакта (членство в списках, статус, пользовательские поля).
Параметры:
contact_identifier(обязательно): ID контакта или email-адрес
create-contact
Создать новый контакт.
Параметры:
email(обязательно): Email-адресfields(необязательно): Значения пользовательских полей, ключ — merge-тег (например,first_name). Значения: строка, число или логическое значениеlist_ids(необязательно): ID списков контактов для подписки этого контактаunsubscribed(необязательно, логическое): Создать контакт в статусеunsubscribed
update-contact
Обновить существующий контакт, найденный по ID или email. list_ids заменяет полный набор членств контакта; list_ids_included/list_ids_excluded добавляют/удаляют, не затрагивая остальное.
Параметры:
contact_identifier(обязательно): ID контакта или emailemail(необязательно): Новый email-адресfields(необязательно): Значения пользовательских полей, ключ — merge-тегlist_ids(необязательно): Заменить набор членств на этот точный списокlist_ids_included(необязательно): ID списков для добавления (аддитивно)list_ids_excluded(необязательно): ID списков для удаленияunsubscribed(необязательно, логическое): Установить вunsubscribed(true) илиsubscribed(false)
delete-contact
Безвозвратно удалить контакт по ID или email. Возвращает запись удалённого контакта, если API отвечает с ней; в противном случае возвращает подтверждающий ответ.
Параметры:
contact_identifier(обязательно): ID контакта или email
create-contact-event
Записать событие контакта для контакта (по ID или email). Используется для запуска автоматизаций на основе списков контактов.
Параметры:
contact_identifier(обязательно): ID контакта или emailname(обязательно): Название события (соответствует триггерам автоматизаций)params(обязательно): Объект произвольных пар ключ/значение. Значения могут быть строкой, числом, логическим значением или null
list-contact-lists
Список всех списков контактов для аккаунта.
Параметры:
search(необязательно): Фильтр списков контактов по имени (без учёта регистра), например,news
get-contact-list
Получить список контактов по ID.
Параметры:
list_id(обязательно): ID списка контактов для получения
create-contact-list
Создать новый список контактов.
Параметры:
name(обязательно): Название нового списка
update-contact-list
Переименовать существующий список контактов.
Параметры:
list_id(обязательно): ID списка контактовname(обязательно): Новое название списка
delete-contact-list
Безвозвратно удалить список контактов по ID.
Параметры:
list_id(обязательно): ID списка контактов для удаления
list-contact-fields
Список всех определений полей контактов для аккаунта.
Параметры:
- Параметры не требуются
get-contact-field
Получить определение поля контакта по ID.
Параметры:
field_id(обязательно): ID поля контакта
create-contact-field
Создать новое определение поля контакта. merge_tag должен быть уникальным в пределах аккаунта и используется как имя плейсхолдера в переменных шаблона.
Параметры:
name(обязательно): Отображаемое имя (например, "Имя")merge_tag(обязательно): Уникальное имя плейсхолдера (например,first_name)data_type(обязательно): Одно изtext,number,boolean,date
update-contact-field
Обновить определение поля контакта. Можно изменить любую комбинацию name, merge_tag и data_type.
Параметры:
field_id(обязательно): ID поля контактаname(необязательно): Новое отображаемое имяmerge_tag(необязательно): Новый merge-тег (должен оставаться уникальным)data_type(необязательно): Одно изtext,number,boolean,date
delete-contact-field
Безвозвратно удалить определение поля контакта по ID.
Параметры:
field_id(обязательно): ID поля контакта для удаления
create-contact-import
Массовый импорт контактов. Возвращает запись задания импорта; проверяйте его статус с помощью get-contact-import.
Параметры:
contacts(обязательно): Массив записей контактов. Каждая запись требует:email(обязательно): Email-адрес контактаfields(необязательно): Значения пользовательских полей, ключ — merge-тег (значения: строка или число)list_ids_included(необязательно): ID списков для добавления контактаlist_ids_excluded(необязательно): ID списков для удаления контакта
get-contact-import
Получить статус задания импорта контактов (created/started/finished/failed) с количеством созданных/обновлённых/превысивших лимит.
Параметры:
import_id(обязательно): ID задания импорта контактов
create-contact-export
Экспорт контактов, соответствующих набору фильтров, объединённых по И. Возвращает запись задания экспорта; проверяйте статус с помощью get-contact-export, чтобы получить URL загрузки, когда status станет finished.
Параметры:
filters(обязательно): Массив объектов фильтров. Каждый имеет:name(обязательно): Поле для фильтрации (list_id,subscription_status,emailи т.д.)operator(обязательно): Одно изequal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(обязательно): Значение для сравнения (строка, число, логическое значение или массив)
get-contact-export
Получить статус задания экспорта контактов. Когда status станет finished, поле url будет содержать ссылку для загрузки CSV.
Параметры:
export_id(обязательно): ID задания экспорта контактов
list-email-campaigns
Список email-кампаний аккаунта, сначала новые, с постраничной навигацией по токенам страниц. Опционально фильтровать по имени с помощью search.
Параметры:
token(необязательно): Номер страницы для получения (постраничная навигация по токенам). По умолчанию1per_page(необязательно): Количество кампаний на странице. По умолчанию50, максимум100search(необязательно): Фильтр кампаний по имени (частичное совпадение без учёта регистра)
get-email-campaign
Получить email-кампанию по ID.
Параметры:
email_campaign_id(обязательно): ID email-кампании
create-email-campaign
Создать новую email-кампанию. Кампания всегда создаётся в состоянии draft; планирование и запуск — отдельные инструменты (schedule-email-campaign, start-email-campaign).
Параметры:
name(обязательно): Название кампанииdomain_id(обязательно): ID проверенного домена отправки, используемого для кампании, как возвращается конечными точками Sending Domainsfrom_local_part(обязательно): Локальная часть (до @) адреса Fromtemplate_attributes(обязательно): Встроенный email-шаблон. Имеет:subject(обязательно): Тема письма (макс. 255 символов). Поддерживает merge-теги, например,Hi {{first_name}}body_html(необязательно): HTML-тело (дизайн). Требуется перед планированием или запуском кампании. Включите ссылку отписки через якорь, чейhrefсодержит плейсхолдер__unsubscribe_url__body_text(необязательно): Альтернативная версия тела письма в виде простого текстаmerge_tags(необязательно): Простые имена merge-тегов, на которые ссылаются в теме/теле, например,["first_name"]
from_display_name(необязательно): Отображаемое имя в заголовке Fromreply_to(необязательно): Части адреса Reply-To (display_name,local_part,domain)delivery_mode(необязательно):rapid(отправить как можно быстрее) илиgradual(ограничить доdelivery_options.emails_per_hour)delivery_options(необязательно): Параметры ограничения доставки (emails_per_hour)contact_list_ids(необязательно): ID списков контактов для отправки (рассматривается как полный набор включённых списков)contact_segment_ids(необязательно): ID сегментов контактов для отправки (рассматривается как полный набор включённых сегментов)
update-email-campaign
Обновить email-кампанию в состоянии draft. Изменяются только предоставленные поля; шаблон редактируется на месте. Кампании в любом другом состоянии обновить нельзя.
Параметры:
email_campaign_id(обязательно): ID email-кампании для обновления- Все остальные параметры необязательны и идентичны
create-email-campaign(name,domain_id,from_local_part,from_display_name,reply_to,template_attributes,delivery_mode,delivery_options,contact_list_ids,contact_segment_ids)
delete-email-campaign
Удалить email-кампанию по ID. Можно удалить только кампанию в состоянии draft.
Параметры:
email_campaign_id(обязательно): ID email-кампании для удаления
start-email-campaign
Начать отправку email-кампании в состоянии draft немедленно. Можно запустить только кампании в состоянии draft; шаблон должен иметь дизайн body_html, а аудитория и проверенный домен отправки должны быть заданы.
Параметры:
email_campaign_id(обязательно): ID email-кампании для запуска
schedule-email-campaign
Запланировать email-кампанию в состоянии draft для начала отправки в будущее время. Можно запланировать только кампании в состоянии draft.
Параметры:
email_campaign_id(обязательно): ID email-кампании для планированияdatetime(обязательно): Когда отправить кампанию (ISO 8601). Должно быть в будущем и не более чем на 1 месяц вперёд
cancel-email-campaign
Отменить email-кампанию в состоянии scheduled, вернув её в draft. Можно отменить только кампании в состоянии scheduled.
Параметры:
email_campaign_id(обязательно): ID email-кампании для отмены
terminate-email-campaign
Прекратить email-кампанию, которая в настоящее время отправляется (started, queued или paused), прерывая текущую отправку.
Параметры:
email_campaign_id(обязательно): ID email-кампании для прекращения
reset-email-campaign
Сбросить email-кампанию в состоянии scheduled обратно в draft. Можно сбросить только кампании в состоянии scheduled.
Параметры:
email_campaign_id(обязательно): ID email-кампании для сброса
get-email-campaign-stats
Получить агрегированную статистику производительности для email-кампании (количество и показатели доставок, открытий, кликов, отказов, жалоб на спам и отписок).
Параметры:
email_campaign_id(обязательно): ID email-кампанииstart_date(необязательно): Начало окна агрегации (включительно),YYYY-MM-DD. По умолчанию — день последнего запуска кампанииend_date(необязательно): Конец окна агрегации (включительно),YYYY-MM-DD. По умолчанию — текущая дата
list-accounts
Список аккаунтов Mailtrap, к которым имеет доступ текущий API-токен, с уровнями доступа каждого аккаунта.
Параметры:
- Параметры не требуются
get-billing-usage
Получить текущее использование биллингового цикла для аккаунта: планы отправки и тестирования, лимиты и текущие счётчики.
Параметры:
- Параметры не требуются
list-account-accesses
Список доступов к аккаунту (пользователи, приглашения, API-токены) для аккаунта. Необязательные фильтры сужают результат до конкретных ресурсов. Требует прав администратора/владельца аккаунта.
Параметры:
domain_uuids(необязательно): Фильтр по UUID доменов отправки (массив строк)inbox_ids(необязательно): Фильтр по ID песочниц-инбоксов (массив строк)project_ids(необязательно): Фильтр по ID песочниц-проектов (массив строк)
remove-account-access
Удалить доступ к аккаунту по ID. Для спецификаторов User это отзывает их права; для спецификаторов Invite или ApiToken это полностью удаляет спецификатор. Требует прав администратора/владельца.
Параметры:
account_access_id(обязательно): ID записи доступа для удаления
get-permission-resources
Получить все ресурсы (инбоксы, проекты, домены, биллинг, аккаунт), к которым API-токен имеет административный доступ, сгруппированные по иерархии.
Параметры:
- Параметры не требуются
bulk-update-permissions
Массовое создание, обновление или удаление разрешений для одного доступа к аккаунту. Существующие пары (resource_type, resource_id) обновляются; новые создаются. Установите destroy: true в записи, чтобы удалить её.
Параметры:
account_access_id(обязательно): ID целевого доступа к аккаунтуpermissions(обязательно): Массив записей разрешений. Каждая запись содержит:resource_id(обязательно): ID ресурса (число или строка)resource_type(обязательно): Одно из значений:account,project,inbox,domain,billingaccess_level(необязательно):admin/100илиviewer/10destroy(необязательно, логическое): Если true, удаляет это разрешение вместо создания/обновления
list-api-tokens
Список всех API-токенов для аккаунта.
Параметры:
- Параметры не требуются
create-api-token
Создание нового API-токена. Ответ включает секретное значение token — это единственный момент, когда возвращается полный токен, поэтому сохраните его немедленно. Если вы его потеряете, создайте токен заново.
Параметры:
name(обязательно): Отображаемое имя для токенаexpires_at(необязательно): Срок действия токена в формате ISO 8601. Опустите для значения по умолчанию (1 год); передайте явноеnullдля токена, который никогда не истекает. Прошедшие значения или значения более чем на 5 лет вперед отклоняютсяresources(необязательно): Массив разрешений на ресурсы для ограничения токена. Каждая запись содержит:resource_type(обязательно): Одно из значений:account,project,inbox,domain,billingresource_id(обязательно): ID ресурсаaccess_level(обязательно):100(администратор) или10(просмотрщик)
get-api-token
Получение API-токена по ID. Возвращает только метаданные — секретное значение токена не возвращается здесь (только из create-api-token / reset-api-token).
Параметры:
api_token_id(обязательно): ID API-токена
reset-api-token
Сброс (ротация) API-токена по ID. Ответ включает новое секретное значение token — возвращается только при этом вызове, поэтому сохраните его немедленно. Предыдущий токен становится недействительным.
Параметры:
api_token_id(обязательно): ID API-токена для сбросаexpires_at(необязательно): Срок действия нового токена в формате ISO 8601. Опустите для значения по умолчанию (1 год); передайте явноеnullдля токена, который никогда не истекает. Прошедшие значения или значения более чем на 5 лет вперед отклоняются
delete-api-token
Безвозвратное удаление API-токена по ID. После удаления токен больше не может использоваться для аутентификации.
Параметры:
api_token_id(обязательно): ID API-токена для удаления
list-sub-accounts
Список суб-аккаунтов в организации. Требует переменную окружения MAILTRAP_ORGANIZATION_ID и права управления суб-аккаунтами.
Параметры:
- Параметры не требуются
create-sub-account
Создание нового суб-аккаунта в организации. Требует переменную окружения MAILTRAP_ORGANIZATION_ID и права управления суб-аккаунтами.
Параметры:
name(обязательно): Отображаемое имя для нового суб-аккаунта
list-inbound-folders
Список всех входящих папок в аккаунте. Возвращает форматированную сводку.
Параметры:
- Параметры не требуются
get-inbound-folder
Получение одной входящей папки по ID. Возвращает полную запись папки в формате JSON.
Параметры:
folder_id(обязательно): ID входящей папки
create-inbound-folder
Создание новой входящей папки.
Параметры:
name(обязательно): Имя папки
update-inbound-folder
Переименование входящей папки.
Параметры:
folder_id(обязательно): ID входящей папкиname(обязательно): Новое имя папки
delete-inbound-folder
Безвозвратное удаление входящей папки вместе со всеми её почтовыми ящиками.
Параметры:
folder_id(обязательно): ID входящей папки
list-inbound-inboxes
Список всех почтовых ящиков во входящей папке. Возвращает форматированную сводку.
Параметры:
folder_id(обязательно): ID входящей папки
get-inbound-inbox
Получение одного входящего почтового ящика по ID. Возвращает полную запись почтового ящика в формате JSON.
Параметры:
folder_id(обязательно): ID входящей папкиinbox_id(обязательно): ID почтового ящика
create-inbound-inbox
Создание нового входящего почтового ящика в папке.
Параметры:
folder_id(обязательно): ID входящей папкиname(обязательно): Имя почтового ящикаdomain_id(необязательно): Привязка к пользовательскому домену отправки (catch-all почтовый ящик). Опустите для почтового ящика, размещённого на Mailtrap
update-inbound-inbox
Переименование входящего почтового ящика.
Параметры:
folder_id(обязательно): ID входящей папкиinbox_id(обязательно): ID почтового ящикаname(обязательно): Новое имя почтового ящика
delete-inbound-inbox
Безвозвратное удаление входящего почтового ящика.
Параметры:
folder_id(обязательно): ID входящей папкиinbox_id(обязательно): ID почтового ящика
list-inbound-messages
Список полученных сообщений во входящем почтовом ящике (с курсорной пагинацией). Возвращает форматированную сводку с подсказкой о следующей странице, когда есть дополнительные результаты.
Параметры:
inbox_id(обязательно): ID почтового ящикаlast_id(необязательно): Курсор пагинации из предыдущего ответаlast_id
get-inbound-message
Получение одного входящего сообщения с полным телом и URL для скачивания вложений. Возвращает полную запись сообщения в формате JSON.
Параметры:
inbox_id(обязательно): ID почтового ящикаmessage_id(обязательно): ID сообщения
delete-inbound-message
Безвозвратное удаление входящего сообщения.
Параметры:
inbox_id(обязательно): ID почтового ящикаmessage_id(обязательно): ID сообщения
reply-to-inbound-message
Ответ на входящее сообщение (отправляется исходному отправителю). Отправляет реальное письмо. Адреса принимают строку с email или { email, name? }.
Параметры:
inbox_id(обязательно): ID почтового ящикаmessage_id(обязательно): ID сообщения для ответаtext/html(рекомендуется хотя бы одно): Тело ответаfrom(необязательно): Отправитель. Отклоняется для почтовых ящиков, размещённых на Mailtrap; обязателен для почтовых ящиков с пользовательским доменомcc/bcc/reply_to(необязательно): Дополнительные адресаcategory(необязательно): Категория сообщенияattachments(необязательно): Массив{ content (base64), filename, type?, disposition?, content_id? }headers/custom_variables(необязательно): Объекты со строковыми значениями
reply-all-to-inbound-message
Ответ на входящее сообщение с копированием других получателей исходного письма. Отправляет реальное письмо. Те же параметры, что и у reply-to-inbound-message.
Параметры:
inbox_id(обязательно): ID почтового ящикаmessage_id(обязательно): ID сообщения для ответа- Плюс те же необязательные поля отправки, что и у
reply-to-inbound-message
forward-inbound-message
Пересылка входящего сообщения новым получателям. Отправляет реальное письмо.
Параметры:
inbox_id(обязательно): ID почтового ящикаmessage_id(обязательно): ID сообщения для пересылкиto(обязательно): Как минимум один получатель (строка с email или{ email, name? }, или массив)- Плюс те же необязательные поля отправки, что и у
reply-to-inbound-message
list-inbound-threads
Список цепочек переписки во входящем почтовом ящике (с курсорной пагинацией). Возвращает форматированную сводку с подсказкой о следующей странице, когда есть дополнительные результаты.
Параметры:
inbox_id(обязательно): ID почтового ящикаlast_id(необязательно): Курсор пагинации из предыдущего ответаlast_id
get-inbound-thread
Получение одной входящей цепочки с встроенными сообщениями (сначала старые). Возвращает полную запись цепочки в формате JSON.
Параметры:
inbox_id(обязательно): ID почтового ящикаthread_id(обязательно): ID цепочки
delete-inbound-thread
Безвозвратное удаление входящей цепочки.
Параметры:
inbox_id(обязательно): ID почтового ящикаthread_id(обязательно): ID цепочки
Разработка
- Клонируйте репозиторий:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- Установите зависимости:
npm install
Настройка с Claude Desktop или Cursor
[!TIP] См. расположение файла конфигурации в разделе Setup.
Добавьте следующую конфигурацию:
{
"mcpServers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Если вы используете asdf для управления Node.js, используйте абсолютный путь к исполняемому файлу:
(пример для Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
VS Code
[!TIP] См. расположение файла конфигурации в разделе Setup.
{
"mcp": {
"servers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
Тестирование
Запуск инструментов против реального Mailtrap
Есть два способа проверить инструмент end-to-end против реального аккаунта Mailtrap: браузерный интерфейс MCP Inspector для интерактивного исследования или его CLI-режим для разовых вызовов из оболочки.
Оба требуют предварительной сборки бандла:
npm run build
и экспорта MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID в вашей оболочке (скрипт mcp:cli передаёт оба значения запущенному серверу).
Браузерный интерфейс
npm run dev
Inspector выводит URL вида http://localhost:6274. Откройте его, переключитесь на вкладку Tools, выберите инструмент (например, get-template), заполните параметры в JSON и нажмите Run. Ответ Mailtrap появится на панели ниже.
CLI
Для разовых вызовов без интерфейса используйте npm run mcp:cli. Передавайте флаги CLI Inspector после --, чтобы npm пересылал их без изменений:
# List all tools
npm run mcp:cli -- --method tools/list
# Call a tool — flags after the `--`
npm run mcp:cli -- \
--method tools/call \
--tool-name get-template \
--tool-arg template_id=12345
# Multiple --tool-arg flags for tools with several params
npm run mcp:cli -- \
--method tools/call \
--tool-name send-sending-domain-setup-instructions \
--tool-arg sending_domain_id=3938 \
--tool-arg email=devops@example.com
Запуск сервера MCPB
# Run the MCPB server directly
node dist/mcpb-server.js
# Or use the provided binary
mailtrap-mcpb-server
[!TIP] Для разработки с MCP Inspector:
npm run dev:mcpb
Обработка ошибок
Этот сервер использует структурированную обработку ошибок в соответствии с соглашениями MCP:
VALIDATION_ERROR: Ошибки валидации входных данныхCONFIGURATION_ERROR: Отсутствующая или недействительная конфигурацияEXECUTION_ERROR: Ошибки выполнения во время работыTIMEOUT: Таймаут операции (по умолчанию 30 секунд)
Ошибки содержат полезные сообщения и регистрируются в структурированном виде.
Безопасность
- Входные данные валидируются через схемы Zod
- Переменные окружения обрабатываются безопасно
- Защита от таймаутов операций (30 секунд)
- Конфиденциальные данные очищаются в выводе ошибок
Логирование
Структурированные JSON-логи с уровнями: INFO, WARN, ERROR, DEBUG.
Включите отладочное логирование, установив DEBUG=true.
# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js
Важно: Сервер записывает логи в stderr, чтобы stdout оставался зарезервированным для JSON-RPC кадров. Это предотвращает ошибки парсинга JSON у хостов из-за перемешанных логов.
Пример анализа логов с использованием jq:
# Filter error logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "error")'
# Filter debug logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "debug")'
Устранение неполадок
Частые проблемы:
- Отсутствует API-токен: убедитесь, что
MAILTRAP_API_TOKENустановлен - Sandbox не работает: укажите
test_inbox_idв вызове инструмента или установите переменную окруженияMAILTRAP_TEST_INBOX_ID - Ошибки таймаута: проверьте сетевое подключение и статус API Mailtrap
- Ошибки валидации: убедитесь, что все обязательные поля заполнены
Вклад в проект
Отчёты об ошибках и pull request приветствуются на GitHub. Этот проект задуман как безопасное и гостеприимное пространство для сотрудничества, и участники обязаны соблюдать кодекс поведения.
Лицензия
Пакет доступен как open source на условиях лицензии MIT.
Кодекс поведения
Все, кто взаимодействует с кодовыми базами проекта Mailtrap, трекерами задач, чатами и списками рассылки, обязаны следовать кодексу поведения.