Email MCP Server
email-mcp
Небольшой персональный MCP-сервер для одного почтового ящика через IMAP + SMTP.
В первую очередь он предназначен для частного использования:
один почтовый ящик
учетные данные передаются через переменные окружения
чтение почты через IMAP
отправка почты через SMTP
хорошо работает с настройками Yandex Mail по умолчанию, но может быть настроен на любого IMAP/SMTP провайдера
Что я изменил
Изначально этот репозиторий работал только в режиме stdio. Это подходит для локальных MCP-клиентов, но для интеграции с веб-версией ChatGPT требуется HTTP MCP-эндпоинт. Теперь сервер поддерживает:
stdioдля локального использования/разработкиstreamable-httpдля использования с веб-приложением ChatGPTsseдля совместимости
Я также исправил проблему с цепочками писем:
старый параметр
reply_toустанавливал только заголовокReply-Toдля полноценных ответов обычно следует использовать
In-Reply-ToиReferencesread_emailтеперь возвращает эти заголовки, чтобы их можно было передать обратно вsend_email
И я улучшил вывод read_email, добавив:
декодированные заголовки
метаданные вложений
заголовки цепочек сообщений
Related MCP server: IMAP/SMTP Email MCP Server
Поддержка вложений
Эта версия поддерживает как чтение, так и отправку вложений.
Загрузка вложения из полученного письма
Вызовите
read_email(uid=..., folder="INBOX")Проверьте список
attachmentsИспользуйте
attachment_indexсget_attachment(...)
get_attachment(...) возвращает:
filenamecontent_typesize_bytescontent_base64
Отправка вложений в исходящем письме
send_email(...) принимает список attachments.
Каждый элемент может быть одним из:
{"path": "/path/to/file.pdf"}{"filename": "note.txt", "content_text": "hello from MCP"}{"filename": "report.pdf", "content_base64": "JVBERi0x...", "content_type": "application/pdf"}Поведение папки «Отправленные»
После успешной отправки через SMTP, то же самое MIME-сообщение добавляется в вашу папку отправленных писем IMAP.
По умолчанию это имя папки:
SentВы можете переопределить его, если ваш почтовый ящик использует другое имя папки IMAP:
export SENT_FOLDER="Sent"
# or
export MAILBOX_SENT_FOLDER="Sent"Если отправленные письма не отображаются, сначала запустите list_folders() и используйте точное имя папки, возвращенное вашим почтовым ящиком.
Файлы
server.py— определения инструментов MCP и запуск транспортаmail_ops.py— реализация IMAP/SMTPrequirements.txt— зависимости Python
Окружение
Обязательно:
export MAILBOX_EMAIL="you@example.com"
export MAILBOX_PASSWORD="your-app-password"Дополнительные настройки провайдера:
export IMAP_HOST="imap.yandex.com"
export IMAP_PORT="993"
export SMTP_HOST="smtp.yandex.com"
export SMTP_PORT="465"Дополнительная настройка папки отправленных:
export SENT_FOLDER="Sent"Дополнительные настройки MCP-сервера:
export MCP_TRANSPORT="stdio"
export MCP_HOST="0.0.0.0"
export MCP_PORT="8000"Для удобства также поддерживаются псевдонимы:
export YANDEX_EMAIL="you@yandex.ru"
export YANDEX_APP_PASSWORD="..."Установка
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtЗапуск локально через stdio
python server.pyЭто подходящий режим для локальных MCP-клиентов, которые запускают процесс напрямую.
Запуск для веб-приложения ChatGPT
Веб-версии ChatGPT нужен публичный HTTPS MCP-эндпоинт. Запустите сервер в режиме HTTP:
python server.py --transport streamable-http --host 0.0.0.0 --port 8000Затем откройте этот порт через публичный HTTPS-туннель или обратный прокси-сервер и зарегистрируйте полученный URL MCP в ChatGPT.
Доступные инструменты
list_folders()
Выводит список доступных папок IMAP.
search_emails(folder="INBOX", text=None, unseen_only=False, since_date=None, limit=30)
Поиск сообщений по критериям IMAP.
Возвращает элементы, такие как:
uidsubjectfromtodateflagssize_bytes
read_email(uid, folder="INBOX")
Получает полное сообщение, не помечая его как прочитанное.
Возвращает:
декодированные заголовки
message_idin_reply_toreferencesattachmentsbody_plainbody_html
get_attachment(uid, folder="INBOX", attachment_index=None, filename=None)
Получает одно вложение и возвращает его в формате base64.
send_email(...)
Отправляет сообщение через SMTP.
Важные параметры:
reply_to_header— устанавливает заголовок Reply-Toin_reply_to— заголовок цепочкиreferences— заголовок цепочкиattachments— необязательный список спецификаций вложений
Для полноценного ответа используйте in_reply_to и, как правило, также references.
Примечания по Yandex
Типичные настройки Yandex по умолчанию:
IMAP:
imap.yandex.com:993через SSL/TLSSMTP:
smtp.yandex.com:465через SSL/TLS
Используйте пароль приложения, а не пароль от основной учетной записи.
Следующие разумные улучшения
встроенные/вложенные изображения
ограничения на размер вложений и потоковая передача
инструменты перемещения/архивирования/удаления с подтверждением
OAuth вместо учетных данных на основе переменных окружения
тесты с имитацией бэкендов IMAP/SMTP
This server cannot be deployed
Maintenance
Related MCP Connectors
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Email inboxes for AI agents: send, receive, reply, search, and manage threaded email over MCP.
Programmable email inbox for AI agents — JMAP, PoW auth, stdio MCP server.
Give an AI agent its own email address: send, reply, read, and wait for mail.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables email management through IMAP and SMTP protocols, supporting reading, sending, replying to emails with proper threading, and downloading attachments. Supports multiple email accounts with flexible configuration options.1BSD 3-Clause
- FlicenseNot gradedqualityDmaintenanceEnables email management via IMAP/SMTP, supporting list emails, read emails, send emails, and save drafts.-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with email accounts via IMAP and SMTP, supporting mailbox listing, email search, retrieval, sending, and management.MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language email operations (send, search, read, manage) via IMAP/SMTP, with support for attachments, multiple mailboxes, and secure configuration.MIT