45395 - シコウサクゴ -

Claude CodeでMCPサーバーを自作する:GA4 + GSC + BigQueryの統合アクセス分析基盤

2026-04-11
AI駆動開発
AI駆動開発
Claude Code
MCP
GA4
Google Search Console
BigQuery
Last updated:2026-04-12
11 Minutes
2175 Words

「3月3日のアクセス増の要因を教えて」――こうした自然言語の問い合わせに対して、GA4・Google Search Console・BigQueryのデータを横断的に分析し、推察まで返してくれる仕組みが欲しいと考えていました。ダッシュボードを開いてフィルタを切り替える作業ではなく、Claude Codeのターミナルから直接聞けるアクセス分析基盤を目指しました。

最終的にMCP(Model Context Protocol)サーバーとして実装し、Claude Codeから直接呼び出せる形に落ち着きました。追加のAPI費用はかかりません。Claude Code MAXプランの範囲内で動作します。この記事では、アーキテクチャの変遷、実装の要点、認証周りのハマりどころを記録します。

なぜMCPサーバーなのか:アーキテクチャの変遷

最初の構想はスタンドアロンのCLIツールでした。GA4 Data APIを叩いてデータを取得し、ターミナルに結果を表示します。しかしこれでは「データの取得」で終わります。「なぜアクセスが増えたのか」という分析・推察まで含めるには、LLMとの統合が必要でした。

次に検討したのがClaude APIを直接組み込む方式です。CLIからGA4データを取得し、Claude APIに投げて分析結果を返します。技術的には動きますが、APIの従量課金が発生します。すでにClaude Code MAXプラン(月額固定)を契約している状況で、別途API費用を払うのは合理的ではありません。

1
CLI(単体) → データ取得のみ、分析なし
2
CLI + Claude API → 分析可能だが追加課金が発生
3
MCP サーバー → Claude Code内で完結、追加費用なし

MCPサーバーとして実装すれば、Claude Code自身がGA4/GSC/BigQueryのデータにアクセスできます。分析はClaude Codeのモデルがそのまま担当します。追加のAPI呼び出しは不要で、MAXプランの範囲内で収まります。この判断で設計方針が決まりました。

MCPサーバーの構成

ツール設計

MCPサーバーには以下のツールを実装しました。

ツール名データソース用途
analyze_exploratoryGA4 Data API探索的なアクセス分析(期間・ディメンション指定)
fetch_ga4_reportGA4 Data API特定条件でのレポート取得
fetch_gsc_dataSearch Console API検索クエリ・掲載順位・CTRの取得
analyze_behavior_flowBigQuery Exportユーザー行動フロー分析

analyze_exploratoryが中心的なツールで、「特定のランディングページへのアクセス数が多い日付を直近半年間で取得」といった探索的クエリに対応します。

設定:.mcp.json

MCPサーバーの接続設定は.mcp.jsonに記述します。

1
{
2
"mcpServers": {
3
"ga4-analytics": {
4
"command": "python",
5
"args": ["-m", "ga4_mcp_server"],
6
"env": {
7
"GA4_PROPERTY_ID": "properties/XXXXXXXXX",
8
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account-key.json",
9
"BIGQUERY_PROJECT_ID": "your-project-id"
10
}
11
}
12
}
13
}

環境変数で認証情報とプロパティIDを渡します。サービスアカウントキーのパスは絶対パスで指定します(後述のトラブルシューティング参照)。

GA4 Data API統合

GA4のデータ取得にはGoogle Analytics Data API(v1beta)を使います。google-analytics-dataパッケージ経由でアクセスします。

MCPツールが受け取るのは「期間」「ディメンション」「メトリクス」「フィルタ条件」といったパラメータです。これをGA4 Data APIのリクエスト形式に変換してAPIを呼び出し、結果を整形してClaude Codeに返します。Claude Codeはそのデータを見て分析・推察を行います。

ポイントは、MCPサーバー側では「分析」をしないことです。データの取得と整形だけを担当し、解釈はClaude Codeに任せます。この役割分担がMCPアーキテクチャの利点でもあります。

GSC API統合

Google Search Console APIとの統合で、検索クエリ・掲載順位・CTR・インプレッション数を取得できるようにしました。GA4の「どのページにアクセスが来ているか」に加えて、GSCの「どの検索クエリで流入しているか」を組み合わせることで、アクセス変動の要因分析がより具体的になります。

たとえば「先週アクセスが急増したページ」をGA4で特定し、そのページへの流入クエリをGSCで取得します。Claude Codeはこの2つのデータを突き合わせて「特定キーワードの検索順位が上昇したためアクセスが増えた」といった推察を返します。

BigQuery Exportで行動フロー分析

GA4のBigQuery Exportを有効化し、ユーザー行動フローの分析にBigQueryを使っています。GA4 Data APIではセッション単位の行動遷移を細かく追うのが難しいですが、BigQueryのイベントデータなら「ページA → ページB → 離脱」といったフローをSQLで自由に分析できます。

このBigQuery統合は後から追加したもので、GA4 Data API + GSCの基盤が安定した後に拡張しました。MCPサーバーのツールとして追加するだけで、Claude Codeからシームレスに使えます。

実際のクエリ例

Claude Codeのターミナルで、以下のような自然言語の問い合わせができます。

1
「直近半年間で、特定のランディングページへのアクセスが多い日付を教えて」
2
→ GA4のページビューデータを日別に取得し、上位日を提示
3
4
「先月のオーガニック検索からの流入が多いクエリを10件教えて」
5
→ GSCから検索クエリデータを取得し、クリック数順にソート
6
7
「トップページから問い合わせフォームまでの主要な遷移パスを分析して」
8
→ BigQueryのイベントデータからページ遷移を集計

Claude Codeがデータを取得した後、自動的に「なぜその日にアクセスが増えたのか」「どのクエリが成長しているか」といった分析コメントを付けてくれます。ダッシュボードを見て自分で考える作業が、対話型の分析に変わりました。

トラブルシューティング:認証周りの注意点

サービスアカウントキーのパス

.mcp.jsonに記述するサービスアカウントキーのパスは絶対パスでなければなりません。~や相対パスを使うと認証エラーになります。

1
"GOOGLE_APPLICATION_CREDENTIALS": "/Users/username/keys/sa-key.json"

サービスアカウントの権限設定

GA4、Search Console、BigQueryそれぞれで権限が必要になります。

  • GA4: Google Analytics管理画面でサービスアカウントに「閲覧者」ロールを付与
  • Search Console: Search Consoleの設定でサービスアカウントのメールアドレスをユーザーとして追加
  • BigQuery: GCPコンソールでBigQueryデータ閲覧者ロールを付与

権限不足の場合、MCPサーバーは起動しますがツール呼び出し時に403エラーを返します。エラーメッセージが不親切なケースがあるため、初回セットアップ時は各APIを個別にテストすることを推奨します。

コスト構造

項目費用
Claude Code MAXプラン月額固定(既存契約)
GA4 Data API無料枠内 [要確認: クォータ上限]
Search Console API無料
BigQueryGA4 Export自体は無料、クエリは従量課金(個人利用なら月数十円程度)
MCPサーバー自体ローカル実行のため無料

MCPサーバーとして実装した最大のメリットは、LLMの推論コストが追加でかからない点です。Claude APIを直接呼び出す方式では入出力トークンに応じた従量課金が発生しますが、MCPサーバー経由ならClaude Code MAXプランに含まれます。

開発プロセス:仕様駆動開発での進め方

このMCPサーバーは仕様駆動開発(Spec-Driven Development)で進めました。ブレインストーム → 要件定義 → 設計 → テスト設計 → タスク分解 → 実装の5ステージです。

特に効果があったのは要件定義の段階でMCPツールのインターフェース(入力パラメータと出力形式)を明確に定義したことです。MCPサーバーは「Claude Codeから呼び出される」という制約があるため、ツールの名前・説明文・パラメータ定義がそのままユーザー体験に直結します。曖昧な定義のまま実装に入ると、Claude Codeが意図通りにツールを選択してくれません。

まとめ

MCPサーバーとして実装することで、GA4・GSC・BigQueryのデータをClaude Codeから直接分析できる基盤ができました。追加のAPI費用をかけずに、自然言語でアクセス分析ができます。

アーキテクチャの選定では「既存のMAXプランを活かす」という制約が設計を大きく方向づけました。技術的に可能な選択肢(CLI + Claude API)が、コスト面で最適とは限りません。MCPという仕組みが、この問題をきれいに解決してくれました。

独自のMCPサーバーを作る敷居は高く見えますが、やっていることは「外部APIを叩いて結果を返すサーバー」であり、REST APIのエンドポイントを書くのと大差ありません。GA4に限らず、社内システムや独自データソースをClaude Codeから直接扱いたい場合に、MCPサーバーは有力な選択肢になります。

Article title:Claude CodeでMCPサーバーを自作する:GA4 + GSC + BigQueryの統合アクセス分析基盤
Article author:45395
Release time:2026-04-11

記事へのご質問・ご感想をお聞かせください

フィードバックを送る