Enhanced Gmail MCP Server について
Enhanced Gmail MCP Server は Python で書かれた Gmail 向けの MCP サーバーで、Claude などの AI アシスタントが自然言語で Gmail を管理できるようにします。メールの送受信、下書き、ラベル、フォルダー、検索、フィルター、アーカイブに対応しています。利用には Gmail API を有効にした Google Cloud プロジェクトと OAuth 2.0 認証情報が必要です。
主な機能
- 01メールの送信、読み取り、ゴミ箱への移動と既読管理
- 02下書きの作成、一覧表示、編集
- 03ラベルとフォルダーの作成、適用、名前変更、削除
- 04Gmail の検索構文による検索とフィルター管理
- 05メールのアーカイブ、一括アーカイブ、受信トレイへの復元
活用シーン
- 01AI アシスタントによる未読メールの一覧化とラベル整理
- 02特定の差出人からのメールの一括アーカイブ
- 03自然言語の指示による会議関連メールの下書き作成
MCP 対応
MCP サーバーとして、Gmail のメール、ラベル、フィルター、アーカイブ操作を MCP クライアントにツールとして公開し、OAuth 2.0 で Gmail API に接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
拡張 Gmail MCP サーバー
Python で記述された、Gmail 統合のための強力で機能豊富な Model Context Protocol(MCP)サーバーです。このサーバーを使うと、Claude などの AI アシスタントが自然言語を通じて Gmail を操作でき、包括的なメール管理機能を利用できます。
🌟 主な機能
📧 メール管理全般
- 件名、本文、宛先をカスタマイズしてメールを送信
- すべてのメタデータとともにメールの内容を読み取り、取得
- 確認を行ってメールをゴミ箱に移動
- メールを既読または未読に設定
- ブラウザーでメールを直接開く
📝 下書きの管理
- 後で確認するためのメールの下書きを作成
- すべての下書きメールを一覧表示
- 既存の下書きを編集
🏷️ 高度なラベル管理
- 利用可能なすべてのラベルを一覧表示
- カスタムラベルを作成
- メールにラベルを適用/削除
- 既存のラベル名を変更
- 使用していないラベルを削除
- ラベルでメールを検索
📁 フォルダーの整理
- 新しいフォルダーを作成(Gmail のラベルとして実装)
- フォルダー間でメールを移動
- 利用可能なすべてのフォルダーを一覧表示
🔍 強力な検索と絞り込み
- Gmail の高度な検索クエリ構文を使ってメールを検索
- メールフィルターを作成、管理、削除
- 送信者、宛先、件名、本文などで絞り込み
- 柔軟なパラメーターで検索結果をカスタマイズ
🗄️ アーカイブの管理
- メールをアーカイブ(削除せずに受信トレイから移動)
- 検索条件に一致する複数のメールを一括でアーカイブ
- アーカイブ済みメールをすべて一覧表示
- アーカイブ済みメールを受信トレイに復元
🚀 はじめに
前提条件
- Python 3.12+
- Python MCP SDK >= 2.0
- Gmail API が有効になっている Google Cloud プロジェクト
- OAuth 2.0 認証情報
インストール
# Clone the repository
git clone https://github.com/theposch/gmail-mcp.git
cd gmail-mcp
# Set up a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install the package
pip install -e .
Google Cloud の設定
- 新しい Google Cloud プロジェクトを作成します
- Gmail APIを有効にします
- OAuth 同意画面を設定します:
- ユーザーの種類として「External」を選択します
- メールアドレスをテストユーザーとして追加します
- スコープを追加します:
https://www.googleapis.com/auth/gmail/modify
- OAuth 2.0 認証情報を作成します:
- アプリケーションの種類として「Desktop app」を選択します
- JSON 認証情報ファイルをダウンロードします
設定
認証情報を安全に保管し、サーバーの実行時にその場所を指定します:
# Example directory structure for credentials
mkdir -p ~/.gmail-mcp
# Move your downloaded credentials file
mv ~/Downloads/client_secret_*.json ~/.gmail-mcp/credentials.json
🔧 使い方
Claude Desktop で実行する
Claude Desktop の設定ファイル(通常は ~/Library/Application Support/Claude/claude_desktop_config.json)に以下を追加します:
{
"mcpServers": {
"gmail": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/gmail-mcp",
"run",
"gmail",
"--creds-file-path",
"/absolute/path/to/credentials.json",
"--token-path",
"/absolute/path/to/tokens.json"
]
}
}
}
MCP Inspector でテストする
テストとデバッグには、MCP Inspector を使用します:
npx @modelcontextprotocol/inspector uv run /path/to/gmail-mcp/src/gmail/server.py --creds-file-path /path/to/credentials.json --token-path /path/to/tokens.json
🔐 セキュリティに関する考慮事項
- 認証情報やトークンファイルをバージョン管理に登録しないでください
- 適切なアクセス権を設定した安全な場所に認証情報を保管します
- サーバーは、機密性の高い操作を実行する前にユーザーの確認を求めます
- Google Cloud Console を定期的に確認し、不審なアクティビティがないか確認します
- 機密性の高いパスには環境変数の使用を検討してください
🛠️ アーキテクチャ
この実装は、Google API クライアントライブラリを通じてすべての Gmail 操作を処理する、包括的な単一ファイルアーキテクチャを採用しています。主なコンポーネントは次のとおりです:
- トークンを自動更新する OAuth2 認証
- 包括的なエラー処理とログ記録
- 明確な入力スキーマを備えた構造化ツール定義
- 効率的なメールの解析と書式設定
📚 プロンプトの例
Gmail MCP サーバーに接続した後、Claude で次のプロンプトを試してください:
- 「未読メールを表示して」
- 「添付ファイルのある、[email protected] からのメールを検索して」
- 「『Important Projects』という新しいラベルを作成して」
- 「近日中の会議について、[email protected] 宛てのメールの下書きを作成して」
- 「[email protected] からのメールをすべてアーカイブして」
- 「チームからのメールに自動でラベルを付けるフィルターを作成して」
🤝 コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
📄 ライセンス
このプロジェクトはGPL-3.0ライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。
🙏 謝辞
- コミュニティのさまざまなMCP サーバー実装に着想を得ています
- Model Context Protocolフレームワークを使用して構築されています
- Googleの公式APIクライアントライブラリを使用しています
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。