2026年5月28日

【MCP】Google Workspace MCP サーバーを色々触ってみた(Workspaceアカウント不要!!)


Content

AIエージェントを使っていて、こんな場面を思い浮かべたことはないでしょうか?


「今日のスケジュールを確認しながら、関連するドキュメントをDriveから探して、結果をメールで送って」
「Gmailに届いた内容をまとめて、Googleカレンダーに登録しておいて」

これを実現するには、これまでGmail・Drive・Calendarそれぞれに個別のAPI連携を実装する必要がありました。認証の仕組みも個別に用意しなければならず、開発コストが高い作業でした。

この壁を崩す可能性を持つのが、2025年5月に公開された Google Workspace MCP サーバー です。

MCP(Model Context Protocol)という標準プロトコルに乗っかることで、AIエージェントがGmail・Drive・Calendar・Chatなど複数のWorkspaceサービスへ統一的なインターフェースでアクセスできるようになりました。

本記事では実際に触ってみた実体験をもとに紹介します。 試してみたところ「Google公式のホスト型MCPサーバー」と「コミュニティ製のローカルMCPサーバー」という2種類のアプローチが存在することがわかりました。それぞれの違いや使い分けも含めて解説します。

Google Workspace MCP サーバーとは

MCPとは何か(おさらい)

MCP(Model Context Protocol)は、AIモデルがリモートサーバーのツールを安全に使えるようにするオープンスタンダードです。Anthropicが提唱し、現在は業界標準として広く採用されています。

2種類のアプローチ

Google Workspace の MCP サーバーには、大きく分けて 2種類のアプローチがあります。

① Google 公式ホスト型 MCP サーバー

Googleが自社のインフラ上で提供するリモートMCPサーバーです。

[注意] 実際に試してみてわかった壁: 組織の Google Workspace 管理者が admin.google.com でOAuthアプリを「信頼済み」に設定しないとツール実行時に 403 Forbidden が返ります。個人のGoogleアカウント(無料)では利用できません。

② コミュニティ製ローカルMCP サーバー

OSS として公開されているMCPサーバーをローカルで立ち上げる方式です(taylorwilsdon/google_workspace_mcp)。

[確認済み] 無料アカウントで動作確認済みです。 本記事では主にこちらのアプローチを使った実装を紹介します。

2種類のアプローチ比較

事前準備(共通)

どちらのアプローチでも、Google Cloud での OAuth クライアント設定は必要です。

Google Cloud プロジェクトの準備

1. 使用するAPIを有効化

GCP コンソール(console.cloud.google.com)から以下のAPIを有効にします:

gcloud services enable \
  gmail.googleapis.com \
  drive.googleapis.com \
  calendar-json.googleapis.com \
  chat.googleapis.com \
  people.googleapis.com \
  --project=YOUR_PROJECT_ID

2. OAuth 同意画面の設定

Google Auth Platform → ブランディング で新規作成:

  • アプリ名:任意(例:Workspace MCP)
  • ユーザーの種類:内部(Google Workspace組織の場合)または 外部(個人アカウントの場合)
  • 外部を選択した場合は「テストユーザー」に自分のメールアドレスを追加

3. OAuth クライアントIDの取得(client_secret.json)

Google Auth Platform → クライアント → クライアントを作成:

  • アプリケーションの種類:デスクトップアプリ
  • 名前を入力して作成
  • JSONをダウンロード → client_secret.json として保存

[ヒント] client_secret.json にはクライアントIDとシークレットが含まれています。ファイルを Git にコミットしないよう .gitignore に追加してください。

4. データアクセス(スコープ)の追加

Google Auth Platform → データアクセス → スコープの追加または削除 に以下を貼り付けます:

https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/gmail.compose
https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/calendar.calendarlist.readonly
https://www.googleapis.com/auth/calendar.events.readonly
https://www.googleapis.com/auth/chat.messages.readonly
https://www.googleapis.com/auth/chat.messages.create
https://www.googleapis.com/auth/directory.readonly
https://www.googleapis.com/auth/contacts.readonly

実際の使用例

ADK × コミュニティ製ローカルMCPサーバー(エージェント開発)

GoogleのAgent Development Kit(ADK)と、コミュニティ製ローカルMCPサーバーを組み合わせた実装です。

① ローカルMCPサーバーのセットアップ

git clone https://github.com/taylorwilsdon/google_workspace_mcp.git
cd google_workspace_mcp

# 依存関係のインストール uv sync
# client_secret.json をプロジェクトルートに配置 cp /path/to/client_secret.json .

サーバーの起動:

export OAUTHLIB_INSECURE_TRANSPORT=1
export WORKSPACE_MCP_PORT=8001   # ADK Web UI(8000番)とのポート競合を避ける
uv run main.py --single-user --transport streamable-http --tool-tier core

起動すると以下のような表示になります:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Google Workspace MCP Server v1.21.0
streamable-http · single-user
http://localhost:8001
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Single-user mode enabled
Ready for MCP connections

–single-user フラグについて: このフラグがないとマルチユーザーモードになり、ツール呼び出しごとにメールアドレスの指定が必要になります。個人開発では–single-user が便利です。


② ADK プロジェクトの構成

workspace-adk-agent/
├── workspace_agent/
│ ├── agent.py # エージェント定義
│ ├── .env # 環境変数
│ └── __init__.py
└── pyproject.toml

pyproject.toml:

[project]
name = "workspace-adk-agent"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
    "google-adk>=1.29.0",
    "mcp>=1.27.1",
]
workspace_agent/.env:
GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=<プロジェクトID>
GOOGLE_CLOUD_LOCATION=us-central1

③ エージェント実装(agent.py

ローカルMCPサーバーを使う場合、認証はサーバー側が管理するため agent.py はシンプルになります。

# workspace_agent/agent.py
from datetime import datetime
from google.adk.agents import Agent
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset, StreamableHTTPConnectionParams

LOCAL_MCP_URL = "http://localhost:8001/mcp"
root_agent = Agent( name="workspace_agent", model="gemini-2.5-flash", description="Google Workspace(Gmail・Drive・Calendar 等)と連携して業務をサポートするエージェント", instruction=f"""あなたはGoogle Workspaceの各サービスを活用できる業務アシスタントです。
今日の日付は
{datetime.now().strftime('%Y年%m月%d日')} です。

以下のサービスのツールを活用して、ユーザーの業務をサポートしてください:
- Gmail: メール検索・送信・下書き作成
- Google Drive: ファイル検索・読み取り・作成
- Google Calendar: 予定確認・新規登録・空き時間提案
- Docs / Sheets / Slides / Tasks / Forms にも対応

複数のサービスをまたぐ操作も積極的に対応してください。
回答は日本語で行ってください。"""
, tools=[ McpToolset( connection_params=StreamableHTTPConnectionParams(url=LOCAL_MCP_URL) ) ], )

コードのポイント: 公式ホスト型の場合はTokenRelayクラスやhttpx_client_factoryを使って OAuth トークンをリクエストごとに注入する実装が必要でしたが、ローカルMCPサーバー方式ではサーバー側が認証を管理するため、接続先URLを指定するだけです。


④ ADK Web UI での動作確認

uv run adk web

ブラウザで http://localhost:8000 を開きます。初回ツール呼び出し時にMCPサーバー側でブラウザが開き、Googleアカウントの認証が走ります。 認証後はトークンがキャッシュされ、再起動しても再認証不要です。

スクリーンショット挿入箇所

  • ADK Web UI での会話画面(カレンダー確認の様子)

Gemini CLI × Google Workspace MCP

Gemini CLIは~/.gemini/settings.json に設定を記述するだけで、ターミナルからWorkspaceを操作できます。

設定ファイル(公式ホスト型の場合)

{
  "mcpServers": {
    "gmail": {
      "httpUrl": "https://gmailmcp.googleapis.com/mcp/v1",
      "oauth": {
        "enabled": true,
        "clientId": "<クライアントID>",
        "clientSecret": "<クライアントシークレット>",
        "scopes": [
          "https://www.googleapis.com/auth/gmail.readonly",
          "https://www.googleapis.com/auth/gmail.compose"
        ]
      }
    },
    "calendar": {
      "httpUrl": "https://calendarmcp.googleapis.com/mcp/v1",
      "oauth": {
        "enabled": true,
        "clientId": "<クライアントID>",
        "clientSecret": "<クライアントシークレット>",
        "scopes": [
          "https://www.googleapis.com/auth/calendar.events.readonly"
        ]
      }
    }
  }
}

[注意] 公式ホスト型エンドポイント(*mcp.googleapis.com)は Google Workspace 管理者による承認が必要です。組織ポリシーによってはアクセスがブロックされます。

接続確認

gemini
/mcp auth gmail
/mcp auth calendar
/mcp list

出力例:

gmail    - Ready (10 tools)
calendar - Ready (8 tools)

Claude Code × Google Workspace MCP

Claude Codeはコマンド一行でMCPサーバーを登録できます。コミュニティ製ローカルサーバーとの組み合わせが特に簡単です。

コミュニティローカルサーバーを使う場合(推奨)

ローカルサーバーを起動した状態で

claude mcp add –transport http workspace-mcp http://localhost:8001/mcp

Claude Codeを起動してWorkspaceを操作できます:

claude
> Driveの「企画書」というキーワードで検索して、最新のファイルの内容を教えて

公式ホスト型を使う場合

// .claude/settings.json
{
  "mcpServers": {
    "workspace-calendar": {
      "type": "http",
      "url": "https://calendarmcp.googleapis.com/mcp/v1",
      "oauth2": {
        "clientId": "<クライアントID>",
        "clientSecret": "<クライアントシークレット>",
        "scopes": ["https://www.googleapis.com/auth/calendar.events.readonly"]
      }
    }
  }
}

各クライアントの比較

試してみたいならGemini CLIかClaude Code、エージェントに組み込みたいならADKが最適です。

デモプレイ

コミュニティ製ローカルMCPサーバー + ADKエージェントでの動作確認の様子です。

上記のような感じでしっかりツールを操作してくれます。

プロンプトの調整ミスもあり、エージェントがUTCベースだったので、そこは調整する必要ありそうでしたが、しっかりリカバリしてくれました!

また、初回実行時には、Googleの認証が必要になってくるので、エージェントのためにそこはこちらが作業をしてあげましょう。

認証が成功すると上記画面が表示されます。

まとめ

本記事では、Google Workspace MCP サーバーの概要と、実際に試した2つのアプローチについて紹介しました。

今回のポイント

  • Google Workspace MCP には 公式ホスト型コミュニティローカル型の2種類がある
  • 公式ホスト型(*mcp.googleapis.com)は Google Workspace Business/Enterprise アカウントと組織管理者の承認が必要
  • コミュニティローカル型(taylorwilsdon/google_workspace_mcp)は無料Googleアカウントでも動作し、対応サービスも豊富(12サービス・43ツール)
  • どちらのアプローチでも Google Cloud の OAuth クライアントID(client_secret.json) の取得が必要
  • ADK を使えば、数十行のコードでWorkspace連携エージェントを構築できる

アプローチの選び方

活用シーン

参考リンク
Google Workspace MCP サーバーの設定(公式)
taylorwilsdon/google_workspace_mcp(GitHub)

システムサポートでは、Google Cloudの導入や活用を支援しております。

Google Cloudを導入したい・導入したけど使いこなせていない…という方は、お気軽にご相談ください!


Google Cloud 導入・活動支援に関するご相談はこちら

2026年5月28日 【MCP】Google Workspace MCP サーバーを色々触ってみた(Workspaceアカウント不要!!)

Category Google Cloud

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら