GeminiからMCPを経由してGoogle Analyticsの相談をしてみましょう!

おはようございます!スマランです。
今日は、WSL 上で MCP サーバを使い、Gemini CLI から GA4 を“対話で操作”する手順を、公式リポジトリの内容をベースに省略なしで噛み砕いて解説します。MCP が何者か、GA4 のどこに効くのか、環境構築から実行例、図解、よくある詰まりポイントまで一気に分かる内容です。

データちゃん
Gemini CLI →(MCP 経由)→ GA4 API の接続を作り、自然言語でサイトのアクセスについてGeminiについて相談できるような仕組みを作っていきたいですね!

GA4(Google Analytics 4)とは?

イベント中心でユーザー行動を捉える最新の「アクセス解析ツール」です。

API では 「ディメンション × 指標」の表形式でデータを返し、例として「eventName(ディメンション)」ごとの「eventCount(指標)」のような集計ができます。

  • データは 表形式で返る(列がディメンション/指標)
  • 指標は行動量(例:Active Users、Event Count)
  • ディメンションは切り口(例:Country、Event Name)
    (API「runReport」のリファレンス定義に基づく説明)

MCP(Model Context Protocol)とは?

MCPは、LLM と外部システム(API・DB・SaaS など)を安全に橋渡しするための標準プロトコルです。MCP サーバは外部データや機能を LLM が理解できるツール群として提供します。今回使う analytics-mcp は、GA4 の Admin/Data API を ツールとして LLM(Gemini)に渡す「ローカル MCP サーバ」です。

Gemini CLI × MCP で“何ができる?”

公式の 「analytics-mcp」 は、以下の ツールを提供します。LLM から自然言語で指示すると、裏でこれらが呼ばれます。

これらのプロパティは、すべて Google が公式に公開している Google Analytics Data API(および Admin API) のエンドポイント(公開APIのメソッド)に対応しています。

アカウント/プロパティ情報の取得

  • get_account_summaries:アクセス可能な GA アカウント/プロパティ一覧
  • get_property_details:特定プロパティの詳細
  • list_google_ads_links:プロパティに紐づく Google 広告リンク一覧

レポート(通常)

  • run_report:日付範囲・ディメンション・指標・フィルタ・ソート・件数制限などを指定して実行(Data API)。Google for Developers
  • get_custom_dimensions_and_metrics:プロパティの カスタム定義(apiName)を取得

レポート(リアルタイム)

  • run_realtime_reportactiveUsers など、いまこの瞬間の集計(Realtime Data API)。

全体アーキテクチャ

今回のローカル環境からGCPのサービス、バックエンドのレンタルサーバのサイトの構成は下記のとおりです。

  • エンドポイント自体は“公開 API”(誰でも使えるが認可必須)。データは非公開で、権限のある主体のみ参照可。

セットアップについて

1. Python と pipx 準備

この MCP は Python 3.10+ が前提。pipx で実行するのが推奨です(PyPI 配布あり)。

データちゃん
pipxは、「環境をよこさずに仮想環境内でPythonアプリケーションを簡単にインストールし、実行するためのパッケージ管理ツール」です

2. GCP で API を有効化

対象プロジェクトで以下の 2 つを 有効化します。これらは「公開API」と呼ばれるもので「外部の開発者が使えるように公開されているシステムの入り口(操作用の窓口)」のようなものです。

  • Google Analytics Admin API
  • Google Analytics Data API
    (GCP の API ライブラリから有効化)

3. ADC(Application Default Credentials)の設定

GA にアクセス権のあるユーザーまたはサービスアカウントで ADC を作成していきます。

データちゃん
ADCとは「GoogleのAPIを使うときに「どのユーザー(またはサービス)としてアクセスするのか?」を決めるための仕組み」ですね。

少なくとも analytics.readonly スコープが必要ですね。

たっくん
スコープは「どの範囲まで権限を与えるかを指定する“許可リスト”」 のことです

ユーザー認証(OAuth クライアント JSON を使う)

gcloud auth application-default login \
  --scopes https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/cloud-platform \
  --client-id-file=YOUR_CLIENT_JSON_FILE

成功すると最後に 保存パスが表示されます:

Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]

4. Gemini 側に MCP サーバを登録

~/.gemini/settings.json を編集し、analytics-mcpmcpServers に追加。環境変数に ADC のパスプロジェクトIDを渡します。

【画像挿入】settings.json の編集スクショ(赤枠で env を示す)

{
  "mcpServers": {
    "analytics-mcp": {
      "command": "pipx",
      "args": ["run", "analytics-mcp"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON",
        "GOOGLE_CLOUD_PROJECT": "YOUR_PROJECT_ID"
      }
    }
  }
}

5. 起動と接続確認

  • Gemini CLI/Code Assist を起動して /mcp と入力 → analytics-mcp が表示されれば接続OK。Google for Developers
  • 失敗時は Python バージョン(3.10+)、ADC パス、API 有効化、権限を再確認。

はじめての実行(プロンプトの例)

以下は 公式READMEの例と同等の目的を自然言語で実行できるよう整えたものです。

  1. サーバの機能一覧を確認

what can the analytics-mcp server do?

  1. プロパティのあいまい検索

Give me details about my Google Analytics property with “xyz” in the name.

  1. 人気イベント(直近180日)

what are the most popular events in my Google Analytics property in the last 180 days?

  1. ログインユーザー比率(直近6か月)

were most of my users in the last 6 months logged in?

  1. カスタム定義の把握

what are the custom dimensions and custom metrics in my property?

実際の使用している例がこちらですね。

試しに「どのような分野のページが多く読まれているか?」を効いてみると、GeminiがMCPを経由してGA4のデータを取得して、表示をしてくれます。

Google Analytics上で、各パラメータを確認することもできますがLLMのユーザインターフェースと通して相談するのも非常に楽ですね。

使いどころ(ユースケースの型)

それ以外のユースケースについて見ていきましょう。下記のようなプロパティ値をLLMを通じて確認することができます。

  • 集客 × 成果sessionSourceMedium × eventCount(purchase)
  • コンテンツ × 滞在landingPagePlusQueryString × engagedSessions/avgSessionDuration
  • 国別 × リアルタイムcountry × activeUsersrun_realtime_report
  • カスタム定義の活用:まず get_custom_dimensions_and_metricsapiName を把握し、run_report の dimensions/metrics に投入

さいごに

今回は、ローカルのLLMを通じて我々の使用する言語(=自然言語)を利用して、GoogleAnalyticsの情報を操作する仕組みをMCPを使用して作ってみました。

しかしながら、個々を構成する「GoogleAnalytics」「API」「クラウド」「LLM」のコンポーネントの理解もしっかり学んでいくことで、より深い理解と活用ができると思います。ぜひ頑張っていきましょう。

最新情報をチェックしよう!