Integrations
Allows AI assistants to interact with Gmail via IMAP, supporting email listing, searching, reading (with attachments), sending, and managing labels and folders through OAuth2 authentication.
Used for OAuth authentication to access Gmail services, requiring configuration of a Google Cloud Project with OAuth consent screen and credentials.
Gmail IMAP MCP サーバー
IMAPを使用したGmail統合のためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、AIアシスタントはGmailアカウントと連携し、メールの閲覧、検索、管理などの機能を提供できます。
特徴
- GmailでのOAuth2認証
- 高度な検索機能を使用して Gmail アカウントからメールを読む
- 包括的なフィルタリング(日付、ラベル、キーワードなど)を使用してメールを検索します
- お問い合わせフォームメールの特別な処理
- 追加のフィルタリングオプションを使用して未読メールを表示する
- 添付ファイル付きのメールを送信する
- ラベルの管理(作成、削除、一覧表示)
- ラベル間でメールを移動する
- 添付ファイルをダウンロード
- メールを既読/未読としてマークする
- 複数のGmailアカウントのサポート
- MCP を介した AI アシスタントとの統合
- Claude との互換性を高めるバックティック処理
前提条件
Gmail IMAP MCP サーバーを実行する前に、次のものを用意してください。
- Python 3.12以上
- Gmail API が有効になっている Google Cloud プロジェクト
- OAuth 2.0 クライアントID認証情報
インストール
ソースからインストール
- リポジトリをクローンします。Copy
- 仮想環境を作成してアクティブ化します。Copy
- パッケージをインストールします。Copy
Google Cloud プロジェクトの設定
- Google Cloud Consoleにアクセスします
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択してください
- プロジェクトで Gmail API を有効にします。
- 「APIとサービス」>「ライブラリ」に移動します
- 「Gmail API」を検索して有効にします
- OAuth 2.0 認証情報を作成します。
- 「APIとサービス」>「認証情報」に移動します
- 「認証情報を作成」>「OAuthクライアントID」をクリックします
- アプリケーションの種類として「デスクトップアプリ」を選択します
- クライアント構成ファイルをダウンロードする
- ダウンロードしたファイルを、資格情報ディレクトリに
client_secret.json
として保存します。Copy
最近の機能強化
強化された検索機能
Gmail IMAP MCP サーバーでは、検索機能が大幅に改善されました。
- Gmail スタイルのクエリ構文:
from:example@gmail.com is:unread has:attachment
などの Gmail スタイルのクエリを使用します。 - 特殊文字のサポート: 特殊文字を含むクエリラベル (例:
label:$$$$$
) - 日付範囲フィルタリング:
after_date
とbefore_date
パラメータを使用して日付範囲でメールを検索します。 - 複合フィルタリング: 検索条件を組み合わせて、正確なメールフィルタリングを実現します。
- 追加の検索パラメータ: 既読/未読ステータス、添付ファイルなどでフィルタリングします。
お問い合わせフォームのメール処理
お問い合わせフォームから送信されたメールの特別な処理:
- 自動検出: ウェブサイトの問い合わせフォームから送信されたメールを識別します
- 実際の送信者抽出: Reply-To ヘッダーまたは埋め込まれた From 行から実際の送信者を抽出します。
- ウェブサイトソース識別: お問い合わせフォームがどのウェブサイトから来たのかを表示します
- クリーンメッセージ抽出: フォームのメタデータを削除し、メッセージの内容だけを抽出します。
- 表示形式の改善: お問い合わせフォームのメールをわかりやすく構造化された形式で表示します
バックティックJSON処理
Claude が JSON でバックティックを使用する傾向を処理するためのサポートが追加されました。
- 自動変換: バックティック形式のJSON (
name
)を適切なJSON ("name")に変換します。 - エラー処理: JSON形式の問題に関する役立つエラーメッセージを提供します
- シームレスな統合: 自動的に動作し、特別な処理は必要ありません
クロードデスクトップガイド
このセクションでは、Claude Desktop で Gmail MCP サーバーを使用する際のガイダンスを提供します。効果的なメール処理に役立つ主要なツールとベストプラクティスを紹介します。
主要なツールと機能
1. 返信機能(重要)
2 つの異なる返信機能が用意されており、それぞれ特定の目的を果たします。
- reply-to-message : 以前にやり取りしたことのない新しく届いたメールに返信する場合に使用します。
- スレッドへの返信: すでにやり取りが行われている既存の会話を継続します。
重要: 常に適切な返信機能を使用してください。
- 新しいメッセージへの最初の返信には
reply-to-message
を使用します。 - 既存の会話を続けるには
reply-to-thread
使用する - 代わりに
send-email
を使用すると、メールのスレッドが壊れ、会話が途切れてしまいます。
2. メールコンテンツの取得
- get-email : 応答する前に、本文、ヘッダー、連絡フォームの実際の送信者情報を含む完全なメール コンテンツを取得するには、常にこのツールを使用します。
クロードのベストプラクティス
- 常にメールの全内容を取得する: 返信する前に、必ず
get-email
を使用して、実際の送信者情報を含む完全なメッセージを確認します。 - 適切な返信機能を使用する:既存のメールに返信する際には、スレッドが壊れてしまうため、
send-email
を使用しないでください。代わりに適切な返信機能を使用してください。 - お問い合わせフォームを正しく処理する: お問い合わせフォームの送信では、
get-email
から送信される電子メール コンテンツ内の実際の送信者情報を確認します。 - メールを既読としてマークする: 重複した返信を避けるために、メールを処理した後は常にメールを既読としてマークします。
- スレッド管理: 既存の会話を続けるときに
reply-to-thread
使用して、適切な電子メールのスレッドを維持します。
特殊なケース
お問い合わせフォームメール
お問い合わせフォームのメールを処理する場合:
- 拡張パーサーによって提供される「真の送信者」情報を探す
- フォーム送信アドレスではなく、実際の送信者に返信する
- ビジネスを代表する際には、適切なプロフェッショナルな口調を維持する
メールIDとリソースURI
電子メール ID を使用する場合、次の 2 つの形式に遭遇する可能性があります。
- 生のID(例:
12345
) - リソース URI (例:
email://message/account_INBOX_12345
)
すべてのツールが更新され、両方の形式を正しく処理できるようになりました。
推奨ワークフロー
get-unread-emails
を検索する- 未読メールごとに、
get-email
を使用して全内容を取得します。 - これが新しい会話なのか、既存のスレッドの続きなのかを判断する
- 適切な返信機能(
reply-to-message
またはreply-to-thread
)を使用する - 既読
mark-as-read
クロードの主な仕事は、メールに適切に返信することであり、新しい会話を始めることではありません。メールのスレッドを適切に維持するために、必ず正しい返信機能を使用してください。
ツールリファレンス
認証
authenticate-gmail
: MCP で使用するために Gmail アカウントを認証する
メールの取得
search-emails
: 高度なフィルタリングでメールを検索するget-unread-emails
: 追加のフィルタリングオプションを使用して未読メールを取得するget-email
: 特定のメールの詳細を取得する
メール送信
send-email
: オプションの添付ファイル付きの新しいメールを送信するreply-to-message
: 特定のメールに返信するreply-to-thread
: メールスレッド(最新のメッセージ)に返信する
ラベル管理
list-labels
: 利用可能なすべてのラベルを一覧表示するcreate-label
: 新しいラベルを作成するdelete-label
: 既存のラベルを削除するmove-email
: ラベル間でメールを移動する
メールの整理
download-attachment
: メールの添付ファイルをダウンロードするmark-as-read
: メールを既読にするmark-as-unread
: メールを未読としてマークする
高度な使用例
日付範囲とラベルによる拡張検索
追加のフィルタリングで未読メールを取得する
複雑なGmailクエリで検索
アーキテクチャと実装の詳細
資格情報の保存
Gmail IMAP MCPサーバーは、OAuth2認証情報をユーザーのホームディレクトリ( ~/.gmail_imap_mcp_credentials/
に保存します。この方法にはいくつかの利点があります。
- セキュリティ: 資格情報はアプリケーションディレクトリではなく、ユーザー固有の場所に保存されます
- 永続性: 資格情報は、異なるセッションやアプリケーションの再起動後も保持されます。
- 互換性: 読み取り専用ファイルシステムでの権限の問題を回避します
資格情報ディレクトリには次のものが含まれます。
client_secret.json
: Google Cloud Console からの OAuth クライアント認証情報- 認証された各 Gmail アカウントのトークン ファイル (形式:
token_{email_address}.json
)
IMAP実装
サーバーは、Gmail での IMAP 操作に Python のimaplib2
ライブラリを使用します。主な実装の詳細は次のとおりです。
- 接続: ポート 993 で Gmail の IMAP サーバー (
imap.gmail.com
) への安全な接続 - 認証: XOAUTH2 メカニズムを使用した OAuth2 認証
- メールの取得: メールはRFC822形式を使用して取得され、Pythonの
email
モジュールで解析されます。 - ラベル管理: Gmail のラベルは IMAP メールボックス操作を通じて管理されます
- Gmail クエリ解析: Gmail スタイルのクエリは IMAP 検索条件にインテリジェントに変換されます
メールIDの形式
システム内の電子メール ID は次の形式に従います。
どこ:
{account}
: Gmailアカウントのアドレス{mailbox}
: メールが入っているメールボックス/ラベル{id}
: メールの一意のIMAP ID
この形式により、システムはさまざまなアカウントやメールボックス間で電子メールを一意に識別できます。
貢献
Gmail IMAP MCP サーバーの改善への貢献を歓迎します。お気軽に問題の報告やプルリクエストをお送りください。
使用法
サーバーの起動
Gmail IMAP MCP サーバーを実行します。
Gmailアカウントの認証
- メールアドレスで
authenticate-gmail
ツールを使用する - ブラウザでOAuth2認証フローに従ってください
- 認証されると、サーバーは将来の使用のために資格情報を保存します
利用可能なツールと例
Gmail IMAP MCPサーバーは、Gmailアカウントを操作するための包括的なツールセットを提供しています。以下に、利用可能なすべてのツールの詳細なリストと、それらの使用例を示します。
認証
1. Gmailを認証する
MCP サーバーで使用する Gmail アカウントを認証します。
パラメータ:
email
: 認証するメールアドレス
例:
メールの取得と検索
2. メール検索
さまざまな検索条件を使用して、Gmail アカウント内のメールを検索します。
パラメータ:
account
: 検索するメールアカウントmailbox
: 検索するメールボックス (デフォルト: INBOX)query
: 検索クエリlimit
: 返されるメールの最大数(デフォルト: 10)
例: 特定の送信者からのメールを検索する:
例: 特定の件名のメールを検索する:
例: 本文に特定のテキストを含むメールを検索する:
3. 未読メールを取得する
Gmail アカウントから未読メールを取得します。
パラメータ:
account
: メールを受信するメールアカウントmailbox
: メールを受信するメールボックス (デフォルト: INBOX)limit
: 返されるメールの最大数(デフォルト: 10)
例:
メールの作成と送信
4. メールを送信する
オプションの添付ファイルと HTML コンテンツを含むメールを Gmail アカウントから送信します。
パラメータ:
account
: 送信元のメールアカウントto
: 受信者のメールアドレス(複数指定の場合はカンマ区切り)subject
: メールの件名body
: プレーンテキストのメール本文cc
: カーボンコピーの受信者(オプション)bcc
: ブラインドカーボンコピーの受信者(オプション)html_body
: メール本文のHTMLバージョン(オプション)attachments
: 添付オブジェクトのリスト(オプション)- 各添付オブジェクトには次のものが必要です。
path
: ファイルへのパスfilename
: カスタムファイル名(オプション)content_type
: MIMEタイプ(オプション)
- 各添付オブジェクトには次のものが必要です。
例 - シンプルなメール:
例 - CC、BCC、HTML コンテンツを含むメール:
例 - 添付ファイル付きメール:
5. メッセージへの返信
オプションの添付ファイルと HTML コンテンツを使用して、特定の電子メール メッセージに返信します。
パラメータ:
account
: 返信元のメールアカウントemail_id
: 返信先のメールID(形式:email://message/{account}_{mailbox}_{id}
または生のID)body
: プレーンテキストの返信本文mailbox
: メールが入っているメールボックス (デフォルト: INBOX)html_body
: 返信のHTMLバージョン(オプション)attachments
: 添付オブジェクトのリスト(オプション)- 各添付オブジェクトには次のものが必要です。
path
: ファイルへのパスfilename
: カスタムファイル名(オプション)content_type
: MIMEタイプ(オプション)
- 各添付オブジェクトには次のものが必要です。
例 - 簡単な返信:
例 - 添付ファイル付きで返信:
6. スレッドへの返信
オプションの添付ファイルと HTML コンテンツを使用して、電子メール スレッドに返信します (スレッド内の最新のメッセージを使用)。
パラメータ:
account
: 返信元のメールアカウントthread_id
: 返信先のスレッドID(形式:email://message/{account}_{mailbox}_{id}
または生のID)body
: プレーンテキストの返信本文mailbox
: スレッドを含むメールボックス (デフォルト: INBOX)html_body
: 返信のHTMLバージョン(オプション)attachments
: 添付オブジェクトのリスト(オプション)- 各添付オブジェクトには次のものが必要です。
path
: ファイルへのパスfilename
: カスタムファイル名(オプション)content_type
: MIMEタイプ(オプション)
- 各添付オブジェクトには次のものが必要です。
例 - 簡単なスレッド返信:
ラベル管理
7. ラベルを作成する
Gmail アカウントに新しいラベル/メールボックスを作成します。
パラメータ:
account
: ラベルを作成するメールアカウントlabel_name
: 作成するラベルの名前
例:
8. ラベルの削除
Gmail アカウントからラベル/メールボックスを削除します。
パラメータ:
account
: ラベルを削除するメールアカウントlabel_name
: 削除するラベルの名前
例:
9. リストラベル
Gmail アカウント内のすべてのラベル/メールボックスを一覧表示します。
パラメータ:
account
: ラベルを一覧表示するメールアカウント
例:
メールの整理
10. メールの移動
メールをあるラベル/メールボックスから別のラベル/メールボックスに移動します。
パラメータ:
account
: メールアカウントemail_id
: 移動するメールID(形式:email://message/{account}_{mailbox}_{id}
)source_mailbox
: ソースメールボックスtarget_mailbox
: ターゲットメールボックス
例:
添付ファイルの処理
11. 添付ファイルのダウンロード
電子メールから添付ファイルをダウンロードします。
パラメータ:
account
: メールアカウントemail_id
: メールID(形式:email://message/{account}_{mailbox}_{id}
)attachment_index
: ダウンロードする添付ファイルのインデックス(0から始まる)mailbox
: メールが入っているメールボックス (デフォルト: INBOX)download_dir
: 添付ファイルを保存するディレクトリ(デフォルト: "downloads")
例:
メールステータス管理
12. 既読にする
メールを既読としてマークします。
パラメータ:
account
: メールアカウントemail_id
: メールID(形式:email://message/{account}_{mailbox}_{id}
)mailbox
: メールが入っているメールボックス (デフォルト: INBOX)
例:
13. 未読としてマーク
メールを未読としてマークします。
パラメータ:
account
: メールアカウントemail_id
: メールID(形式:email://message/{account}_{mailbox}_{id}
)mailbox
: メールが入っているメールボックス (デフォルト: INBOX)
例:
利用可能なプロンプト
サーバーは、AI アシスタントが使用できる次のプロンプトを提供します。
1. メールの要約
最近のメールの要約を作成します。
パラメータ:
account
: 要約するメールアカウントmailbox
: 要約するメールボックス (デフォルト: INBOX)count
: 要約するメールの数(デフォルト: 5)
例:
AIアシスタントとの統合
Gmail IMAP MCPサーバーは、モデルコンテキストプロトコル(MCP)をサポートするAIアシスタントと統合できます。典型的なワークフローは以下のとおりです。
- 認証: AI アシスタントは
authenticate-gmail
ツールを使用してユーザーの Gmail アカウントを認証します。 - 電子メール管理: アシスタントは、サーバーが提供するさまざまなツールを使用して電子メールを取得、検索、管理できます。
- 電子メールの作成: アシスタントは、ユーザーの指示に基づいて電子メールの作成と送信を支援できます。
- 電子メールの整理: アシスタントは、ラベルを作成したり、ラベル間で電子メールを移動したり、電子メールを既読/未読としてマークしたりすることで、電子メールを整理するのに役立ちます。
- 電子メールの要約: アシスタントは
summarize-emails
プロンプトを使用して電子メールを要約できます。
AIアシスタントとの接続
クロードデスクトップ
Gmail IMAP MCP サーバーを Claude Desktop に接続するには:
- Gmail IMAP MCP サーバーを起動します。Copy
- Claude Desktopを開き、設定(歯車アイコン)に移動します
- 「詳細設定」セクションまでスクロールし、「MCP設定の編集」をクリックします。
- Gmail IMAP MCP サーバー構成を追加します。Copy
- 「保存」をクリックしてClaude Desktopを再起動します
- Claude に Gmail アカウントの操作を依頼できるようになりました。最適な結果を得るには、上記の「Claude デスクトップ ガイド」セクションを参照して、返信機能の適切な使用方法とメール処理のベストプラクティスをご確認ください。試してみることを推奨するタスク:
- 「未読メールを見せて」
- 「メール[ID]の全内容を取得する」
- 「このメールに[内容]を添えて返信してください」
- 「[コンテンツ]でこのメールスレッドを続ける」
- 「このメールを既読にする」
- 「[送信者]からのメールを検索」
**重要な注意:**電子メールの返信の場合、適切な電子メールのスレッドを維持するために、常にsend-email
ではなく適切な返信機能 ( reply-to-message
またはreply-to-thread
) を使用してください。
ウィンドサーフィンIDE
Gmail IMAP MCP サーバーを Windsurf IDE に接続するには:
- Gmail IMAP MCP サーバーを起動します。Copy
- Windsurf IDEを開き、設定に移動します
- 「AIフロー」または「MCP構成」セクションを見つけます
- Gmail IMAP MCP サーバー構成を追加します。Copy
- 設定を保存し、必要に応じてWindsurfを再起動します。
- Claude Desktopと同じコマンドを使用して、Cascade(WindsurfのAIアシスタント)にGmailアカウントを操作するよう依頼できるようになりました。
一般的な使用例
1. メールトリアージ
2. メールの検索と整理
3. メールの構成
Gmail特有の考慮事項
ラベルの命名規則
Gmail ではラベル名に特定の要件があります。
- ラベル名は大文字と小文字が区別されます
- 一部の特殊文字は使用できない場合があります
- システムラベル(受信トレイ、送信済み、ゴミ箱など)は作成または削除できません
- ネストされたラベルはスラッシュで表されます(例: "Projects/ProjectX")
メールIDの形式
この MCP サーバーで使用される電子メール ID の形式は次のとおりです。
メール ID を必要とするツール ( mark-as-read
やmove-email
など) を使用する場合は、メール取得ツールによって返される完全なリソース URI を使用するようにしてください。
セキュリティに関する考慮事項
- サーバーはOAuth2認証情報を
~/.gmail_imap_mcp_credentials
ディレクトリにローカルに保存します。 client_secret.json
やトークンファイルを決して共有しないでください- サーバーは安全な接続を使用してのみ Gmail の IMAP サーバーに接続します
- メールの添付ファイルはデフォルトで
downloads
ディレクトリにダウンロードされます - メールデータを保護するために、共有環境でサーバーを使用する場合は注意してください。
トラブルシューティング
認証の問題
client_secret.json
が~/.gmail_imap_mcp_credentials
ディレクトリに正しく配置されていることを確認します。- Google Cloud プロジェクトで Gmail API が有効になっていることを確認してください
- トークンの有効期限が切れている場合は再認証をお試しください
- 「読み取り専用ファイルシステム」エラーが表示される場合は、資格情報ディレクトリが書き込み可能であることを確認してください。
接続の問題
- インターネット接続を確認してください
- GoogleアカウントにIMAPアクセスをブロックする可能性のあるセキュリティ制限がないことを確認してください
- Googleアカウント設定で「安全性の低いアプリのアクセス」を有効にする必要があるかどうかを確認してください
メール送信の問題
- GmailアカウントがSMTPアクセスを許可していることを確認する
- Googleアカウント設定で「安全性の低いアプリのアクセス」を有効にする必要があるかどうかを確認してください
- 添付ファイルが大きすぎないことを確認してください(Gmail には 25 MB の制限があります)
ラベル管理の問題
- ラベルの作成に失敗した場合は、ラベルが既に存在するかどうかを確認します(大文字と小文字を区別します)
- システムラベルを作成または削除することはできません
- ラベル名が Gmail の命名規則に従っていることを確認する
メールの移動に関する問題
- ラベル間でメールを移動できない場合は、ソースラベルとターゲットラベルの両方が存在することを確認してください。
- メールIDの形式が正しいことを確認してください
- メールを変更するのに十分な権限があることを確認してください
メールID解析の問題
- メールIDの操作が失敗した場合は、完全なリソースURIを使用していることを確認してください。
- システムはURIの最後の部分を実際のメールIDとして解析します。
- 形式は次のようになります:
email://message/{account}_{mailbox}_{id}
ライセンス
サポート
問題や機能のリクエストについては、GitHub リポジトリで問題を開いてください。
コマンドラインインターフェース
このパッケージは、MCP サーバーに加えて、Gmail アカウントと直接やり取りするためのコマンドライン インターフェース (CLI) も提供します。
インストール
パッケージをインストールすると、CLI が自動的にインストールされます。
利用可能なコマンド
1. Gmailアカウントを認証する
2. 特定のメッセージに返信する
3. スレッドに返信する
CLI引数
CLI は、メッセージやスレッドに返信するための次の引数をサポートしています。
account
: 使用するGmailアカウントemail_id
/thread_id
: 返信先のメール/スレッドIDbody
: 返信メッセージの本文(プレーンテキスト)--mailbox
: メール/スレッドを含むメールボックス (デフォルト: INBOX)--html
: 返信本文のHTMLバージョン--attachments
: 返信に添付する1つ以上のファイルパス
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
AI アシスタントが IMAP 経由で Gmail アカウントとやり取りできるようになり、モデル コンテキスト プロトコルを通じてメールの一覧表示、検索、読み取り、送信、ラベルとフォルダの管理、添付ファイルへのアクセスが可能になります。
- Features
- Prerequisites
- Installation
- Setup Google Cloud Project
- Recent Enhancements
- Claude Desktop Guide
- Tools Reference
- Advanced Usage Examples
- Architecture and Implementation Details
- Contributing
- Usage
- Available Tools and Examples
- Available Prompts
- Integration with AI Assistants
- Connecting with AI Assistants
- Common Use Cases
- Gmail-Specific Considerations
- Security Considerations
- Troubleshooting
- License
- Support
- Command Line Interface