imap-mcp-server
imap-mcp
Исходный код доступен, это не продукт. Это универсальный IMAP → MCP сервер, работающий на Cloudflare Workers. Он опубликован под лицензией MIT, чтобы код можно было читать, копировать и учиться на нём, — но он создан и работает ровно с одним почтовым ящиком: личным аккаунтом iCloud. Никаких обязательств по поддержке: проблемы не обрабатываются, pull request'ы не запрашиваются, релизов нет, и ничто здесь не версионируется для чьего-либо использования. Если он вам полезен — форкните его.
Он универсален по замыслу, а не по амбициям — хост, порт и учётные данные являются конфигурацией, а не константами, — поэтому он должен работать с любым IMAP-сервером. Реально проверен только iCloud.
Статус: каркас. Пока ничего функционального не реализовано. Оба воркера — заглушки, которые устанавливаются, линтуются, проходят проверку типов, тестируются и проходят сухой прогон деплоя. См. Дорожную карту.
Что он делает
Индексирует почтовый ящик в хранилище Cloudflare, а затем предоставляет его MCP-клиенту в виде инструментов поиска и получения — так модель может отвечать на вопросы по пятнадцати годам почты, не вовлекая сам ящик в каждый запрос.
┌────────────────────┐ IMAP over TLS ┌──────────────┐
│ imap-mcp-sync │ ───────────────▶ │ mailbox │
│ packages/sync │ ◀─────────────── │ (iCloud) │
│ cron, owns creds │ └──────────────┘
└─────────┬──────────┘
│ writes ▲ writes proxied over
▼ │ a service binding
┌────────────────────┐ │
│ D1 (+FTS5) and R2 │ │
└─────────┬──────────┘ │
│ reads │
▼ │
┌────────────────────┐────────────────┘ ┌──────────────┐
│ imap-mcp-server │ Streamable HTTP │ MCP client │
│ packages/mcp │ ◀───────────────── │ behind CF │
│ stateless, no creds │ Access │
└────────────────────┘ └──────────────┘Два воркера, и разделение между ними — это дизайн безопасности, а не выбор упаковки:
packages/sync(imap-mcp-sync) — единственная часть системы, которая говорит по IMAP. Он хранит пароль приложения — который в iCloud даёт полный доступ к ящику, включая отправку через SMTP, — так что эти учётные данные существуют ровно в одном месте.packages/mcp(imap-mcp-server) — читатель без состояния. Он запрашивает индекс, а не ящик, и проксирует немногочисленные операции записи обратно в sync-воркер через service binding, а не открывает собственное соединение.
Related MCP server: stalwart-mail-mcp
Быстрый старт
pnpm install # installs both packages
pnpm run lint # biome check (lint + format)
pnpm run typecheck # wrangler types + tsc --noEmit
pnpm run test # vitest, inside workerd
pnpm run dead-code # knip
pnpm run build # wrangler deploy --dry-run, both workersДля каждого пакета, из packages/sync или packages/mcp: pnpm run dev, pnpm run test:watch, pnpm run deploy.
Конфигурация
Этот репозиторий публичный, поэтому никакие значения, специфичные для развёртывания, не закоммичены — ни ID аккаунта Cloudflare, ни тег зоны, ни домен команды Cloudflare Access или аудитория приложения (AUD), ни адрес почтового ящика. Ни один wrangler.jsonc не содержит account_id, и MCP-воркер вообще не объявляет маршрутов.
Всё, что вам нужно указать, названо и объяснено в .env.example. Скопируйте его в .env и заполните. Кратко:
Что | Куда помещается |
| ваше окружение; wrangler читает его напрямую |
Маршрут / зона для MCP-воркера | запись |
|
|
|
|
|
|
Локально секреты помещаются в gitignored .dev.vars для каждого пакета; у каждого есть .dev.vars.example для копирования.
Оба воркера недоступны по умолчанию
workers_dev и preview_urls установлены в false в обоих файлах wrangler.jsonc, и MCP-воркер не объявляет маршрутов. Поэтому свежее развёртывание недоступно из интернета. Это сделано намеренно: без ограничения папок конечная точка MCP функционально является доступом на чтение ко всему почтовому ящику, поэтому она не должна стать доступной, пока перед ней не будет Cloudflare Access. Без workers_dev: false воркер доступен по адресу <name>.<account>.workers.dev независимо от существующих маршрутов или политик Access.
Полное руководство по развёртыванию с нуля — секреты, настройка Access, привязки, миграции и обратное заполнение — ещё не написано; оно появится вместе с остальной системой.
Дорожная карта
Отслеживается как issues в этом репозитории:
Каркас репозитория — это | |
Вендорить IMAP-клиент за внутренним интерфейсом | |
Схема D1 и миграции | |
Трассировщик: синхронизировать одну папку в D1 | |
Фан-аут очереди для пути синхронизации | |
MCP-сервер и | |
Инкрементальная синхронизация: водяные знаки и | |
Вложения в R2, с извлечением текста | |
Ограничить конечную точку MCP с помощью Access Managed OAuth | |
| |
Инструменты записи через service binding, с журналом аудита | |
Полное обратное заполнение и руководство по настройке |
Спайк решил единственный вопрос, от которого зависела вся архитектура, — может ли Cloudflare Worker вообще говорить по IMAP с iCloud? Может: TLS и LOGIN на порту 993 за 755 мс, папки перечислены, сообщения получены и декодированы из MIME, черновик добавлен и помечен. Так что путь синхронизации — это Worker, и ничего не переносится в Container. Выводы, которые ограничивают дизайн, — порядок CONDSTORE, отсутствие MOVE в iCloud, непригодность SEARCH для содержимого — записаны в соответствующие тикеты.
Лицензия
MIT — см. LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceConnects multiple IMAP and SMTP mailboxes to MCP clients like ChatGPT without exposing credentials, enabling email search and thread retrieval via natural language.1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceConnects AI agents to self-hosted Stalwart mail servers via a Cloudflare Worker and JMAP, enabling mailbox search, reading, listing, and two-step draft-and-send email operations through MCP.MIT
- AlicenseNot gradedqualityCmaintenanceEnables interaction with Gmail through MCP, supporting search, read, send, reply, forward, draft management, labels, and multiple accounts, deployed on Cloudflare Workers.MIT
- AlicenseNot gradedqualityCmaintenanceEnables connecting Gmail to MCP clients, allowing search, read, send, reply-all, forward, attachments, drafts, labels, and thread management across multiple Google accounts at once via a self-hosted Cloudflare Worker.MIT
Related MCP Connectors
Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.
Hosted email MCP for AI agents with inboxes, send/receive, memory, recovery, and credits.
Cloudflare Workers MCP server: email-validator
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lswith/imap-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server