mcp-gsuite MCP server について
mcp-gsuite は、AI アシスタントが OAuth2 認証を通じて Gmail と Google Calendar を扱えるようにする MCP サーバーです。複数の Google アカウントに対応しており、アカウントごとの補足情報をモデルに伝えることができます。
主な機能
- 01Gmail の柔軟な検索と本文の取得
- 02下書きの作成・削除と返信処理
- 03複数メールの一括取得と添付ファイルのローカル保存
- 04複数カレンダーの管理と予定の検索
- 05タイムゾーン、参加者、通知を指定した予定の作成
活用シーン
- 01未読メールや送信者で絞り込んだメールの要約
- 02特定のメールへの返信下書きの作成
- 03期間内の予定の確認と打ち合わせ候補の提案
MCP 対応
本プロジェクトは、Gmail と Google Calendar の操作を MCP クライアント向けのツールとして公開する MCP サーバーです。アカウント情報と OAuth 認証情報はローカルの設定ファイルで管理されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-gsuite MCP サーバー
プロンプトの例
現在、この MCP サーバーは Gmail と Calendar の連携に対応しており、次の機能を利用できます。
- 全般
- 複数の Google アカウント
- Gmail
- Gmail ユーザー情報の取得
- 柔軟な検索条件でメールを検索(例:未読、特定の送信者、日付範囲、添付ファイルの有無)
- ID を指定してメールの全文を取得
- 宛先、件名、本文、CC を指定して新しい下書きメールを作成
- 下書きメールを削除
- 既存のメールに返信(すぐに送信するか、下書きとして保存できます)
- ID を指定して複数のメールを一度に取得
- メールの複数の添付ファイルをローカルシステムに保存
- Calendar
- 複数のカレンダーを管理
- 指定した期間内の予定を取得
- 次の内容を指定して予定を作成:
- タイトル、開始時刻/終了時刻
- 場所と説明(任意)
- 参加者(任意)
- カスタムタイムゾーンのサポート
- 通知設定
- 予定を削除
試せるプロンプトの例:
-
最新の未読メッセージを取得して
-
Scrum Master からのメールを検索して
-
経理部門からのメールをすべて取得して
-
ABC に関するメールを探して要約して
-
Alice の最後のメールへの丁寧な返信を書いて、下書きとして保存して
-
Bob のメールにお礼のメッセージを返信して。下書きとして保存して
-
明日の予定は何がある?
-
来週の個人アカウントの「Family」カレンダーを確認して
-
来週、Tim と 2 時間のイベントを企画したいです。候補の時間帯を提案して
クイックスタート
インストール
Smithery 経由でのインストール
Smithery 経由で mcp-gsuite を Claude Desktop に自動インストールするには:
npx -y @smithery/cli install mcp-gsuite --client claude
OAuth 2
Google Workspace(G Suite)API では OAuth2 認証が必要です。認証を設定するには、次の手順に従ってください。
-
OAuth2 認証情報を作成します:
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
- プロジェクトで Gmail API と Google Calendar API を有効にします
- 「認証情報」→「認証情報を作成」→「OAuth クライアント ID」に進みます
- アプリケーションの種類として「デスクトップアプリ」または「ウェブアプリケーション」を選択します
- 必要な情報を入力して OAuth 同意画面を設定します
- 承認済みのリダイレクト URI を追加します(ローカル開発では
http://localhost:4100/codeを含めてください)
-
必要な OAuth2 スコープ:
[
"openid",
"https://mail.google.com/",
"https://www.googleapis.com/auth/calendar",
"https://www.googleapis.com/auth/userinfo.email"
]
- 次に、作業ディレクトリにクライアント情報を含む
.gauth.jsonを作成します
{
"web": {
"client_id": "$your_client_id",
"client_secret": "$your_client_secret",
"redirect_uris": ["http://localhost:4100/code"],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token"
}
}
- アカウント情報を含む
.accounts.jsonファイルを作成します
{
"accounts": [
{
"email": "[email protected]",
"account_type": "personal",
"extra_info": "Additional info that you want to tell Claude: E.g. 'Contains Family Calendar'"
}
]
}
複数のアカウントを指定できます。Google Auth アプリでそれぞれのアカウントにアクセスできることを確認してください。extra_info フィールドは特に便利です。ここには、特定のカレンダーを利用できるかどうかなど、アカウントについて AI に伝えたい情報を追加できます。
注:特定のアカウントに対していずれかのツールを初めて実行すると、ブラウザーが開き、Google にリダイレクトされて、認証情報やスコープなどの入力を求められます。ログインに成功すると、認証情報は .oauth.{email}.json という名前のローカルファイルに保存されます。認証後は、リフレッシュトークンが使用されます。
Claude Desktop
MacOS の場合:~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
開発版/未公開サーバーの設定
{
"mcpServers": {
"mcp-gsuite": {
"command": "uv",
"args": [
"--directory",
"<dir_to>/mcp-gsuite",
"run",
"mcp-gsuite"
]
}
}
}
注:別のアカウントファイルを指定するには uv run mcp-gsuite --accounts-file /path/to/custom/.accounts.json を、別の認証情報ディレクトリを指定するには --credentials-dir /path/to/custom/credentials も使用できます。
{
"mcpServers": {
"mcp-gsuite": {
"command": "uv",
"args": [
"--directory",
"<dir_to>/mcp-gsuite",
"run",
"mcp-gsuite",
"--accounts-file",
"/path/to/custom/.accounts.json",
"--credentials-dir",
"/path/to/custom/credentials"
]
}
}
}
公開済みサーバーの設定
{
"mcpServers": {
"mcp-gsuite": {
"command": "uvx",
"args": [
"mcp-gsuite",
"--accounts-file",
"/path/to/custom/.accounts.json",
"--credentials-dir",
"/path/to/custom/credentials"
]
}
}
}
MCP サーバーは、認証情報やアカウント情報のカスタムパスを指定するために、複数のコマンドラインオプションで設定できます。
--gauth-file:OAuth2 クライアント設定を含む.gauth.jsonファイルのパスを指定します。デフォルトは./.gauth.jsonです。--accounts-file:Google アカウントに関する情報を含む.accounts.jsonファイルのパスを指定します。デフォルトは./.accounts.jsonです。--credentials-dir:認証成功後に OAuth 認証情報を保存するディレクトリを指定します。デフォルトは現在の作業ディレクトリで、アカウントごとに.oauth.{email}.jsonというサブディレクトリが作成されます。
これらのオプションを使用すると、異なる環境や複数の認証情報およびアカウントのセットを柔軟に管理できます。特に、開発やテストの場面で役立ちます。
使用例:
uv run mcp-gsuite --gauth-file /path/to/custom/.gauth.json --accounts-file /path/to/custom/.accounts.json --credentials-dir /path/to/custom/credentials
この設定は、異なる構成でサーバーを複数実行する場合や、デフォルトのパスが適さない環境にデプロイする場合に特に役立ちます。
開発
ビルドと公開
パッケージを配布できる状態にするには、次の手順を実行します。
- 依存関係を同期し、ロックファイルを更新します。
uv sync
- パッケージの配布物をビルドします。
uv build
これにより、ソース配布物とホイール配布物が dist/ ディレクトリに作成されます。
- PyPI に公開します。
uv publish
注:環境変数またはコマンドフラグを使用して、PyPI の認証情報を設定する必要があります。
- トークン:
--tokenまたはUV_PUBLISH_TOKEN - またはユーザー名とパスワード:
--username/UV_PUBLISH_USERNAMEおよび--password/UV_PUBLISH_PASSWORD
デバッグ
MCP サーバーは標準入出力経由で実行されるため、デバッグが難しい場合があります。最適なデバッグ体験のために、MCP Inspector の使用を強くおすすめします。
次のコマンドを使用して、 npm から MCP Inspector を起動できます。
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-gsuite run mcp-gsuite
起動すると、Inspector に URL が表示されます。この URL にブラウザーからアクセスして、デバッグを開始できます。
次のコマンドを使用して、サーバーログを確認することもできます。
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-gsuite.log
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。