Skip to main content
Glama
SDK-E

mailbox-mcp

by SDK-E

mailbox

CI npm license

Локальный почтовый приёмник для разработки: запустите один SMTP-сервер и HTTP API для всей машины и направьте на него каждый проект. Письма никогда не покидают ваше устройство — вместо этого они попадают в просматриваемый почтовый ящик с веб-интерфейсом, CLI и MCP-сервером для ИИ-агентов.

Один общий экземпляр устраняет конфликты портов между проектами: запустите его один раз, подключайте многие.

Установка

pnpm add -D @sdk-e/mailbox   # or npm i -D / yarn add -D

Или запустите ad hoc:

npx @sdk-e/mailbox

Related MCP server: qmailing MCP server

Быстрый старт

mailbox            # SMTP on :11025, inbox UI on http://localhost:11090

Отправляйте почту на smtp://127.0.0.1:11025 из любого приложения (nodemailer, Resend dev mode и т.д.), затем:

open http://localhost:11090   # or: mailbox-cli open

Бинарники

Bin

Назначение

mailbox

Запуск приёмника (SMTP + HTTP + веб-интерфейс почтового ящика)

mailbox-cli

list, read <id>, wait [match] [--timeout s], clear, health, open

mailbox-mcp

MCP-сервер (list_emails, read_email, clear_emails, wait_for_email)

Примеры использования CLI

mailbox-cli list
mailbox-cli read 3
mailbox-cli wait "verification code" --timeout 10   # blocks until a new matching message arrives
mailbox-cli clear

wait сопоставляет только сообщения, которые приходят после его запуска — запустите его до отправки.

Использование библиотеки

import { startMailbox } from "@sdk-e/mailbox";

const mailbox = await startMailbox({ smtpPort: 0, httpPort: 0 }); // 0 = ephemeral
console.log(mailbox.smtpPort, mailbox.url);
await mailbox.close();

Идеально подходит для интеграционных тестов, которым нужен изолированный временный почтовый ящик.

HTTP API (стабильный сетевой протокол)

Route

Method

Ответ

/api/health

GET

{ ok, smtpPort, httpUrl, messageCount }

/api/email

GET

массив из { id, receivedAt, from, to, subject, text, html }

/api/email/:id

GET

сообщение выше плюс исходник raw; 404 {"error": …} если отсутствует

/api/email/all

DELETE

{ ok: true, messageCount: 0 }

/

GET

веб-интерфейс почтового ящика

Конфигурация

Переменные окружения (.env.local, затем .env в рабочем каталоге загружаются, если они присутствуют):

Переменная

По умолчанию

Назначение

MAIL_SMTP_PORT

11025

Порт прослушивания SMTP

MAIL_HTTP_PORT

11090

Порт HTTP API/UI

MAIL_HTTP_URL

выводится из порта

Базовый URL, используемый CLI/MCP для доступа к приёмнику

MAILBOX_HOST

127.0.0.1

Интерфейс привязки (по умолчанию loopback)

Направьте почтовик вашего приложения на smtp://127.0.0.1:$MAIL_SMTP_PORT локально; в продакшене продолжайте использовать вашего реального провайдера. Сервер отказывается запускаться, когда NODE_ENV=production.

Почему высокие порты?

1025/1080 (классические значения по умолчанию в стиле MailHog) часто конфликтуют. mailbox по умолчанию использует 11025/11090, чтобы несколько проектов SDK-E могли использовать один экземпляр, не мешая друг другу или другим локальным инструментам.

Разработка

Требуется Node >= 20 и pnpm >= 11.

pnpm install
pnpm verify     # format, lint, typecheck, test, build

См. CONTRIBUTING.md.

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables LLMs to read, send, and manage emails via POP3 and SMTP with TLS support.
    6
    -
  • F
    license
    B
    quality
    D
    maintenance
    Enables AI agents to send and receive emails via POP3 and SMTP, with tools for polling, reading, deleting, and sending emails.
    5
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with email accounts via IMAP and SMTP, supporting mailbox listing, email search, retrieval, sending, and management.
    MIT