SMTP Email MCP Server について
SMTP Email MCP Server は、複数のメールアカウントでメールの検索、閲覧、送信、返信、転送、整理を行うローカル動作の MCP サーバーです。Gmail、iCloud Mail、Fastmail、Outlook など標準の SMTP/IMAP に対応し、アカウント数の上限はありません。
主な機能
- 011 つのサーバーで SMTP 送信と IMAP 受信に対応
- 02アカウント名による複数アカウントの切り替え
- 03メールの検索、返信、転送、添付ファイル送信
- 04フラグ設定、既読状態の変更、フォルダー移動
- 05ホスト型の中継を使わないローカル stdio 転送
活用シーン
- 01Claude Desktop から仕事用と個人用のメールを管理
- 02未読メールを検索して返信や転送を行う
- 03メッセージを指定のフォルダーへ整理・移動する
MCP 対応
本プロジェクトは、accounts_list、emails_find、email_send などのツールを通じてメールの送受信と管理機能を MCP クライアントに公開する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Email SMTP/IMAP MCP
すべての受信トレイに対応する1つのローカルMCPサーバーです。複数のアカウント間でメールを検索、閲覧、送信、返信、転送、整理できます。
このサーバーを選ぶ理由
- アカウント数の上限なし — 仕事用、個人用、サポート用、クライアント用の受信トレイを追加し、
account_nameで切り替えられます。 - SMTPとIMAPを一体化 — 1つの小さなMCPサーバーでメールを送受信できます。
- 日常的なワークフローを網羅 — メールの検索、閲覧、返信、転送、ファイルの添付、フラグ付け、アーカイブ、移動、フォルダー一覧の取得ができます。
- プロバイダーを選ばない — Gmail、iCloud Mail、Fastmail、Outlook、セルフホストのメール、その他の標準的なSMTP/IMAPプロバイダーで動作します。
- ローカルのstdioトランスポート — ホスト型リレーも独立したコントロールパネルも必要ありません。
クイックスタート
1. .envを作成する
.env.exampleをプライベートな場所にコピーし、必要な数の名前付きアカウントを追加します。
EMAIL_ACCOUNTS_JSON='{
"work": {
"smtp": {
"host": "smtp.gmail.com",
"port": 587,
"secure": false,
"user": "[email protected]",
"password": "app-password"
},
"imap": {
"host": "imap.gmail.com",
"port": 993,
"secure": true,
"user": "[email protected]",
"password": "app-password"
},
"default_from_name": "Your Name",
"sender_emails": ["[email protected]", "[email protected]"]
},
"personal": {
"smtp": {
"host": "smtp.mail.me.com",
"port": 587,
"secure": false,
"user": "[email protected]",
"password": "app-password"
},
"imap": {
"host": "imap.mail.me.com",
"port": 993,
"secure": true,
"user": "[email protected]",
"password": "app-password"
}
}
}'
DEFAULT_EMAIL_ACCOUNT="work"
サーバーは作業ディレクトリにある.envを自動的に読み込みます。EMAIL_ENV_FILEを指定すると、MCPクライアントは任意の場所に保存された.envを使用できます。
2. MCPサーバーを追加する
Claude Desktopの場合、次のファイルを編集します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"email": {
"command": "npx",
"args": ["-y", "email-smtp-imap-mcp"],
"env": {
"EMAIL_ENV_FILE": "/absolute/path/to/your/.env"
}
}
}
}
絶対パスを指定してMCPクライアントを再起動し、「設定済みのメールアカウントを一覧表示して」と尋ねてみましょう。
MCPクライアントからアカウントJSONを直接渡す
.envファイルを使わず、MCPクライアントのenvオブジェクトでEMAIL_ACCOUNTS_JSONとDEFAULT_EMAIL_ACCOUNTを直接設定できます。JSONは1つの文字列にエスケープする必要があります。
{
"env": {
"EMAIL_ACCOUNTS_JSON": "{\"work\":{\"smtp\":{\"host\":\"smtp.gmail.com\",\"port\":587,\"user\":\"[email protected]\",\"password\":\"app-password\"},\"imap\":{\"host\":\"imap.gmail.com\",\"port\":993,\"user\":\"[email protected]\",\"password\":\"app-password\"}}}",
"DEFAULT_EMAIL_ACCOUNT": "work"
}
}
単一アカウント用の`.env`変数
EMAIL_ACCOUNTS_JSONの代わりに、SMTP_HOST、SMTP_PORT、SMTP_SECURE、SMTP_USER、SMTP_PASS、IMAP_HOST、IMAP_PORT、IMAP_SECURE、IMAP_USER、IMAP_PASSを使用します。
SMTP_USERNAME/SMTP_PASSWORDとIMAP_USERNAME/IMAP_PASSWORDも別名として使用できます。IMAPの認証情報を省略した場合は、SMTPの認証情報がデフォルトで使用されます。任意のfrom_email選択を許可するには、SENDER_EMAILSにカンマ区切りの許可リストを設定します。
| ツール | 機能 |
|---|---|
accounts_list | 設定済みのすべてのアカウントを一覧表示し、認証情報を公開せずにデフォルトのアカウントを特定します。 |
emails_find | テキスト、送信者、受信者、件名、日付、既読状態、フラグの状態、添付ファイルで検索します。本文と添付ファイルを任意で返すこともできます。 |
email_send | CC、BCC、送信者エイリアス、Base64 形式の添付ファイルを指定して、プレーンテキストまたは HTML 形式のメールを送信します。 |
email_respond | スレッド管理と元の添付ファイルの任意指定に対応し、メール UID を指定して返信、全員に返信、または転送します。 |
emails_modify | メッセージを既読/未読にする、フラグを設定/解除する、または別のフォルダーに移動します。 |
folders_list | フォルダーを一覧表示します。合計件数と未読件数も任意で表示できます。 |
すべてのメールツールでは、account_name を任意で指定できます。指定しない場合、サーバーは DEFAULT_EMAIL_ACCOUNT または最初に設定されたアカウントを使用します。アプリケーションレベルのアカウント数の上限はありません。
設定を確認する
MCP クライアントを再起動した後、次の順に試してください。
- 「設定済みのメールアカウントを一覧表示してください。」
- 「
workアカウントのフォルダーを一覧表示してください。」 - 「
personalアカウントで、最新の未読メールを5件見つけてください。」 - 「
workアカウントからプレーンテキストのメールを送信してください。」
プロバイダー設定
| プロバイダー | SMTP | IMAP | 認証情報 |
|---|---|---|---|
| Gmail | smtp.gmail.com:587 | imap.gmail.com:993 | アプリパスワード |
| iCloud Mail | smtp.mail.me.com:587 | imap.mail.me.com:993 | アプリ用パスワード |
| その他のプロバイダー | プロバイダーの SMTP ホストを使用 | プロバイダーの IMAP ホストを使用 | プロバイダーのパスワードまたはアプリパスワード |
465/993 などの暗黙的な TLS ポートには secure: true を使用してください。ポート 587 では通常 secure: false を使用し、STARTTLS で接続をアップグレードします。
開発
git clone https://github.com/samihalawa/email-smtp-imap-mcp.git
cd email-smtp-imap-mcp
npm ci
npm test
コンパイル済みの stdio サーバーは npm start で実行します。docker build -t email-smtp-imap-mcp . で本番用コンテナーをビルドします。
貢献
Issue や目的を絞ったプルリクエストを歓迎します。開発ワークフローについては CONTRIBUTING.md を、脆弱性の報告については SECURITY.md を参照してください。
ライセンス
MIT © Sami Halawa
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。