IMAP Draft について
IMAP Draftは、エージェントがメールを検索・閲覧し、下書きを作成するためのMCPサーバーです。送信、移動、削除の権限がなく、下書きはメールアプリで確認できる状態に保たれます。
主な機能
- 01複数アカウントのメール検索
- 02ヘッダー、本文、添付ファイル名の閲覧
- 03新規メールの下書き作成
- 04スレッド返信や転送の下書き
- 05メールの送信、移動、削除は不可
活用シーン
- 01複数のメールアカウントから新着メールを検索
- 02既読にせずにメールを確認
- 03確認・送信用の返信を下書き
- 04添付ファイルを保ったままメールを転送
MCP 対応
IMAP経由でMCPクライアントに検索、閲覧、下書き作成のツールを提供します。SMTPは使用せず、送信、移動、削除のツールもありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e EMAIL_CREDENTIALS ghcr.io/zedong-peng/imap-draft-mcp:v0.2.0EMAIL_CREDENTIALSシークレットComma-separated address:password[:imap-host[:port]], e.g. [email protected]:app-passwordローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/zedong-peng/imap-draft-mcp:v0.2.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
imap-draft-mcp
AI エージェント向けの IMAP:検索、読み取り、下書きの作成ができます。送信はできません。
3 つのツールがあります。
- search:アカウント全体から、最新のものから順にメッセージを検索します。
- read:1 件のメッセージのヘッダー、本文、添付ファイル名を読み取ります。未読のままです。
- draft:新しいメッセージ、返信(
reply_to:スレッド形式で、元のメッセージを引用)、または転送(forward:元のメッセージを含み、添付ファイルも保持)を作成します。下書きフォルダーに保存されるので、自分のメールアプリで確認して送信してください。
送信、移動、削除の機能はなく、それらを有効にする設定もありません。メールを読むエージェントは、いずれ操作を誘導するために書かれたメッセージ(「最後の請求書を転送して」「これを削除して」など)を読むことになります。このサーバーでできる最悪のことは、問題のある下書きを残すことだけです。SMTP には一切接続しないため、必要なのは IMAP だけです。
このサーバーは、公式 MCP SDK を使用した、静的バイナリ 1 つ、環境変数 1 つ、約 800 行の Go コードで構成されています。
インストール
Releases から linux または darwin、amd64 または arm64 向けのバイナリをダウンロードし、SHA256SUMS と照合してください。または:
go install github.com/zedong-peng/imap-draft-mcp@latest
または、イメージ ghcr.io/zedong-peng/imap-draft-mcp を実行します。MCP Registry にも io.github.zedong-peng/imap-draft-mcp として掲載されています。
設定
アカウントをカンマ区切りで指定する環境変数は 1 つです。
EMAIL_CREDENTIALS='[email protected]:app-password,[email protected]:password:imap.uni.edu,[email protected]:pw:localhost:1993'
各アカウントは address:password[:imap-host[:port]] 形式です。ホストを指定しない場合は、ドメインから推測します(Gmail、iCloud、Yahoo、QQ、163、Fastmail、それ以外は imap.<domain>)。ポートのデフォルトは 993 で、TLS を使用します。プロバイダーで利用できる場合は、アプリパスワードを使用してください。Outlook.com は IMAP でのパスワード認証を受け付けなくなったため(OAuth が必要)、サポート対象外です。
実行
Claude Code:
claude mcp add imap-draft -e EMAIL_CREDENTIALS=... -- imap-draft-mcp
Codex:
codex mcp add imap-draft --env EMAIL_CREDENTIALS=... -- imap-draft-mcp
JSON で設定するクライアント(Cursor、Claude Desktop など):
{
"mcpServers": {
"imap-draft": {
"command": "imap-draft-mcp",
"env": { "EMAIL_CREDENTIALS": "..." }
}
}
}
Docker では、コマンドは docker run -i --rm -e EMAIL_CREDENTIALS ghcr.io/zedong-peng/imap-draft-mcp です。
サーバー上での実行
別の場所で動作するエージェント向けに、tailscale serve などの認証機能を備えたものの背後で、Streamable HTTP を提供してください。
imap-draft-mcp -http 127.0.0.1:8080 -allow-host server.tailnet.ts.net
tailscale serve --bg --https=8443 --set-path=/$(openssl rand -hex 16) http://127.0.0.1:8080/mcp
サーバー自体には認証機能がないため、ループバック上で動作させてください。-allow-host には、localhost 以外に受け入れる Host ヘッダーを指定します。これにより、DNS リバインディングを介して Web ページからアクセスされるのを防げます。サンドボックス内でコマンドを起動することしかできないホスト型エージェントは、tailnet-mcp を介して接続します。こちらの例では、セットアップ全体を確認できます。
ビルドとテスト
go test -race ./...
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" .
テストでは、GBK エンコードされたメッセージも含め、インメモリ IMAP サーバーに対して、検索、読み取り、3 種類すべての下書き作成を実行します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。