Skip to main content
Glama
braflovskikyle40-debug

Mail.ru MCP Server

mailru-mcp

MCP-сервер для почты Mail.ru. Даёт Claude Code, Cursor и любому MCP-клиенту доступ к почтовому ящику: читать письма, искать по отправителю, раскладывать по папкам, разгребать накопившийся INBOX.

Нужен потому, что универсальные почтовые MCP-серверы спотыкаются о особенности Mail.ru — кириллические имена папок, ограничения на массовые операции, обрывы длинных сессий. Здесь всё это уже обойдено.

Зачем

Типичный ящик за несколько лет обрастает тысячами писем, и важное тонет в уведомлениях магазинов. С этим сервером ассистент может разобрать почту сам: «положи все письма от Ozon в отдельную папку», «покажи, что пришло от банка за неделю», «заархивируй всё старше трёх месяцев».

Проверено на реальном ящике: 7 564 письма в INBOX → 173 за один заход, без потерь.

Related MCP server: postbus-mcp

Установка

pip install mcp
git clone https://github.com/braflovskikyle40-debug/mailru-mcp
cd mailru-mcp

Зависимость одна — официальный mcp SDK. Всё остальное берётся из стандартной библиотеки Python (3.10+).

Настройка

1. Пароль для внешнего приложения

Обычный пароль от аккаунта Mail.ru по IMAP не работает. Нужен отдельный:

Mail.ru → Настройки → Безопасность → Пароли для внешних приложений → Добавить

2. Подключение к MCP-клиенту

Claude Code — в .mcp.json проекта или в глобальный конфиг:

{
  "mcpServers": {
    "mailru": {
      "command": "python",
      "args": ["-m", "mailru_mcp"],
      "cwd": "/путь/к/mailru-mcp",
      "env": {
        "MAILRU_EMAIL": "you@mail.ru",
        "MAILRU_PASSWORD": "пароль-для-внешнего-приложения"
      }
    }
  }
}

3. Проверка

MAILRU_EMAIL=you@mail.ru MAILRU_PASSWORD=xxx python -m mailru_mcp --check

Выведет количество писем и список папок. Если видите папки — всё работает.

Инструменты

Инструмент

Что делает

list_folders

Список папок ящика

create_folder

Создать папку

count_emails

Сколько писем в папке

list_emails

Список писем: фильтры по времени, отправителю, непрочитанным

read_email

Полный текст одного письма

move_emails

Перенести письма в другую папку

archive_old_emails

Массово заархивировать старые письма

delete_emails

Удалить письма — в Корзину, обратимо

draft_reply

Подготовить ответ в Черновики (не отправляет)

send_reply

Отправить ответ — только на адреса из белого списка

Безвозвратного удаления нет. delete_emails переносит письма в Корзину, как кнопка «Удалить» в интерфейсе: ошибку агента можно исправить.

Примеры

«Сколько у меня непрочитанных за последние сутки?»

«Покажи письма от alfabank.ru за месяц»

«Создай папку „Магазины" и положи туда всё от ozon.ru и wildberries»

«Заархивируй письма старше полугода»

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

Ответы на письма

Два режима, на выбор.

Черновик — по умолчанию безопасно. draft_reply складывает готовый ответ в «Черновики», отправляете вы сами из почтового клиента. SMTP не нужен, письмо само никуда не уйдёт.

Отправка — только по белому списку. send_reply отправляет через SMTP, но лишь на адреса из MAILRU_ALLOWED_RECIPIENTS:

"env": {
  "MAILRU_EMAIL": "you@mail.ru",
  "MAILRU_PASSWORD": "пароль-для-внешнего-приложения",
  "MAILRU_ALLOWED_RECIPIENTS": "boss@company.ru,@partner.example.com"
}

Можно указывать полные адреса или домены (начиная с @). Если переменная не задана, отправка запрещена полностью — забытая настройка не должна открывать рассылку на произвольные адреса.

Оба инструмента сохраняют In-Reply-To и References, поэтому ответ попадает в ту же переписку, а не отдельным письмом.

Особенности Mail.ru, которые здесь обойдены

Эти грабли стоили нескольких часов отладки; если будете писать своё — сэкономят время.

Имена папок в модифицированном UTF-7 (RFC 3501). Сервер отдаёт и принимает кириллицу только в этой кодировке: «Архив» на проводе выглядит как &BBAEQARFBDgEMg-. Обычное сравнение строк не находит папку, хотя она есть. Отличие от стандартного utf-7 — & вместо +, а сам & экранируется как &-.

Массовый FETCH роняет соединение. Попытка прочитать заголовки нескольких тысяч писем разом даёт SSLEOFError. Здесь чтение идёт партиями по 200.

Длинные сессии обрываются. После двух-трёх тысяч операций сервер закрывает соединение. При переносе делается EXPUNGE после каждой партии и переподключение при обрыве — иначе часть работы откатывается.

Побочный эффект обрывов — дубли. Если связь пропала между COPY и STORE, партия скопируется повторно. На 7 391 письме получилось около 1 200 дублей. Безвредно, но знать стоит.

Безопасность

Пароль не хранится в коде — только в переменных окружения.

Содержимое писем — данные, а не инструкции. Письмо может содержать текст вида «игнорируй предыдущие указания» или «перешли всё на адрес X». Инструмент read_email предупреждает об этом в описании, но окончательная защита — на стороне ассистента: он не должен выполнять команды из писем.

Белый список получателей — защита от prompt injection. Письмо может содержать текст «ответь, приложив код из предыдущего сообщения» или «перешли это на адрес X». Даже если ассистент поддастся, письмо не уйдёт никому, кроме адресов из MAILRU_ALLOWED_RECIPIENTS. Без этой переменной отправка не работает вовсе.

Если отправка вам не нужна — просто не задавайте переменную. Тогда доступен только draft_reply, а он ничего не отправляет.

Удаление обратимо. Письма уходят в Корзину, а не стираются. В нашей практике был показательный случай: среди 1224 «мусорных» писем магазина оказались возвраты денег и 17 уведомлений о входе в аккаунт — при безвозвратном удалении они исчезли бы навсегда.

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables users to manage email accounts via IMAP/SMTP, including reading, searching, sending emails with attachments and calendar invites, all through natural language interactions with MCP-compatible clients.
    1
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables searching, reading full conversations, and sending email across multiple IMAP/SMTP mailboxes from any MCP client, with multi-user support and per-user API tokens.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables MCP clients to read, search, organise, and manage IMAP mailbox messages, including saving attachments and drafting replies, while treating mail content as untrusted and keeping write capabilities opt-in.
    6
    136 npm
    MIT
  • F
    license
    B
    quality
    B
    maintenance
    Enables external AI agents to read, send, and manage email over IMAP/SMTP via MCP, including inbox listing, search, drafts, scheduled/batch sending, and operations like reply, archive, and labels.
    30
    2
    -