Mail Digest Server
БесплатноНе проверенProvides tools to manage work email: list/search/get emails and draft replies via IMAP, without sending any messages.
Описание
Provides tools to manage work email: list/search/get emails and draft replies via IMAP, without sending any messages.
README
Инструмент из двух слоёв:
fetch_mail.py— Python-скрипт. Забирает письма за вчера по IMAP и складывает вoutput/mail_<дата>.jsonиoutput/mail_<дата>.md. Никаких LLM, только выгрузка.- Слой обработки (Claude) — читает свежий
mail_*.jsonи делает дайджест, извлекает задачи и дедлайны, группирует письма и готовит черновики ответов на письма, которые их требуют. Правила обработки задаются локально и в репозиторий не входят.
Быстрый старт
cd mail_digest
cp config.example.ini config.ini # впиши доступы к почте
python3 fetch_mail.py # заберёт письма за вчера
Результат появится в output/. Дальше попроси меня в чате:
«разбери почту за вчера» — я прочитаю выгрузку и подготовлю дайджест, задачи и черновики ответов.
Параметры запуска
python3 fetch_mail.py # за вчера (по умолчанию)
python3 fetch_mail.py --date 2026-07-06 # за конкретную дату
python3 fetch_mail.py --days 3 # за последние 3 дня
Доступы и безопасность
- Доступы читаются из
config.iniили переменных окружения (IMAP_HOST,IMAP_PORT,IMAP_USER,IMAP_PASSWORD,IMAP_FOLDER,IMAP_SSL). Переменные окружения имеют приоритет. config.iniсодержит пароль — не коммить его, не пересылай. В.gitignoreуже добавлен.- Если у почты включена 2FA, используй пароль приложения, а не основной пароль.
- Скрипт открывает ящик в режиме readonly — письма не помечаются прочитанными.
Где взять IMAP-сервер
Посмотри в почтовом клиенте (Outlook/Thunderbird → настройки учётной записи → сервер входящей почты IMAP) или спроси у ИТ-отдела адрес IMAP-сервера и порт.
MCP-сервер (интерактивный доступ из Claude Cowork)
fetch_mail.py — это пакетная выгрузка. Для живого доступа есть отдельный слой
mcp_server.py — MCP-сервер, к которому Claude Cowork подключается по HTTP и
может сам запрашивать письма и готовить ответы. Он не меняет fetch_mail.py,
а переиспользует его функции.
Что умеет (инструменты)
| Инструмент | Что делает |
|---|---|
list_emails(period) |
Письма за hour / today / day / yesterday / week (карточки без полного тела) |
get_email(message_id) |
Полный текст одного письма |
search_emails(query, days) |
Поиск по отправителю / теме / телу |
list_sent(days, limit) |
Твои отправленные письма с текстом — чтобы изучить твой стиль |
list_folders() |
Список папок ящика (узнать имя «Отправленных» для SENT_FOLDER) |
reply_email(message_id, body, cc, confirm) |
Ответ: черновик .eml, а при confirm=true — реальная отправка по SMTP |
send_email(to, subject, body, cc, confirm) |
Новое письмо: черновик, а при confirm=true — реальная отправка |
mark_read(message_id) |
Пометить письмо прочитанным (флаг \Seen) |
list_drafts() |
Список готовых черновиков |
⚠️ Отправка по умолчанию выключена. reply_email/send_email без confirm
только создают .eml в output/drafts/. Реальная отправка происходит лишь при
confirm=true и требует настроенного SMTP (см. .env.example). Чтение писем —
readonly; состояние ящика меняет только mark_read.
Запуск на сервере
Сервер поднимают на машине, у которой есть доступ к корпоративному IMAP.
Доступы к почте — те же, что у fetch_mail.py (config.ini или переменные окружения).
# Вариант 1: uv сам поставит зависимости (Python 3.10+ подтянется автоматически)
uv run mcp_server.py
# Вариант 2: обычный venv
python3.11 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python mcp_server.py
Настройки HTTP-сервера (env): MCP_HOST (по умолч. 0.0.0.0),
MCP_PORT (8765), MCP_PATH (/mcp).
Запуск в контейнере (рекомендуется для сервера)
В образ попадают только fetch_mail.py, mcp_server.py и requirements.txt
(см. .dockerignore) — пароль и output/ внутрь не запекаются. Доступы к
почте передаются через .env, черновики пишутся в ./output на хосте (том).
cp .env.example .env # впиши IMAP-доступы (файл не коммитится)
docker compose build # собрать образ
docker compose up -d # запустить в фоне
docker compose logs -f # смотреть логи
docker compose down # остановить
По умолчанию порт слушается только на 127.0.0.1:8765 — наружу выставляй через
reverse-proxy/VPN, а не в открытый интернет. Без compose то же самое вручную:
docker build -t mail-mcp:latest .
docker run -d --name mail-mcp --env-file .env \
-p 127.0.0.1:8765:8765 -v "$PWD/output:/app/output" mail-mcp:latest
Подключение Claude Cowork
Пропиши адрес сервера в конфиг MCP-клиента (см. mcp.client.example.json):
{ "mcpServers": { "mail": { "type": "http", "url": "http://АДРЕС-СЕРВЕРА:8765/mcp" } } }
Что дальше (идея автоматизации)
Когда убедимся, что сбор работает, можно повесить ежедневную задачу: утром скрипт забирает письма за вчера, а я готовлю дайджест + черновики ответов к твоему приходу.
Установка Mail Digest Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Maksim061994/mcp_samowareFAQ
Mail Digest Server MCP бесплатный?
Да, Mail Digest Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Mail Digest Server?
Нет, Mail Digest Server работает без API-ключей и переменных окружения.
Mail Digest Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Mail Digest Server в Claude Desktop, Claude Code или Cursor?
Открой Mail Digest Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Gmail
Read, send and search emails from Claude
автор: GoogleSlack
Send, search and summarize Slack messages
автор: SlackRunbear
No-code MCP client for team chat platforms, such as Slack, Microsoft Teams, and Discord.
Discord Server
A community discord server dedicated to MCP by [Frank Fiegel](https://github.com/punkpeye)
Compare Mail Digest Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории communication
