おはようございます!スマランです。
今日は、WSL 上で MCP サーバを使い、Gemini CLI から GA4 を“対話で操作”する手順を、公式リポジトリの内容をベースに省略なしで噛み砕いて解説します。MCP が何者か、GA4 のどこに効くのか、環境構築から実行例、図解、よくある詰まりポイントまで一気に分かる内容です。
Table of Contents
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 Developersget_custom_dimensions_and_metrics:プロパティの カスタム定義(apiName)を取得
レポート(リアルタイム)
run_realtime_report:activeUsers など、いまこの瞬間の集計(Realtime Data API)。
全体アーキテクチャ
今回のローカル環境からGCPのサービス、バックエンドのレンタルサーバのサイトの構成は下記のとおりです。

- エンドポイント自体は“公開 API”(誰でも使えるが認可必須)。データは非公開で、権限のある主体のみ参照可。
セットアップについて
1. Python と pipx 準備
この MCP は Python 3.10+ が前提。pipx で実行するのが推奨です(PyPI 配布あり)。
2. GCP で API を有効化
対象プロジェクトで以下の 2 つを 有効化します。これらは「公開API」と呼ばれるもので「外部の開発者が使えるように公開されているシステムの入り口(操作用の窓口)」のようなものです。
- Google Analytics Admin API
- Google Analytics Data API
(GCP の API ライブラリから有効化)
3. ADC(Application Default Credentials)の設定
GA にアクセス権のあるユーザーまたはサービスアカウントで ADC を作成していきます。
少なくとも 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-mcp を mcpServers に追加。環境変数に 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の例と同等の目的を自然言語で実行できるよう整えたものです。
- サーバの機能一覧を確認
what can the analytics-mcp server do?
- プロパティのあいまい検索
Give me details about my Google Analytics property with “xyz” in the name.
- 人気イベント(直近180日)
what are the most popular events in my Google Analytics property in the last 180 days?
- ログインユーザー比率(直近6か月)
were most of my users in the last 6 months logged in?
- カスタム定義の把握
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×activeUsers(run_realtime_report) - カスタム定義の活用:まず
get_custom_dimensions_and_metricsで apiName を把握し、run_reportの dimensions/metrics に投入
さいごに
今回は、ローカルのLLMを通じて我々の使用する言語(=自然言語)を利用して、GoogleAnalyticsの情報を操作する仕組みをMCPを使用して作ってみました。
しかしながら、個々を構成する「GoogleAnalytics」「API」「クラウド」「LLM」のコンポーネントの理解もしっかり学んでいくことで、より深い理解と活用ができると思います。ぜひ頑張っていきましょう。