Gmail MCP

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 サーバーを実行する前に、次のものを用意してください。

  1. Python 3.12以上
  2. Gmail API が有効になっている Google Cloud プロジェクト
  3. OAuth 2.0 クライアントID認証情報

インストール

ソースからインストール

  1. リポジトリをクローンします。
    git clone https://github.com/yourusername/gmail-imap-mcp.git cd gmail-imap-mcp
  2. 仮想環境を作成してアクティブ化します。
    python -m venv .venv # On Windows .venv\Scripts\activate # On Unix/MacOS source .venv/bin/activate
  3. パッケージをインストールします。
    pip install -e .

Google Cloud プロジェクトの設定

  1. Google Cloud Consoleにアクセスします
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択してください
  3. プロジェクトで Gmail API を有効にします。
    • 「APIとサービス」>「ライブラリ」に移動します
    • 「Gmail API」を検索して有効にします
  4. OAuth 2.0 認証情報を作成します。
    • 「APIとサービス」>「認証情報」に移動します
    • 「認証情報を作成」>「OAuthクライアントID」をクリックします
    • アプリケーションの種類として「デスクトップアプリ」を選択します
    • クライアント構成ファイルをダウンロードする
  5. ダウンロードしたファイルを、資格情報ディレクトリにclient_secret.jsonとして保存します。
    mkdir -p ~/.gmail_imap_mcp_credentials # Move the downloaded file to ~/.gmail_imap_mcp_credentials/client_secret.json

最近の機能強化

強化された検索機能

Gmail IMAP MCP サーバーでは、検索機能が大幅に改善されました。

  • Gmail スタイルのクエリ構文: from:example@gmail.com is:unread has:attachmentなどの Gmail スタイルのクエリを使用します。
  • 特殊文字のサポート: 特殊文字を含むクエリラベル (例: label:$$$$$ )
  • 日付範囲フィルタリング: after_datebefore_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 : 応答する前に、本文、ヘッダー、連絡フォームの実際の送信者情報を含む完全なメール コンテンツを取得するには、常にこのツールを使用します。

クロードのベストプラクティス

  1. 常にメールの全内容を取得する: 返信する前に、必ずget-emailを使用して、実際の送信者情報を含む完全なメッセージを確認します。
  2. 適切な返信機能を使用する:既存のメールに返信する際には、スレッドが壊れてしまうため、 send-emailを使用しないでください。代わりに適切な返信機能を使用してください。
  3. お問い合わせフォームを正しく処理する: お問い合わせフォームの送信では、 get-emailから送信される電子メール コンテンツ内の実際の送信者情報を確認します。
  4. メールを既読としてマークする: 重複した返信を避けるために、メールを処理した後は常にメールを既読としてマークします。
  5. スレッド管理: 既存の会話を続けるときにreply-to-thread使用して、適切な電子メールのスレッドを維持します。

特殊なケース

お問い合わせフォームメール

お問い合わせフォームのメールを処理する場合:

  1. 拡張パーサーによって提供される「真の送信者」情報を探す
  2. フォーム送信アドレスではなく、実際の送信者に返信する
  3. ビジネスを代表する際には、適切なプロフェッショナルな口調を維持する
メールIDとリソースURI

電子メール ID を使用する場合、次の 2 つの形式に遭遇する可能性があります。

  • 生のID(例: 12345
  • リソース URI (例: email://message/account_INBOX_12345 )

すべてのツールが更新され、両方の形式を正しく処理できるようになりました。

推奨ワークフロー

  1. get-unread-emailsを検索する
  2. 未読メールごとに、 get-emailを使用して全内容を取得します。
  3. これが新しい会話なのか、既存のスレッドの続きなのかを判断する
  4. 適切な返信機能( reply-to-messageまたはreply-to-thread )を使用する
  5. 既読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 : メールを未読としてマークする

高度な使用例

日付範囲とラベルによる拡張検索

{ "name": "search-emails", "arguments": { "account": "your.email@gmail.com", "mailbox": "$$$$$", "query": "important project", "after_date": "2023/01/01", "before_date": "2023/12/31", "is_unread": true, "limit": 20 } }

追加のフィルタリングで未読メールを取得する

{ "name": "get-unread-emails", "arguments": { "account": "your.email@gmail.com", "mailbox": "$$$$$", "additional_query": "client meeting", "after_date": "2023/06/01", "limit": 10 } }

複雑なGmailクエリで検索

{ "name": "search-emails", "arguments": { "account": "your.email@gmail.com", "query": "from:client@example.com has:attachment -in:trash", "limit": 15 } }

アーキテクチャと実装の詳細

資格情報の保存

Gmail IMAP MCPサーバーは、OAuth2認証情報をユーザーのホームディレクトリ( ~/.gmail_imap_mcp_credentials/に保存します。この方法にはいくつかの利点があります。

  1. セキュリティ: 資格情報はアプリケーションディレクトリではなく、ユーザー固有の場所に保存されます
  2. 永続性: 資格情報は、異なるセッションやアプリケーションの再起動後も保持されます。
  3. 互換性: 読み取り専用ファイルシステムでの権限の問題を回避します

資格情報ディレクトリには次のものが含まれます。

  • client_secret.json : Google Cloud Console からの OAuth クライアント認証情報
  • 認証された各 Gmail アカウントのトークン ファイル (形式: token_{email_address}.json )

IMAP実装

サーバーは、Gmail での IMAP 操作に Python のimaplib2ライブラリを使用します。主な実装の詳細は次のとおりです。

  1. 接続: ポート 993 で Gmail の IMAP サーバー ( imap.gmail.com ) への安全な接続
  2. 認証: XOAUTH2 メカニズムを使用した OAuth2 認証
  3. メールの取得: メールはRFC822形式を使用して取得され、Pythonのemailモジュールで解析されます。
  4. ラベル管理: Gmail のラベルは IMAP メールボックス操作を通じて管理されます
  5. Gmail クエリ解析: Gmail スタイルのクエリは IMAP 検索条件にインテリジェントに変換されます

メールIDの形式

システム内の電子メール ID は次の形式に従います。

email://message/{account}_{mailbox}_{id}

どこ:

  • {account} : Gmailアカウントのアドレス
  • {mailbox} : メールが入っているメールボックス/ラベル
  • {id} : メールの一意のIMAP ID

この形式により、システムはさまざまなアカウントやメールボックス間で電子メールを一意に識別できます。

貢献

Gmail IMAP MCP サーバーの改善への貢献を歓迎します。お気軽に問題の報告やプルリクエストをお送りください。

使用法

サーバーの起動

Gmail IMAP MCP サーバーを実行します。

gmail-imap-mcp

Gmailアカウントの認証

  1. メールアドレスでauthenticate-gmailツールを使用する
  2. ブラウザでOAuth2認証フローに従ってください
  3. 認証されると、サーバーは将来の使用のために資格情報を保存します

利用可能なツールと例

Gmail IMAP MCPサーバーは、Gmailアカウントを操作するための包括的なツールセットを提供しています。以下に、利用可能なすべてのツールの詳細なリストと、それらの使用例を示します。

認証

1. Gmailを認証する

MCP サーバーで使用する Gmail アカウントを認証します。

パラメータ:

  • email : 認証するメールアドレス

例:

{ "name": "authenticate-gmail", "arguments": { "email": "your.email@gmail.com" } }

メールの取得と検索

2. メール検索

さまざまな検索条件を使用して、Gmail アカウント内のメールを検索します。

パラメータ:

  • account : 検索するメールアカウント
  • mailbox : 検索するメールボックス (デフォルト: INBOX)
  • query : 検索クエリ
  • limit : 返されるメールの最大数(デフォルト: 10)

例: 特定の送信者からのメールを検索する:

{ "name": "search-emails", "arguments": { "account": "your.email@gmail.com", "mailbox": "INBOX", "query": "from:sender@example.com", "limit": 5 } }

例: 特定の件名のメールを検索する:

{ "name": "search-emails", "arguments": { "account": "your.email@gmail.com", "query": "subject:\"Meeting Invitation\"" } }

例: 本文に特定のテキストを含むメールを検索する:

{ "name": "search-emails", "arguments": { "account": "your.email@gmail.com", "query": "TEXT \"project update\"" } }
3. 未読メールを取得する

Gmail アカウントから未読メールを取得します。

パラメータ:

  • account : メールを受信するメールアカウント
  • mailbox : メールを受信するメールボックス (デフォルト: INBOX)
  • limit : 返されるメールの最大数(デフォルト: 10)

例:

{ "name": "get-unread-emails", "arguments": { "account": "your.email@gmail.com", "limit": 20 } }

メールの作成と送信

4. メールを送信する

オプションの添付ファイルと HTML コンテンツを含むメールを Gmail アカウントから送信します。

パラメータ:

  • account : 送信元のメールアカウント
  • to : 受信者のメールアドレス(複数指定の場合はカンマ区切り)
  • subject : メールの件名
  • body : プレーンテキストのメール本文
  • cc : カーボンコピーの受信者(オプション)
  • bcc : ブラインドカーボンコピーの受信者(オプション)
  • html_body : メール本文のHTMLバージョン(オプション)
  • attachments : 添付オブジェクトのリスト(オプション)
    • 各添付オブジェクトには次のものが必要です。
      • path : ファイルへのパス
      • filename : カスタムファイル名(オプション)
      • content_type : MIMEタイプ(オプション)

例 - シンプルなメール:

{ "name": "send-email", "arguments": { "account": "your.email@gmail.com", "to": "recipient@example.com", "subject": "Hello from Gmail MCP", "body": "This is a test email sent via the Gmail IMAP MCP server." } }

例 - CC、BCC、HTML コンテンツを含むメール:

{ "name": "send-email", "arguments": { "account": "your.email@gmail.com", "to": "recipient@example.com", "subject": "Meeting Agenda", "body": "Please find the agenda for our upcoming meeting.", "cc": "manager@example.com", "bcc": "archive@example.com", "html_body": "<h1>Meeting Agenda</h1><p>Please find the agenda for our <b>upcoming meeting</b>.</p>" } }

例 - 添付ファイル付きメール:

{ "name": "send-email", "arguments": { "account": "your.email@gmail.com", "to": "recipient@example.com", "subject": "Document Attached", "body": "Please find the attached document.", "attachments": [ { "path": "/path/to/document.pdf", "filename": "important_document.pdf", "content_type": "application/pdf" } ] } }
5. メッセージへの返信

オプションの添付ファイルと HTML コンテンツを使用して、特定の電子メール メッセージに返信します。

パラメータ:

  • account : 返信元のメールアカウント
  • email_id : 返信先のメールID(形式: email://message/{account}_{mailbox}_{id}または生のID)
  • body : プレーンテキストの返信本文
  • mailbox : メールが入っているメールボックス (デフォルト: INBOX)
  • html_body : 返信のHTMLバージョン(オプション)
  • attachments : 添付オブジェクトのリスト(オプション)
    • 各添付オブジェクトには次のものが必要です。
      • path : ファイルへのパス
      • filename : カスタムファイル名(オプション)
      • content_type : MIMEタイプ(オプション)

例 - 簡単な返信:

{ "name": "reply-to-message", "arguments": { "account": "your.email@gmail.com", "email_id": "email://message/your.email@gmail.com_INBOX_12345", "body": "Thanks for your email. I'll review your proposal and get back to you soon." } }

例 - 添付ファイル付きで返信:

{ "name": "reply-to-message", "arguments": { "account": "your.email@gmail.com", "email_id": "email://message/your.email@gmail.com_INBOX_12345", "body": "Please find my feedback attached.", "html_body": "<p>Please find my <b>feedback</b> attached.</p>", "attachments": [ { "path": "/path/to/feedback.pdf", "filename": "project_feedback.pdf" } ] } }
6. スレッドへの返信

オプションの添付ファイルと HTML コンテンツを使用して、電子メール スレッドに返信します (スレッド内の最新のメッセージを使用)。

パラメータ:

  • account : 返信元のメールアカウント
  • thread_id : 返信先のスレッドID(形式: email://message/{account}_{mailbox}_{id}または生のID)
  • body : プレーンテキストの返信本文
  • mailbox : スレッドを含むメールボックス (デフォルト: INBOX)
  • html_body : 返信のHTMLバージョン(オプション)
  • attachments : 添付オブジェクトのリスト(オプション)
    • 各添付オブジェクトには次のものが必要です。
      • path : ファイルへのパス
      • filename : カスタムファイル名(オプション)
      • content_type : MIMEタイプ(オプション)

例 - 簡単なスレッド返信:

{ "name": "reply-to-thread", "arguments": { "account": "your.email@gmail.com", "thread_id": "email://message/your.email@gmail.com_INBOX_12345", "body": "Let's continue this discussion in our meeting tomorrow." } }

ラベル管理

7. ラベルを作成する

Gmail アカウントに新しいラベル/メールボックスを作成します。

パラメータ:

  • account : ラベルを作成するメールアカウント
  • label_name : 作成するラベルの名前

例:

{ "name": "create-label", "arguments": { "account": "your.email@gmail.com", "label_name": "ProjectX" } }
8. ラベルの削除

Gmail アカウントからラベル/メールボックスを削除します。

パラメータ:

  • account : ラベルを削除するメールアカウント
  • label_name : 削除するラベルの名前

例:

{ "name": "delete-label", "arguments": { "account": "your.email@gmail.com", "label_name": "OldProject" } }
9. リストラベル

Gmail アカウント内のすべてのラベル/メールボックスを一覧表示します。

パラメータ:

  • account : ラベルを一覧表示するメールアカウント

例:

{ "name": "list-labels", "arguments": { "account": "your.email@gmail.com" } }

メールの整理

10. メールの移動

メールをあるラベル/メールボックスから別のラベル/メールボックスに移動します。

パラメータ:

  • account : メールアカウント
  • email_id : 移動するメールID(形式: email://message/{account}_{mailbox}_{id}
  • source_mailbox : ソースメールボックス
  • target_mailbox : ターゲットメールボックス

例:

{ "name": "move-email", "arguments": { "account": "your.email@gmail.com", "email_id": "email://message/your.email@gmail.com_INBOX_12345", "source_mailbox": "INBOX", "target_mailbox": "ProjectX" } }

添付ファイルの処理

11. 添付ファイルのダウンロード

電子メールから添付ファイルをダウンロードします。

パラメータ:

  • account : メールアカウント
  • email_id : メールID(形式: email://message/{account}_{mailbox}_{id}
  • attachment_index : ダウンロードする添付ファイルのインデックス(0から始まる)
  • mailbox : メールが入っているメールボックス (デフォルト: INBOX)
  • download_dir : 添付ファイルを保存するディレクトリ(デフォルト: "downloads")

例:

{ "name": "download-attachment", "arguments": { "account": "your.email@gmail.com", "email_id": "email://message/your.email@gmail.com_INBOX_12345", "attachment_index": 0, "download_dir": "my_attachments" } }

メールステータス管理

12. 既読にする

メールを既読としてマークします。

パラメータ:

  • account : メールアカウント
  • email_id : メールID(形式: email://message/{account}_{mailbox}_{id}
  • mailbox : メールが入っているメールボックス (デフォルト: INBOX)

例:

{ "name": "mark-as-read", "arguments": { "account": "your.email@gmail.com", "email_id": "email://message/your.email@gmail.com_INBOX_12345" } }
13. 未読としてマーク

メールを未読としてマークします。

パラメータ:

  • account : メールアカウント
  • email_id : メールID(形式: email://message/{account}_{mailbox}_{id}
  • mailbox : メールが入っているメールボックス (デフォルト: INBOX)

例:

{ "name": "mark-as-unread", "arguments": { "account": "your.email@gmail.com", "email_id": "email://message/your.email@gmail.com_INBOX_12345" } }

利用可能なプロンプト

サーバーは、AI アシスタントが使用できる次のプロンプトを提供します。

1. メールの要約

最近のメールの要約を作成します。

パラメータ:

  • account : 要約するメールアカウント
  • mailbox : 要約するメールボックス (デフォルト: INBOX)
  • count : 要約するメールの数(デフォルト: 5)

例:

{ "name": "summarize-emails", "arguments": { "account": "your.email@gmail.com", "mailbox": "INBOX", "count": 10 } }

AIアシスタントとの統合

Gmail IMAP MCPサーバーは、モデルコンテキストプロトコル(MCP)をサポートするAIアシスタントと統合できます。典型的なワークフローは以下のとおりです。

  1. 認証: AI アシスタントはauthenticate-gmailツールを使用してユーザーの Gmail アカウントを認証します。
  2. 電子メール管理: アシスタントは、サーバーが提供するさまざまなツールを使用して電子メールを取得、検索、管理できます。
  3. 電子メールの作成: アシスタントは、ユーザーの指示に基づいて電子メールの作成と送信を支援できます。
  4. 電子メールの整理: アシスタントは、ラベルを作成したり、ラベル間で電子メールを移動したり、電子メールを既読/未読としてマークしたりすることで、電子メールを整理するのに役立ちます。
  5. 電子メールの要約: アシスタントはsummarize-emailsプロンプトを使用して電子メールを要約できます。

AIアシスタントとの接続

クロードデスクトップ

Gmail IMAP MCP サーバーを Claude Desktop に接続するには:

  1. Gmail IMAP MCP サーバーを起動します。
    python -m gmail_imap_mcp.server
  2. Claude Desktopを開き、設定(歯車アイコン)に移動します
  3. 「詳細設定」セクションまでスクロールし、「MCP設定の編集」をクリックします。
  4. Gmail IMAP MCP サーバー構成を追加します。
    { "servers": [ { "name": "Gmail IMAP", "url": "http://localhost:8080", "tools": [ "authenticate-gmail", "get-unread-emails", "get-email", "search-emails", "reply-to-message", "reply-to-thread", "send-email", "list-labels", "create-label", "delete-label", "move-email", "mark-as-read", "mark-as-unread", "download-attachment" ] } ] }
  5. 「保存」をクリックしてClaude Desktopを再起動します
  6. Claude に Gmail アカウントの操作を依頼できるようになりました。最適な結果を得るには、上記の「Claude デスクトップ ガイド」セクションを参照して、返信機能の適切な使用方法とメール処理のベストプラクティスをご確認ください。試してみることを推奨するタスク:
    • 「未読メールを見せて」
    • 「メール[ID]の全内容を取得する」
    • 「このメールに[内容]を添えて返信してください」
    • [コンテンツ]でこのメールスレッドを続ける」
    • 「このメールを既読にする」
    • [送信者]からのメールを検索」

**重要な注意:**電子メールの返信の場合、適切な電子メールのスレッドを維持するために、常にsend-emailではなく適切な返信機能 ( reply-to-messageまたはreply-to-thread ) を使用してください。

ウィンドサーフィンIDE

Gmail IMAP MCP サーバーを Windsurf IDE に接続するには:

  1. Gmail IMAP MCP サーバーを起動します。
    python -m gmail_imap_mcp.server
  2. Windsurf IDEを開き、設定に移動します
  3. 「AIフロー」または「MCP構成」セクションを見つけます
  4. Gmail IMAP MCP サーバー構成を追加します。
    { "servers": [ { "name": "Gmail IMAP", "url": "http://localhost:8080", "tools": [ "list-emails", "get-email", "search-emails", "send-email", "list-mailboxes", "create-label", "move-email", "mark-as-read", "download-attachment" ] } ] }
  5. 設定を保存し、必要に応じてWindsurfを再起動します。
  6. Claude Desktopと同じコマンドを使用して、Cascade(WindsurfのAIアシスタント)にGmailアカウントを操作するよう依頼できるようになりました。

一般的な使用例

1. メールトリアージ

Assistant: I'll help you triage your unread emails. User: Yes, please check my unread emails. Assistant: [Uses get-unread-emails tool] Assistant: You have 5 unread emails. The most urgent appears to be from your boss about the quarterly report due tomorrow. User: Mark that as read and I'll look at it right away. Assistant: [Uses mark-as-read tool]

2. メールの検索と整理

Assistant: Would you like me to find specific emails for you? User: Yes, find all emails from john@example.com about the project budget. Assistant: [Uses search-emails tool with query "from:john@example.com project budget"] Assistant: I found 3 emails from John about the project budget. Would you like me to create a label for these? User: Yes, create a "Budget" label and move them there. Assistant: [Uses create-label tool followed by move-email tool for each email]

3. メールの構成

Assistant: Would you like me to draft an email for you? User: Yes, write a follow-up email to the marketing team about our campaign results. Assistant: [Drafts email content] Assistant: Here's a draft. Would you like me to send it? User: Yes, but add Sarah in CC. Assistant: [Uses send-email tool with the drafted content and CC]

Gmail特有の考慮事項

ラベルの命名規則

Gmail ではラベル名に特定の要件があります。

  1. ラベル名は大文字と小文字が区別されます
  2. 一部の特殊文字は使用できない場合があります
  3. システムラベル(受信トレイ、送信済み、ゴミ箱など)は作成または削除できません
  4. ネストされたラベルはスラッシュで表されます(例: "Projects/ProjectX")

メールIDの形式

この MCP サーバーで使用される電子メール ID の形式は次のとおりです。

email://message/{account}_{mailbox}_{id}

メール ID を必要とするツール ( mark-as-readmove-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}

ライセンス

MITライセンス

サポート

問題や機能のリクエストについては、GitHub リポジトリで問題を開いてください。

コマンドラインインターフェース

このパッケージは、MCP サーバーに加えて、Gmail アカウントと直接やり取りするためのコマンドライン インターフェース (CLI) も提供します。

インストール

パッケージをインストールすると、CLI が自動的にインストールされます。

pip install -e .

利用可能なコマンド

1. Gmailアカウントを認証する
gmail-imap-cli authenticate your.email@gmail.com
2. 特定のメッセージに返信する
gmail-imap-cli reply-to-message your.email@gmail.com 12345 "Thanks for your email." --mailbox INBOX --html "<p>Thanks for your email.</p>" --attachments /path/to/file1.pdf /path/to/file2.docx
3. スレッドに返信する
gmail-imap-cli reply-to-thread your.email@gmail.com 12345 "Let's continue this discussion." --mailbox INBOX --html "<p>Let's continue this discussion.</p>" --attachments /path/to/file.pdf

CLI引数

CLI は、メッセージやスレッドに返信するための次の引数をサポートしています。

  • account : 使用するGmailアカウント
  • email_id / thread_id : 返信先のメール/スレッドID
  • body : 返信メッセージの本文(プレーンテキスト)
  • --mailbox : メール/スレッドを含むメールボックス (デフォルト: INBOX)
  • --html : 返信本文のHTMLバージョン
  • --attachments : 返信に添付する1つ以上のファイルパス
-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

AI アシスタントが IMAP 経由で Gmail アカウントとやり取りできるようになり、モデル コンテキスト プロトコルを通じてメールの一覧表示、検索、読み取り、送信、ラベルとフォルダの管理、添付ファイルへのアクセスが可能になります。

  1. Features
    1. Prerequisites
      1. Installation
        1. Install from source
      2. Setup Google Cloud Project
        1. Recent Enhancements
          1. Enhanced Search Functionality
          2. Contact Form Email Processing
          3. Backtick JSON Handling
        2. Claude Desktop Guide
          1. Key Tools and Functions
          2. Best Practices for Claude
          3. Special Cases
          4. Recommended Workflow
        3. Tools Reference
          1. Authentication
          2. Email Retrieval
          3. Email Sending
          4. Label Management
          5. Email Organization
        4. Advanced Usage Examples
          1. Enhanced Search with Date Range and Label
          2. Get Unread Emails with Additional Filtering
          3. Search with Complex Gmail Query
        5. Architecture and Implementation Details
          1. Credential Storage
          2. IMAP Implementation
          3. Email ID Format
        6. Contributing
          1. Usage
            1. Starting the Server
            2. Authenticating Gmail Accounts
          2. Available Tools and Examples
            1. Authentication
            2. Email Retrieval and Search
            3. Email Composition and Sending
            4. Label Management
            5. Email Organization
            6. Attachment Handling
            7. Email Status Management
          3. Available Prompts
            1. 1. summarize-emails
          4. Integration with AI Assistants
            1. Connecting with AI Assistants
              1. Claude Desktop
              2. Windsurf IDE
            2. Common Use Cases
              1. 1. Email Triage
              2. 2. Email Search and Organization
              3. 3. Email Composition
            3. Gmail-Specific Considerations
              1. Label Naming Conventions
              2. Email ID Format
            4. Security Considerations
              1. Troubleshooting
                1. Authentication Issues
                2. Connection Issues
                3. Email Sending Issues
                4. Label Management Issues
                5. Email Movement Issues
                6. Email ID Parsing Issues
              2. License
                1. Support
                  1. Command Line Interface
                    1. Installation
                    2. Available Commands
                    3. CLI Arguments
                  ID: zxsx66isin