Gmail について
Gmail は、Gmail の検索、閲覧、送信、管理を AI システムから行うための MCP サーバーです。MCP クライアントと Google の間で OAuth を中継し、トークンや状態は保持しません。
主な機能
- 01メールとスレッドの検索・閲覧
- 02メール送信・転送と下書き管理
- 03アーカイブ・ラベル付け・ゴミ箱への移動
- 04ラベル・フィルター・添付ファイルの管理
- 05不在時の自動返信設定
活用シーン
- 01予約メールからフライト情報を抽出
- 02領収書を検索して経費申請
- 03メールを特定して添付ファイルを取得
- 04不在時の自動返信を設定
MCP 対応
MCP クライアントに、メール、スレッド、下書き、ラベル、添付ファイル、フィルター、設定を扱うツールを提供します。OAuth と Gmail API のリクエストを中継し、トークンや状態は保存しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y gmail-mcpGOOGLE_ACCESS_TOKENシークレットGoogle OAuth access token with Gmail scopes.MCP_TRANSPORTTransport type.GOOGLE_CLIENT_IDGoogle OAuth client ID.GOOGLE_CLIENT_SECRETシークレットGoogle OAuth client secret.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
gmail-mcp
Gmail 用の MCP サーバーです。メールの閲覧、送信、アーカイブ、管理ができます。
ユースケース
フライトのチェックイン:「明日のフライトのチェックインをして」→確認メールを見つけ、予約番号を抽出し、ブラウザーを使ってチェックインを完了します。
経費の申請:「先週の Amazon での購入を経費として申請して」→領収書を見つけ、金額とカテゴリを抽出し、経費システムに登録します。
荷物の追跡:「Acme からの荷物はどこ?」→発送通知を見つけ、追跡番号を抽出し、現在の配送状況を取得します。
添付ファイルを探す:「予算について何に決まったっけ? Michelle が昨日何か送ってくれた」→メールを見つけ、添付されたスプレッドシートを開きます。
休暇モード:「12 月 20 日から 1 月 2 日まで休暇です」→Gmail の自動返信を設定し、カレンダーをブロックして、Slack のステータスをまとめて更新します。
会議後のフォローアップ:通話後、アシスタントが Gemini の文字起こしを読み、重要な決定事項を要約し、アクション項目を含むフォローアップメールの下書きを作成します。
(これらはあくまで例です。メールの検索、閲覧、送信が必要なワークフローであれば、どれでも利用できます。)
セットアップ
1. Google OAuth 認証情報を作成する
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成します(または既存のプロジェクトを使用します)
- Gmail API を有効にします
- APIs & Services → OAuth consent screen に移動し、同意画面を設定します
- APIs & Services → Credentials → Create Credentials → OAuth client ID に移動します
- Web application を選択します
http://localhost:3000/callbackを Authorized redirect URIs に追加します- Client ID と Client Secret を控えておきます
2. サーバーを実行する
GOOGLE_CLIENT_ID='your-client-id' \
GOOGLE_CLIENT_SECRET='your-client-secret' \
MCP_TRANSPORT=http \
npm start
サーバーはデフォルトで http://localhost:3000 で実行されます。PORT=3001 で変更できます。
3. MCP クライアントに追加する
サーバーを実行した状態で、install-mcp の手順に従ってください。MCP クライアント(Claude Code、Claude Desktop、Cursor、Cline、VS Code など)に適した設定が生成されます。
アーキテクチャ
このサーバーは、Google への OAuth プロキシ として動作します。
graph LR
A[MCP client] <--> B[gmail-mcp] <--> C[Google OAuth/API]
- サーバーは
/.well-known/oauth-authorization-serverを介して、自身を OAuth 認可サーバーとして公開します /registerは Google OAuth クライアントの認証情報を返します/authorizeはクライアントのコールバック URL を state にエンコードして Google にリダイレクトします/callbackは Google からコードを受け取り、クライアントのコールバックに転送します/tokenはクライアントの認証情報を付加して、トークンリクエストを Google に中継します/mcpは MCP リクエストを処理し、ベアラートークンを使って Gmail API を呼び出します
このサーバーはトークンや状態を保持せず、Google への OAuth リクエストを中継するだけです。
ツール
| ツール | 説明 |
|---|---|
gmail_get_profile | ユーザーのメールアドレスとプロフィール情報を取得 |
| メッセージ | |
gmail_messages_list | メッセージを検索/一覧表示(代わりに gmail_threads_list をご検討ください) |
gmail_message_get | 1 件のメッセージを取得 |
gmail_message_send | メールを送信 |
gmail_message_forward | 新しい宛先にメールを転送 |
gmail_message_modify | ラベルを追加/削除 |
gmail_message_archive | アーカイブ(受信トレイから削除) |
gmail_message_trash | ゴミ箱に移動 |
gmail_message_untrash | ゴミ箱から復元 |
gmail_message_delete | 完全に削除 |
gmail_messages_batch_modify | ラベルを一括変更 |
gmail_messages_batch_delete | 完全削除を一括実行 |
| スレッド | |
gmail_threads_list | スレッドを検索/一覧表示(推奨) |
gmail_thread_get | スレッド内のすべてのメッセージを取得(推奨) |
gmail_thread_modify | ラベルを追加/削除 |
gmail_thread_trash | ゴミ箱に移動 |
gmail_thread_untrash | ゴミ箱から復元 |
gmail_thread_delete | 完全に削除 |
| 下書き | |
gmail_drafts_list | 下書きを一覧表示 |
gmail_draft_get | 下書きを取得 |
gmail_draft_create | 下書きを作成 |
gmail_draft_update | 下書きを更新 |
gmail_draft_send | 下書きを送信 |
gmail_draft_delete | 下書きを削除 |
| ラベル | |
gmail_labels_list | すべてのラベルを一覧表示 |
gmail_label_get | ラベルを取得 |
gmail_label_create | ラベルを作成 |
gmail_label_update | ラベルを更新 |
gmail_label_delete | ラベルを削除 |
| 添付ファイル | |
gmail_attachment_get | 添付ファイルをダウンロード |
| フィルター | |
gmail_filters_list | メールフィルターを一覧表示 |
gmail_filter_get | フィルターを取得 |
gmail_filter_create | フィルターを作成 |
gmail_filter_delete | フィルターを削除 |
| 設定 | |
gmail_vacation_get | 休暇中の自動返信設定を取得 |
gmail_vacation_set | 休暇中の自動返信設定を設定 |
Gmail API のスコープ
gmail.readonly- メッセージとラベルを読み取るgmail.send- メッセージを送信するgmail.modify- メッセージを変更する(アーカイブ、ラベル、ゴミ箱)
貢献
GitHub でのプルリクエストを歓迎します!始めるには、次の手順に従ってください。
- Git と Node.js をインストールします
- リポジトリをクローンします
npm installで依存関係をインストールしますnpm run testを実行してテストを実行しますnpm run buildでビルドします
リリース
バージョンはセマンティック バージョニング仕様に準拠しています。
リリースするには:
npm version <major | minor | patch>を使用してバージョンを更新しますgit push --follow-tagsを実行してタグとともにプッシュします- GitHub Actions が NPM レジストリに公開するまで待ちます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。