imap-mcp-server
imap-mcp
ソース公開・製品ではない。 これは、Cloudflare Workers 上で動作する汎用 IMAP → MCP サーバーです。MIT ライセンスで公開されているため、コードを読んだり、コピーしたり、学んだりすることができます。ただし、これは正確に1つのメールボックス、つまり個人の iCloud アカウントのために構築され、それに対して実行されます。サポートの約束はありません: 問題はトリアージされず、プルリクエストは募集されず、リリースもなく、ここにあるものは他の誰かの使用のためにバージョン管理されていません。役に立つなら、フォークしてください。
設計上、野心によるものではなく汎用性を重視しています — ホスト、ポート、認証情報は定数ではなく設定です — そのため、任意の IMAP サーバーに対して動作するはずです。実際にテストされているのは iCloud だけです。
ステータス: スキャフォールド。 まだ機能的なものは実装されていません。両方のワーカーは、インストール、lint、型チェック、テスト、デプロイのドライランを通過するプレースホルダーです。ロードマップ を参照してください。
機能
メールボックスを Cloudflare のストレージにインデックス化し、それを検索・取得ツールとして MCP クライアントに提供します。これにより、モデルは毎回のクエリでメールボックス自体を介さずに、15年分のメールに対して質問に答えることができます。
┌────────────────────┐ 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 │
└────────────────────┘ └──────────────┘2つのワーカーがあり、その分割はパッケージングの選択ではなくセキュリティ設計です:
packages/sync(imap-mcp-sync) は、システム内で IMAP を話す唯一の部分です。アプリ固有のパスワードを保持します — iCloud では SMTP 送信を含むメールボックス全体へのアクセスを許可します — そのため、その認証情報は正確に1か所に存在します。packages/mcp(imap-mcp-server) はステートレスなリーダーです。インデックスをクエリし、メールボックスには決してアクセスせず、少数の書き込み操作をサービスバインディングを介して sync ワーカーにプロキシします。独自の接続を開くことはありません。
Related MCP server: gmail-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 を実行します。
設定
このリポジトリは公開されているため、デプロイ固有の値はコミットされていません — Cloudflare アカウント ID、ゾーンタグ、Cloudflare Access チームドメインやアプリケーションオーディエンス (AUD)、メールボックスアドレスはありません。wrangler.jsonc のどちらにも account_id は含まれておらず、MCP ワーカーはルートを一切宣言していません。
提供する必要があるものはすべて .env.example に名前と説明があります。それを .env にコピーして記入してください。要約すると:
項目 | 設定場所 |
| あなたの環境; wrangler が直接読み取ります |
MCP ワーカーのルート / ゾーン |
|
|
|
|
|
|
|
ローカルでは、シークレットはパッケージごとに gitignore された .dev.vars に置きます。各パッケージにはコピー用の .dev.vars.example があります。
両方のワーカーはデフォルトで到達不能
workers_dev と preview_urls は両方の wrangler.jsonc ファイルで false であり、MCP ワーカーはルートを宣言していません。したがって、新規デプロイはインターネットから到達できません。これは意図的です: フォルダフェンスがない場合、MCP エンドポイントは実質的にメールボックス全体への読み取りアクセスになるため、Cloudflare Access が前面に配置される前に到達可能になってはなりません。workers_dev: false がない場合、ワーカーはルートや Access ポリシーに関係なく <name>.<account>.workers.dev で稼働します。
ゼロからの完全なデプロイガイド — シークレット、Access の設定、バインディング、マイグレーション、バックフィル — はまだ書かれていません。システムの残りの部分とともに公開されます。
ロードマップ
このリポジトリの issue として追跡されています:
リポジトリのスキャフォールド — これ | |
内部インターフェースの背後に IMAP クライアントをベンダー化 | |
D1 スキーマとマイグレーション | |
トレーサー: 1つのフォルダを D1 に同期 | |
同期パスのためのキュー ファンアウト | |
MCP サーバーと | |
増分同期: ウォーターマークと | |
R2 への添付ファイル、テキスト抽出付き | |
Access Managed OAuth で MCP エンドポイントをゲートする | |
| |
サービスバインディングを介した書き込みツール、監査ログ付き | |
完全なバックフィルとセットアップガイド |
スパイクによって、アーキテクチャ全体が依存していた1つの疑問が解決されました — Cloudflare Worker は iCloud に対して IMAP を話せるのか? できます: TLS と LOGIN をポート 993 で 755 ミリ秒で実行し、フォルダを一覧表示し、メッセージを取得して MIME デコードし、下書きを追加してフラグを立てました。したがって、同期パスは Worker であり、コンテナに移行するものはありません。設計を制約する発見 — CONDSTORE の順序、iCloud での MOVE の欠如、コンテンツに対する SEARCH の使用不可 — は、影響を受けるチケットに書き込まれています。
ライセンス
MIT — LICENSE を参照してください。
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.
Your own IMAP mailbox in any MCP client: search, read, flag, move; send and delete need confirm.
Your IMAP mailbox as an MCP server: read, search and (if you allow it) organize mail. Open source.
Related MCP Servers
- 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.129 npmMIT
- 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
- AlicenseNot gradedqualityBmaintenanceEnables 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