Claude Media
Claude CodeにGA4のMCPサーバーを繋いで自然言語で分析する手順

Claude CodeにGA4のMCPサーバーを繋いで自然言語で分析する手順

Google公式のAnalytics MCPサーバーをClaude Codeに登録し、GA4のレポートを自然言語で問い合わせる手順。認証(ADC)、読み取り専用の範囲、質問例まで。

GoogleはGoogle Analytics向けのMCP(Model Context Protocol)サーバーを、GitHubのリポジトリ googleanalytics/google-analytics-mcp で公開しています。GA4のデータを、管理画面ではなくClaude Codeとの会話で問い合わせられるようになります。Google自身の説明は「GeminiのようなLLMにAnalyticsのデータをつなぐ」ですが、MCPに対応したクライアントなら同じサーバーを使えます。リポジトリにはClaude Code用の登録コマンドも載っています。

このサーバーは、自分のマシンで動くローカルサーバーです。BigQueryにエクスポートしていない標準のGA4プロパティでも動きます。SQLは要らず、Google Analytics Data APIの上に載っています。

Analytics MCPサーバーでできること

サーバーはGoogle Analytics Admin APIとData APIを使い、次の7つのツールを提供します。

区分ツール内容
アカウント・プロパティ情報ツールget_account_summaries内容アカウントとプロパティの情報を取得
同上ツールget_property_details内容プロパティの詳細を返す
同上ツールlist_google_ads_links内容プロパティに紐づくGoogle広告アカウントのリンクを返す
コアレポートツールrun_report内容Data APIでレポートを実行
同上ツールrun_funnel_report内容Data APIでファネルレポートを実行
同上ツールget_custom_dimensions_and_metrics内容指定プロパティのカスタムディメンション・カスタム指標を取得
リアルタイムツールrun_realtime_report内容Data APIでリアルタイムレポートを実行

Googleのドキュメントは、このサーバーを「読み取り要求のみ」と説明しています。Google Analyticsの構成や設定を編集する機能はありません。書き込み系のツールが並んでいないのは、この説明どおりです。分析を任せる側としては、誤って計測設定を変えられる心配がない点が安心材料になります。

なおリポジトリのタイトルには「Experimental」と付いています。ツール名やパラメータが今後変わる可能性があるものとして扱っておくのが無難です。

前提: 必要なものを揃える

セットアップは大きく3段階です。Pythonの実行環境、Google Cloudプロジェクトでのプロジェクト設定、認証情報の用意です。

  • pipx(サーバーを pipx run analytics-mcp で起動するため)
  • Google Cloudプロジェクト。ここでGoogle Analytics Admin APIとGoogle Analytics Data APIの2つを有効にします
  • 対象のGA4アカウント・プロパティにアクセスできるGoogleアカウント、またはそれを代理できるサービスアカウント

APIの有効化はGoogle Cloudコンソールで行います。GA4のプロパティがあるだけでは足りません。API呼び出しの窓口になるプロジェクトが別に要る、という構造です。

認証: ADCとreadonlyスコープ

認証はApplication Default Credentials(ADC)で行います。READMEの条件は2つです。

  • 認証情報は、対象のGoogle Analyticsアカウントまたはプロパティにアクセスできるユーザーのものであること
  • スコープに https://www.googleapis.com/auth/analytics.readonly を含めること

READMEはgcloudコマンドの例を2通り示しています。1つ目は、OAuthクライアントのJSONを使ってユーザー認証情報でADCを作る方法です。

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

2つ目は、サービスアカウントを借用(impersonation)してADCを作る方法です。

gcloud auth application-default login \
  --impersonate-service-account=SERVICE_ACCOUNT_EMAIL \
  --scopes=https://www.googleapis.com/auth/analytics.readonly,\
https://www.googleapis.com/auth/cloud-platform

どちらも、完了時に次の形で認証情報ファイルのパスが表示されます。このパスを次の登録手順で使うので、控えておきます。

Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]

サービスアカウントを借用する場合も、READMEの条件は「認証情報が対象アカウントやプロパティにアクセスできること」です。GA4側の権限の付け方はREADMEに書かれていないため、Google Analyticsの管理画面のアクセス管理で確認します。

Claude Codeに登録する

READMEのClaude Code向け手順は、claude mcp add を1本実行するだけです。

claude mcp add analytics-mcp \
  --scope user \
  -e "GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_CREDENTIALS_JSON" \
  -e "GOOGLE_PROJECT_ID=YOUR_PROJECT_ID" \
  -- pipx run analytics-mcp

PATH_TO_CREDENTIALS_JSON は前節で控えたパス、YOUR_PROJECT_ID はAPIを有効にしたGoogle CloudプロジェクトのIDに置き換えます。

-- より後ろがサーバーを起動するコマンド本体です。Claude Codeの公式ドキュメントでは、stdioサーバーではこの -- でClaude側のオプション(--env、--scope など)とサーバーへの引数を分けると説明されています。--env の直後にサーバー名を置くと、名前が別の環境変数として読まれて拒否されます。上の例のように --scope を間に挟めば問題ありません。

スコープの選び方

READMEの例は --scope user で、登録するとすべてのプロジェクトからGA4のMCPサーバーが見えます。Claude Codeには3つのスコープがあります。

スコープ読み込まれる範囲チーム共有保存先
local(既定)読み込まれる範囲現在のプロジェクトだけチーム共有なし保存先~/.claude.json
project読み込まれる範囲現在のプロジェクトだけチーム共有あり(バージョン管理)保存先プロジェクト直下の .mcp.json
user読み込まれる範囲すべてのプロジェクトチーム共有なし保存先~/.claude.json

認証情報ファイルのパスは自分のマシン固有の値です。.mcp.json に書いてチームで共有するには向きません。projectスコープにするなら、認証情報のパスは各自の環境変数で持たせる構成にします。個人でGA4を見る用途なら、READMEどおりuserかlocalで足ります。

つながったかを確認する

登録できたかは、次のコマンドで確認できます。Claude Codeを起動している場合は、セッション内の /mcp でも見られます。

claude mcp list

一覧に analytics-mcp が出て、状態が ✔ Connected ならつながっています。✘ Failed to connect が出たら、Claude Codeがサーバーに接続できていません。pipx が実行できるか、認証情報ファイルのパスが正しいかを見直します。

Claude Desktopで使う場合

READMEにClaude Desktop向けの手順はありません。ただしClaude Desktopは claude_desktop_config.json の mcpServers にサーバーを書く方式で、要素は command / args / env です。READMEのGemini向け設定例と同じ形なので、同じ内容を移せます。

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

これは、READMEのGemini向け設定を土台にした書き方の例です。READMEがClaude Desktopでの動作を案内しているわけではありません。ファイルの置き場所や反映手順はClaude Desktop MCP設定ガイドにまとめています。

環境変数の名前にはひとつ注意点があります。READMEの本文は「GOOGLE_CLOUD_PROJECT をenvに足すことを推奨」と書く一方、サンプルのJSONと claude mcp add の例は GOOGLE_PROJECT_ID を使っています。サンプルはどちらも GOOGLE_PROJECT_ID に統一されているので、まずはサンプルどおりに書くのが確実です。

問い合わせの例

登録後は、Claude Codeに自然文で聞くだけです。READMEとGoogleのドキュメントが挙げている質問は次のとおりです。

  • what can the analytics-mcp server do?(サーバーで何ができるか)
  • Give me details about my Google Analytics property with 'xyz' in the name(名前にxyzを含むプロパティの詳細)
  • what are the most popular events in my Google Analytics property in the last 180 days?(直近180日でよく発生したイベント)
  • were most of my users in the last 6 months logged in?(直近6か月のユーザーの多くはログイン済みか)
  • what are the custom dimensions and custom metrics in my property?(プロパティのカスタムディメンションとカスタム指標)
  • How many users did I have yesterday?(昨日のユーザー数)
  • What were my top selling products yesterday?(昨日売れた商品の上位)

READMEの例はGemini向けですが、質問の中身はMCPクライアントに依存しません。プロパティの特定にはアカウント情報系のツール、集計にはレポート系のツールが使われます。どのツールがどの順で呼ばれたかは、Claude Codeの表示で確認できます。

質問の書き方で結果が安定する

ここからは、Claude Code側で工夫できる部分です。レポート系のツールは、期間・ディメンション・指標を指定して呼び出します。曖昧な聞き方をすると、Claudeが期間や指標を自分で補います。手元の問いに対して答えが揺れないよう、条件を先に書いておきます。

  • 期間を日付で書く(「先月」より「2026-08-01から2026-08-31」)
  • 見たい指標を名前で挙げる(セッション数、アクティブユーザー、イベント数など)
  • 対象のプロパティを名前かIDで指定する

例えば次のように聞きます。

プロパティ「my-site」の 2026-08-01 から 2026-08-31 について、
ページ別のセッション数の上位10件を出して。
run_report でどのディメンションと指標を使ったかも書いて。

最後の一行が肝です。Claudeが実際に指定したディメンションと指標を答えに書かせると、数字の意味を後から確かめられます。管理画面の値と突き合わせる際にも、条件が揃っているかを確認できます。

CLAUDE.mdに前提を置く

毎回プロパティ名や期間の書き方を伝えるのは手間です。GA4の分析を繰り返すプロジェクトなら、CLAUDE.md に前提を書いておくと、質問が短くなります。次はその一例で、公式の記述ではなく運用上の書き方の案です。

## GA4の問い合わせ規約
- 分析対象は analytics-mcp のプロパティ「my-site」
- 期間は必ず日付で指定し、比較するときは同じ長さの前期間と並べる
- 数字を答えるときは、使ったディメンションと指標を併記する
- 設定変更が必要な提案は、実行せず手順だけを示す

最後の一行は、サーバー自体が読み取り専用でも、GA4の設定変更を提案されたときに、手順として受け取る運用にしておくためのものです。

出力が大きいときの上限

レポートが長い行数を返すと、Claude Codeの側で出力に制限がかかります。Claude Codeは、MCPツールの出力が10,000トークンを超えると警告を出し、既定では25,000トークンで出力を打ち切ります。上限を上げたいときは、環境変数 MAX_MCP_OUTPUT_TOKENS を設定します(警告のしきい値は固定です)。

MAX_MCP_OUTPUT_TOKENS=50000 claude

とはいえ、上限を上げるより、条件を絞ったレポートを複数回に分けて取るほうが扱いやすくなります。ページ別・流入元別など、ディメンションごとに質問を分けます。

つまずきやすい点

症状見直す箇所
Failed to connect になる見直す箇所pipx が実行できるか、GOOGLE_APPLICATION_CREDENTIALS のパスが実在するか
プロパティが1件も出ない見直す箇所認証したユーザー(またはサービスアカウント)がGA4側で対象プロパティにアクセスできるか
APIエラーになる見直す箇所Admin APIとData APIの両方をプロジェクトで有効にしたか
権限エラーになる見直す箇所スコープに analytics.readonly を含めてADCを作ったか

上の対処は、READMEが求めている前提条件から順に確認する項目です。エラー文字列ごとの原因はREADMEに載っていません。

ほかのGoogle系MCPサーバーとの違い

BigQueryにGA4のデータをエクスポートしている場合は、Claude BigQuery連携のように、SQLで生データを扱う道もあります。今回のAnalytics MCPサーバーは、SQLもBigQueryも不要で、Data APIのレポートを単位に問い合わせる点が違います。標準のGA4プロパティだけで始められるのが入口の軽さです。

Google Cloud全般の操作はgcloud MCPサーバー、権限の絞り込みはGoogle CloudのMCPサーバーをIAMで権限制御するが扱っています。MCPそのものの仕組みはMCPとはを参照してください。

まとめ

Analytics MCPサーバーは、ローカルで動く読み取り専用のサーバーです。登録は claude mcp add 1本、必要なのはpipx・2つのAPIの有効化・analytics.readonly スコープ付きのADCだけです。GA4の設定を書き換える機能はなく、レポートの取得に用途が絞られています。質問には期間と指標を明示し、答えに使った条件を併記させると、数字を後から検証しやすくなります。

この記事を共有:XはてブLinkedIn