multi-email
Multi Email
Multi Email は、独立して認可された Gmail および Microsoft 365 メールボックス向けのオープンソースの Codex プラグイン兼 MCP サーバーです。すべての操作は明示的な account_alias を指定します。暗黙のアクティブメールボックスはありません。
検索、読み取り、下書き作成、アーカイブ、既読状態の変更、Gmail ラベル、Microsoft カテゴリ、およびサーバーが強制する localhost レビューウィンドウを介した送信をサポートしています。
リリースステータス:
0.1.2は、lanfuli/multi-emailの注釈付きv0.1.2タグまたは対応する GitHub リリースからインストールした場合にのみ公式です。codex-multi-emailnpm パッケージはまだ公開されていません。インストール前にリポジトリの所有者とリリースタグを確認してください。
これが存在する理由
ほとんどのメール統合は、1 つのアクティブアカウントを前提としています。Multi Email はルーティングを明示的に保つため、メッセージ ID、下書き、ラベル、資格情報を混在させることなく、複数の独立して認可されたアカウントを 1 つのリクエストでカバーできます。
Codex task
-> Multi Email skill and MCP tools
-> local Node.js MCP process
-> Gmail API or Microsoft Graph
OAuth tokens -> macOS Keychain
Account aliases and OAuth app settings -> local mode-0600 config
Mailbox content returned by tools -> Codex conversation/model contextMCP プロセスと資格情報ストアは Mac 上で実行されますが、エンドツーエンドのワークフローは必ずしもローカルのみではありません。プロンプトとツール結果(選択したメールコンテンツを含む)は、ユーザーの製品、アカウント、データ制御設定に応じて Codex/OpenAI によって処理される場合があります。Google と Microsoft もプロバイダー API トラフィックを処理します。セキュリティ、プライバシー、データフロー を参照してください。
Related MCP server: Gmail MCP Server
安全モデル
すべての操作には明示的な
account_aliasが必要です。読み取りはスキルのデフォルトです。変更には、現在の明示的なユーザーリクエストが必要です。
完全な削除は公開されていません。
メール本文、添付ファイル、引用テキスト、署名、リンクは信頼できないデータとして扱われ、ツールの指示としては決して扱われません。
検索、書き込みバッチ、受信者、本文のサイズには制限があります。
送信は、ユーザーが
127.0.0.1ウィンドウでサポートされている完全なプレーンテキストの下書きを確認し、[承認] をクリックするまでブロックされます。短命の
approval_request_idは、実効送信マニフェスト(認証済みプリンシパル、メールボックス、実効送信者 ID、下書きとスレッド ID、すべての受信者、件名、完全な本文、プロバイダーリビジョン、添付ファイルがないことの検証済み確認)にバインドされます。承認は期限切れになり、1 回限りであり、バインドされた変更によって無効になります。バージョン
0.1.2は、プロバイダーの下書きに HTML、マルチパートまたは不明な MIME、インラインコンテンツ、添付ファイル、不正なメールボックスアドレス、サポートされていない From/Sender/Reply-To ID、または不完全なプロバイダーリビジョンが含まれている場合、レビューまたは送信の前にフェイルクローズします。プロバイダーの送信リクエストは、承認された許可リストに登録されたプレーンテキストフィールドから構築されます。Gmail は、下書き送信リクエストでその凍結された生のメッセージを提供します。Microsoft は、変更可能なプロバイダーの下書きを送信する代わりに、1 つの MIME
sendMailリクエストを使用します。どの MCP ツールも、自身の送信リクエストを承認できません。
あいまいな結果の後、送信が自動的に再試行されることはありません。プロバイダーがすでに受け入れている可能性があるためです。
これらの制御により、偶発的およびプロンプトインジェクションによるアクションが軽減されますが、OAuth トークンが読み取り専用になるわけではありません。Google の gmail.modify と Microsoft の Mail.ReadWrite および Mail.Send は、実質的なメールボックスアクセスを許可します。
サポートされている操作
領域 | Gmail | Microsoft 365 |
アカウント ID チェック | はい | はい |
資格情報、トークン、スコープ、ID の診断 | 1 つのエイリアスまたはすべて(メールを読まずに) | 1 つのエイリアスまたはすべて(メールを読まずに) |
プロバイダー固有の検索とメッセージ読み取り | はい | はい |
新規および返信の下書き | はい | はい |
下書きの更新 | はい | はい |
アーカイブと既読/未読 | はい | はい |
ラベル/カテゴリ | ラベル ID の一覧表示と変更 | 既知の正確なカテゴリ名を変更 |
人間によるレビュー付き凍結送信 | ローカル完全レビューウィンドウ | ローカル完全レビューウィンドウ; ソース下書きは保持 |
このプラグインは、プロバイダーの添付ファイルコンテンツエンドポイントを意図的に呼び出したり、MCP を介して添付ファイルのコンテンツを公開したり、メールを完全に削除したり、カレンダーを操作したり、任意のプロバイダー API を公開したり、送信者エイリアス、委任 ID、共有メールボックスを自動的に有効にしたりすることはありません。Gmail の format=full 応答は、小さなインライン MIME パートのバイトをローカルプロセスに配信できますが、ツールによって返されることはありません。メッセージの読み取りでは、添付ファイル名のみが公開されます。プラグインによって作成された下書きはプレーンテキストです。HTML、インラインコンテンツ、添付ファイル、不正なメールボックスアドレス、またはサポートされていない ID を含むプロバイダーの下書きは、バージョン 0.1.2 の送信レビューゲートを通過できません。
検索クエリはプロバイダー固有です。Google には Gmail 検索構文、Microsoft 365 には Microsoft Graph メール検索構文を使用します。
mail_list_accounts は、credentialPresent と connectionStatus(credential_present_unverified または not_authorized)を使用して、ローカル資格情報が存在するかどうかを報告します。これらのフィールドは認証の主張ではありません。現在のトークン、スコープ、プロバイダー ID の健全性を確認するには、mail_diagnose_accounts を使用してください。
要件
Apple Silicon または Intel 上の macOS
Node.js 22 以降
ローカル stdio MCP とプラグインをサポートする Codex デスクトップまたは CLI
Gmail アカウント用に Gmail API が有効な Google Cloud Desktop OAuth クライアント
Microsoft 365 アカウント用の Microsoft Entra パブリッククライアントアプリケーション
コミットされた dist/ バンドルには、JavaScript の依存関係と両方の macOS Keychain ネイティブバイナリが含まれているため、Git マーケットプレイスのスナップショットは、コミットされた node_modules/ ディレクトリなしで起動できます。開発と npm ライブラリのインポートでは、通常の npm 依存関係が引き続き使用されます。
GitHub からインストール
最も透過的なインストールは、ローカルクローンです。
git clone https://github.com/lanfuli/multi-email.git
cd multi-email
git checkout --detach v0.1.2
node ./scripts/multi-email --help
codex plugin marketplace add "$(pwd)"
codex plugin add multi-email@multi-emailインストール後、新しい Codex タスクを開始して、スキルと MCP ツールが検出されるようにします。
Codex は、リポジトリが存在すると Git マーケットプレイスソースも受け入れます。
codex plugin marketplace add lanfuli/multi-email --ref v0.1.2
codex plugin add multi-email@multi-email明示的な --ref により、インストールされたスナップショットは、移動するデフォルトブランチではなく、レビュー済みのリリースに保持されます。リポジトリのマーケットプレイスエントリは、文書化されたリポジトリルートのローカルソース("./")を使用します。現在文書化されている Codex マーケットプレイススキーマには、URL、git-subdir、npm ソースの形式もあります。このリポジトリは、npm 公開が行われていないため、npm ソースを使用しません。
以下のセットアップ例は、一致するローカルクローンから実行されます。将来の npm インストールでは、同等の multi-email ... バイナリを直接使用できます。コンシューマプロジェクトから npm run setup を実行しないでください。
OAuth の構成
デフォルトの構成パスは次のとおりです。
~/.config/codex-multi-email/config.json別の絶対パスを使用するには、CODEX_MULTI_EMAIL_CONFIG を設定します。セットアップ CLI は、存在しない構成ディレクトリをモード 0700 で作成し、既存の親ディレクトリの権限は変更せず、構成ファイルをモード 0600 で書き込み、シンボリックリンクまたは通常のファイルではない構成ターゲットを拒否します。
いずれかのプロバイダーを個別に初期化するか、両方のプロバイダー設定を 1 つのコマンドで指定します。
Google のみ:
node ./scripts/multi-email init \
--google-client-json /absolute/path/to/desktop-oauth.jsonMicrosoft のみ:
node ./scripts/multi-email init \
--microsoft-client-id <entra-application-client-id> \
--microsoft-tenant organizations両方のプロバイダー:
node ./scripts/multi-email init \
--google-client-json /absolute/path/to/desktop-oauth.json \
--microsoft-client-id <entra-application-client-id> \
--microsoft-tenant organizations後で Microsoft 設定を追加または置換するには:
node ./scripts/multi-email set-microsoft-client <entra-application-client-id> \
--microsoft-tenant organizations各メールボックスを個別に追加して認可します:
node ./scripts/multi-email add-account gmail-01 <gmail-address> google
node ./scripts/multi-email auth gmail-01
node ./scripts/multi-email add-account m365-main <microsoft-365-address> microsoft
node ./scripts/multi-email auth m365-main
node ./scripts/multi-email list
node ./scripts/multi-email doctorプレースホルダーはドキュメントでのみ使用してください。実際のアドレス、OAuth クライアント JSON、生成された構成、認可 URL、コード、トークンをコミットしないでください。
Google OAuth
Google の認可は、ループバックデスクトップ OAuth フローを介して openid、email、gmail.modify を要求します。返された Gmail プロファイルは、トークンが Keychain に保存される前に、構成されたアドレスと完全に一致する必要があります。
独自の OAuth 資格情報を使用しても、アプリまたはユーザーが Google の検証、同意画面、テストユーザー、制限付きスコープ、組織、割り当て、保持要件を免除されるわけではありません。Testing のままの OAuth プロジェクトは、検証済みの本番アプリとは異なる動作をする可能性があり、個々のアカウントまたは管理者がアクセスをブロックすることもできます。
Microsoft OAuth
Microsoft の認可は、MSAL システムブラウザの対話型認可を使用し、委任された User.Read、Mail.ReadWrite、Mail.Send を要求します。MSAL キャッシュが保存される前に、/me プロファイルが構成された ID と一致する必要があります。テナントポリシーまたは管理者の同意により、これらのスコープがブロックされる場合があります。
Codex での使用
常にアカウントエイリアスを指定します:
「
gmail-01を使用して、過去 2 日間の未読メッセージを検索してください。」「
gmail-01とm365-mainにわたって、変更を加えずに返信が必要なメッセージを要約してください。」「
m365-mainに返信の下書きを作成してください。送信しないでください。」「メールを読んだり変更したりせずに、構成されているすべてのアカウントを診断してください。」
送信の場合:
Codex に、選択した下書きをレビュー用に準備するよう依頼します。
MCP サーバーによって開かれた localhost ウィンドウで、認証済み ID、実効 From/Sender/Reply-To、すべての受信者、件名、スレッドヘッダー、形式、添付ファイルのステータス、完全なプレーンテキスト本文を検査します。
そのウィンドウで [承認] または [拒否] をクリックします。
Codex に戻り、ローカルレビューが完了したことを明示的に確認します。
サーバーは実効送信マニフェストを再構築し、1 回限りの承認を使用し、プロバイダーリビジョンを再確認し、承認された許可リストに登録されたフィールドを 1 つの送信リクエストに凍結します。
Microsoft の凍結送信は、Graph の既存の下書き送信アクションに条件付きリビジョンガードがないため、元のソース下書きを意図的に保持します。結果フィールド
sourceDraftRetainedを確認してください。新しいレビューなしでその保持された下書きを再度送信しないでください。
ローカルレビュー URL、Cookie、ナンス、フィンガープリント、OAuth 値、Keychain の内容を Codex や issue に貼り付けないでください。
更新
ローカルクローンマーケットプレイスの場合:
git fetch origin --tags
git checkout --detach v0.1.2
codex plugin add multi-email@multi-emailv0.1.2 は、レビュー済みの新しい注釈付きリリースタグにのみ置き換えてください。--ref でインストールされた Git マーケットプレイスは固定されたままなので、新しいリリースに明示的に移動します:
codex plugin remove multi-email@multi-email
codex plugin marketplace remove multi-email
codex plugin marketplace add lanfuli/multi-email --ref v0.1.2
codex plugin add multi-email@multi-email再インストール後、新しい Codex タスクを開始します。
アンインストールとローカルデータの削除
プラグインとマーケットプレイスを削除します:
codex plugin remove multi-email@multi-email
codex plugin marketplace remove multi-emailプラグインの削除では、OAuth 資格情報や構成は削除されません。クローンを削除する前に、保護されたライフサイクルコマンドを優先してください:
node ./scripts/multi-email logout <alias> --confirm
node ./scripts/multi-email revoke <alias> --confirmlogout はローカル資格情報を削除します。revoke は、プロバイダーが安全にサポートしている場合、プロバイダー側の失効も試みます。Microsoft では、Microsoft My Apps による削除とそれに続く logout が必要になる場合があります。プロバイダーの失効が成功したと想定せず、コマンドの結果を確認してください。
現在の Keychain 項目は、サービス io.github.lanfuli.multi-email を使用します。以前のインストールでは、com.openai.codex.multi-email の下に検証済みのレガシー項目がある場合もあります。資格情報ストアは、プロバイダー ID を検証した後にのみ移行します。doctor は意図的に読み取り専用であり、移行することはありません。オプションのレガシークリーンアップには macOS キーチェーンアクセスを使用し、~/.config/codex-multi-email/config.json を削除する前に正確な構成パスを確認してください。
開発
npm ci
npm run validate
npm run pack:check
npm audit --omit=dev --audit-level=highnpm run build は、package-lock.json の正確な @vercel/ncc バージョンを使用し、CommonJS バンドル dist/server.cjs を生成し、keyring.darwin-arm64.node と keyring.darwin-x64.node の両方を含みます。CommonJS は、ネイティブ Keychain ローダーが Node の __filename/createRequire 動作に依存しているため、意図的です。コールドインストールチェックでは、依存関係のない Git スナップショットとインストールされた npm ターボールの両方をテストします。
パッケージメタデータは、将来の公開 npm パッケージ codex-multi-email に構造的に準備されていますが、この README は、名前が予約されていることやパッケージが公開されていることを主張するものではありません。メンテナーは、認証し、所有権を確認し、npm publish --dry-run を検査し、明示的に公開する必要があります。
CONTRIBUTING.md、SECURITY.md、CHANGELOG.md を参照してください。
トラブルシューティング
不明なエイリアス:
node ./scripts/multi-email listを実行し、すべての呼び出しで正確なエイリアスを使用してください。接続の状態が不明確: 1つのエイリアスまたはすべてのエイリアスに対して
mail_diagnose_accountsを呼び出します。メッセージを読み取ったり書き込みを行ったりせずに、資格情報の存在、トークンの使用可能性、スコープ、IDを確認します。未承認またはトークンの期限切れ:
node ./scripts/multi-email auth <alias>を再実行してください。トークンをチャットに貼り付けないでください。レビューリクエストの期限切れ/拒否: 新しいレビューを準備し、ローカルウィンドウで新しい決定を行ってください。
承認後に下書きが変更された: 新しい下書き全体をもう一度レビューしてください。
レビューできない下書き: HTML、インラインコンテンツ、添付ファイル、代替送信者ID、追加のReply-To値を削除するか、Multi Email を使用してプレーンテキストの下書きとして再作成してください。ゲートを迂回しないでください。
送信結果が不明確: 再試行しないでください。最初に下書きと送信済みを読み取り専用で確認してください。
Gmailの認可がブロックされた: OAuth同意画面、テストユーザーのステータス、要求されたGmailスコープ、アカウント/組織のポリシー、アプリの検証状態を確認してください。
Microsoftの同意がブロックされた: パブリッククライアント設定、テナントの選択、委任されたアクセス許可、管理者ポリシーを確認してください。
共有メールボックスまたは代替Fromアドレス: 正確な委任IDとアクセス許可が実装され、エンドツーエンドで検証されるまでサポートされません。
ライセンス
MIT © 2026 Vincent_Lan。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 gradedqualityDmaintenanceEnables interaction with Gmail through the Gmail API to read, send, and manage emails. Supports multiple Gmail accounts with real-time monitoring and advanced features for email search and attachment handling.17Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Gmail through OAuth2 authentication, allowing users to list, search, read emails, and create drafts with a safety-first design that prevents accidental sends by default.192MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Gmail accounts through natural language for tasks like sending, reading, searching, and organizing emails. It supports advanced features including draft management, label operations, and batch actions via secure OAuth 2.0 authentication.MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to manage multiple Gmail accounts simultaneously with built-in OAuth authentication, supporting email reading, sending, drafts, labels, and account management.60702MIT
Related MCP Connectors
Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…
Authenticated email gateway for AI agents — per-agent inboxes, HITL approval, SPF/DKIM verified.
Authenticated email gateway for AI agents — per-agent inboxes, HITL approval, SPF/DKIM verified.
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/lanfuli/multi-email'
If you have feedback or need assistance with the MCP directory API, please join our Discord server