Open Agent Email MCP
Open Agent Email — свой почтовый сервер для ИИ-агентов: ящики, ответы в ветке письма, одобрение человеком, вебхуки и MCP на 96 инструментов
- 2 107 ★ репозитория
- Последний коммит
- Apache-2.0
Широкий доступ
Почему такой уровень
- Агент с ключом полного доступа сам отправляет письма с вашего адреса и домена, а подтверждение человека работает, только пока включено `hitl_enabled`
- Агент читает письма от посторонних, а сканер проверяет текст и HTML и от вложений не защищает, пока не включен ClamAV
- Сервер хранит пароли релея, секреты вебхуков и ключи DKIM в базе, зашифрованными одним ключом
Установка
- Работает в
Ручная установка
git clone https://github.com/Anil-matcha/open-agent-email.git && cd open-agent-email && ./scripts/dev.shНужен Python 3.11 или новее. Скрипт создает секреты, печатает ключ администратора и запускает API на 127.0.0.1:8000 и SMTP на 127.0.0.1:2525.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Агент с ключом полного доступа сам отправляет письма с вашего адреса и домена, а подтверждение человека работает, только пока включено `hitl_enabled`
- Агент читает письма от посторонних, а сканер проверяет текст и HTML и от вложений не защищает, пока не включен ClamAV
- Сервер хранит пароли релея, секреты вебхуков и ключи DKIM в базе, зашифрованными одним ключом
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Open Agent Email — сервер на Python, который выдает ИИ-агентам настоящие почтовые адреса. Запускается скриптом `./scripts/dev.sh` или через Docker Compose. При первом старте он создает ключ администратора и ключ шифрования, поднимает API на порту 8000 и приемник SMTP на порту 2525. Администратор заводит ящик агента и ключ доступа к нему, а дальше агент читает письма, отвечает в той же ветке, пересылает их и пишет новые через REST, клиенты на Python и TypeScript, командную строку `oae` или MCP. Входящее письмо принимает SMTP-приемник, и сначала его разбирает сканер угроз. Он ищет в тексте и HTML команды вроде «игнорируй прошлые инструкции», скрытый текст (`display:none`, нулевой размер шрифта), служебные разделители ChatML и утечку данных через markdown-картинки, а base64 разворачивает и проверяет. Подозрительное письмо попадает в очередь на ручное одобрение. Параметр `hitl_enabled` включен по умолчанию, и тогда в очередь идут и исходящие письма: человек одобряет или отклоняет их в панели управления либо по ссылке в письме. Исходящие уходят через внешний SMTP-релей, например Amazon SES, Resend, SendGrid, Postmark или Gmail, а письма между ящиками одного сервера релея не требуют. MCP-сервер доступен по адресу `/mcp/rpc` и принимает тот же ключ в заголовке Authorization. Инструментов 96, набор зависит от ключа: ключ ящика работает только со своим ящиком, ключ администратора управляет ящиками, доменами, ключами и настройками сервера, а ключ проверяющего видит только очередь одобрений. Инструмент `get_recent_otp` достает из свежих писем код подтверждения из 4–8 цифр и не отдает тело письма.
Для кого. Для разработчиков, которые хотят дать агенту в Claude Code или Cursor собственный почтовый адрес для регистраций, переписки и уведомлений и готовы сами развернуть и поддерживать сервер.
Подходит, если
- Агенту нужен постоянный адрес для регистрации в сервисах, а код подтверждения он забирает инструментом `get_recent_otp`
- Письма агента наружу должны сначала попадать человеку на одобрение, а не уходить сразу
- Агент отвечает клиентам в той же ветке письма и пересылает сложные случаи человеку
- Почта агента должна жить на вашем домене, и вам нужны готовые записи MX, SPF, DKIM и DMARC
- Агент читает письма от посторонних, и вы хотите, чтобы письма с командами для модели оседали в карантине
Не подходит, если
- Нужен облачный сервис без своего сервера: Open Agent Email разворачивают, обновляют и резервируют самостоятельно, а для отправки через готовый сервис в каталоге есть Resend MCP Server
- Агент должен читать ваш личный ящик в Gmail или Яндекс Почте: сервер заводит собственные адреса и чужие ящики не подключает, для этого есть скилл чтения почты по IMAP
- Нужен обмен сообщениями только между агентами одного проекта без внешней почты: для этого в каталоге есть MCP Agent Mail
- На машине нет ни Python 3.11 или новее, ни Docker: поставить сервер не получится
- Письма агента должны уходить в интернет сразу после запуска: без внешнего SMTP-релея сообщение получит статус failed
Пример запроса к агенту
Подними Open Agent Email локально, создай ящик hello@agents.example.com с одобрением исходящих и подключи его к Claude Code по MCPMCP
- Транспорт
- http
- Авторизация
- API-ключ
Переменные окружения
OAE_API_KEYобязательная, секрет- Ключ ящика (или ключ администратора, или проверяющего), который клиент передает в заголовке Authorization.
Ограничения
- В репозитории нет файла лицензии, хотя в описании названа Apache 2.0. Автор не указал лицензию, права на использование и копирование не определены, уточните у автора.
- Проект в активной разработке. Автор предупреждает, что почтовый путь мало проверен на живых провайдерах, и просит прочитать руководство по эксплуатации до подключения реального трафика. Отметки о проверке от 15 октября 2026 года сняты на ноутбуке, не на стенде: 757 тестов прошли и на SQLite, и на PostgreSQL 16.15.
- По умолчанию данные лежат в SQLite внутри тома Docker `oae-data`. Там же хранится ключ шифрования паролей релея, секретов вебхуков и ключей DKIM: если потерять том вместе с ключом, сохраненные секреты не прочитать.
- Чтобы принимать письма из интернета, порт 2525 нужно пробросить на порт 25, а для отправки наружу настроить релей в разделе настроек.
- Клиент для TypeScript собирается из каталога `sdks/typescript` репозитория, в пакетном реестре автор его не публикует. Клиент для Python ставится из каталога `sdks/python`.
Как отключить. Уберите подключение к MCP командой `claude mcp remove open-agent-email` или удалите раздел `open-agent-email` из `.cursor/mcp.json`. Ключ ящика отзовите в панели управления, чтобы он перестал работать. Сервер в Docker останавливает `docker compose down`, а том `oae-data` с почтой, ключами и базой остается на диске, пока вы не удалите его отдельно.
Частые вопросы
Как подключить Open Agent Email к Claude Code или Cursor?
Для Claude Code выполните `claude mcp add --transport http open-agent-email http://127.0.0.1:8000/mcp/rpc --header "Authorization: Bearer $OAE_API_KEY"`. Для Cursor добавьте в `.cursor/mcp.json` раздел `open-agent-email` с адресом `http://127.0.0.1:8000/mcp/rpc` и заголовком Authorization. Ключ `oae_...` показывают один раз при создании в ответе на `POST /v1/api-keys`.
Что видит агент с ключом ящика и чем он отличается от ключа администратора?
Ключ ящика позволяет читать и менять только свой ящик: письма, шаблоны, контакты, списки подавления. Отправка, ответ и пересылка требуют права полного доступа. Создавать ящики, домены, вебхуки и другие ключи и менять настройки сервера умеет только ключ администратора, а ключ проверяющего доходит лишь до очереди одобрений.
Как агент получает код подтверждения из письма?
Инструмент `get_recent_otp` смотрит до 50 последних доставленных входящих писем ящика и ищет 4–8 цифр рядом со словами о подтверждении. Он умеет ждать до 10 секунд и возвращает код с минимумом сведений о письме. Тело письма он не отдает. Если кода нет, ответ `{ "found": false }`.
Какие атаки на агента через письмо отсеивает сканер угроз?
Сканер ищет прямые команды вроде «игнорируй прошлые инструкции», текст, скрытый через CSS или нулевые символы Unicode, служебные разделители ChatML и утечки через markdown-картинки с ключами в адресе. Он проверяет текст и HTML, но не вложения. Вложения проверяет необязательный ClamAV, его включают отдельной настройкой `ATTACHMENT_SCAN_ENABLED=true`.
Как подключить свой домен?
Запрос `POST /v1/domains` создает ключ DKIM на 2048 бит и возвращает записи MX, SPF, DKIM и DMARC. После публикации записей `POST /v1/domains/{домен}/verify` проверяет каждую: `verified`, `pending`, `mismatch` или `error`. Домен считается подтвержденным, когда совпали MX, SPF и DKIM, а DMARC желателен, но не обязателен.
Что будет, если письмо пришло с домена со строгой политикой DMARC?
Если проверка подлинности однозначно провалена, при политике `p=reject` сервер отвечает SMTP 550 до записи в ящик. При политике `p=quarantine` письмо уходит в обычную очередь одобрения. Политики `p=none`, ошибка DNS или неподтвержденный результат пускают письмо в обычный разбор.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыKeyID agent-kit
@keyid/agent-kit
MCP-сервер, который дает агенту настоящий почтовый адрес: 27 инструментов для писем, ответов, поиска в ящике и контактов
Официальный MCP-сервер Resend: отправка и чтение писем, контакты, рассылки, домены и вебхуки из агента
Удаленный MCP-сервер Aident: агент ищет и запускает действия в почте, мессенджерах и CRM через подключенные аккаунты, а сервер ведет журнал вызовов
MCP-сервер для управления Windows: агент открывает приложения, кликает и печатает, читает состояние окон и интерфейса, работает с файлами и PowerShell
MCP сервер для Discord: агент ведет каналы, роли, сообщения и модерацию через бот-токен вашего сервера
MCP-сервер для AppleScript: агент запускает скрипты и управляет приложениями Mac, от заметок и календаря до файлов
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Open Agent Email (эта запись) | нет | API-ключ | 2 107 | |
| Resend MCP Server | да | OAuth | 576 | официальный сервер сервиса Resend, отправляет и читает письма через облако Resend |
| Скилл чтения почты по IMAP | нет | 2 | скилл чтения и поиска в уже существующих ящиках по IMAP, своих адресов не заводит | |
| MCP Agent Mail | нет | API-ключ | 2 217 | переписка кодовых агентов между собой внутри проекта, во внешнюю почту не ходит |
Коротко о README
В репозитории лежат серверная часть, панель управления на Next.js, клиенты для Python и TypeScript и пример слушателя событий по WebSocket. Документация состоит из быстрого старта, справочника с каталогом MCP-инструментов, руководства по эксплуатации, описания кодов ошибок и правил мониторинга для Prometheus. Тестов много: серверные проверяют контракт OpenAPI и совпадение MCP с REST, клиентские покрывают вебхуки и постраничную выдачу. Руководство по эксплуатации заканчивается таблицей упражнений, которые нужно пройти на тестовом стенде до включения настоящей почты.