下記の記事で、複数のテーマの情報をWeb検索によって収集するとともに、本ブログのPV上位の記事の情報をBA4から入手し、それらの情報をもとにブログ記事の提案を行うシステムの紹介を行った。現在は、Web検索によって収集した情報をもとに、Claude Codeにもブログ記事ネタを毎日提供してもらうようにしているが、最近、Google Analytics 4 のデータを LLM につなぐMCP Serverを利用することによって、Claude や Gemini などのAIに自然言語で質問して自身のブログの分析ができることを知った。本記事では、Claude Codeにこのシステムの構築を依頼し対話的にブログ分析が行えるシステムを構築したので紹介する。

(注)本記事の内容は正確性を保証するものではない。
まずは、Codexに現システムとの違いなどを聞いた。
Codexが実行している現システムとの違い
下記の情報がありました。いま、このセッションで行っていることと方法は違いますか、同じですか。
Google Analytics 4 のデータを LLM につなぐMCP Serverを利用することによって、Claude や Gemini などのAIに自然言語で質問して自身のブログの分析ができる
Codexの回答
結論として、同じではありません。部分的に似ていますが、方式は違います。
共通点
- どちらも GA4 のデータをAI活用に使う
- API経由でデータを取得して、分析や提案に使う
違う点
- あなたの今の仕組み
- Pythonスクリプト で GA4 Data API を直接呼ぶ
- 取得する項目や件数を固定している
- その結果を使って、editor が毎日3件のブログネタを提案する
- 完全に用途特化の自動処理
- 記事で言っている Google Analytics MCP Server
- GA4を MCP 経由でLLMに接続する
- Claude や Gemini に自然言語で「先月の流入減少の原因は?」のように質問できる
- より対話型・分析補助型
今の構成の位置づけ
- 今回の仕組みは
「GA4を材料にした専用自動化エージェント」 - MCP Server は
「GA4をAIと対話的につなぐ汎用インターフェース」
なので、関係としては
- 目的は近い
- 実装方式は別
- 今の構成の方が、毎朝の定型配信には向いている
- MCP方式の方が、その場で深掘り質問する分析には向いている
です。
必要なら次に、
- 今の方式を続けるべきか
- MCP方式に寄せると何が良くなるか
- 併用するならどう分けるか
を、このプロジェクト前提で整理します。
併用するならどう分けるかを教えてください
Codexの回答
併用するなら、役割を分けるのが一番きれいです。
分け方
- 今の自動化
- 毎朝の定型業務を担当
- searcher: ニュース収集・重複除去・要約
- editor: GA4上位記事 + 記事内容 + 最新話題から、毎日3件提案
- 向いていること: 毎日同じ品質で回す、メール配信する、保存する
- MCP方式
- その場の深掘り分析を担当
- 例:
- 「先週PVが落ちた記事の共通点は?」
- 「Android Autoの記事で流入が多い検索意図は?」
- 「AI関連記事の中で直帰率が高いのはどれ?」
- 向いていること: ad hoc 分析、仮説検証、自然言語での追加質問
実務上のおすすめ
- 日次運用は今の自動化のまま
- 意思決定前の追加調査だけ MCP を使う
つまり、
- 朝: 自動で提案を受け取る
- 気になった提案があれば: MCPで追加質問する
という流れです。
この分け方が良い理由
- 自動配信は、毎回同じフォーマットで安定した方がいい
- MCPは柔軟だが、毎朝の定型ジョブにすると設計がぶれやすい
- なので
- 定型 = スクリプト
- 非定型 = MCP
で分けるのが実用的です
併用イメージ
- editor のメールで
- 「テーマ案A」
- 「テーマ案B」
- 「テーマ案C」
- その後あなたが MCP で
- 「テーマ案Bに関連する過去30日PV上位ページだけ再分析して」
- 「AIテーマで検索流入が強いページタイトルを抽出して」
と聞く
必要なら次に、あなたの今の運用に合わせて
「自動化で残す処理」と「MCPに回す質問例」 を表で整理します。
「自動化で残す処理」と「MCPに回す質問例」 を表で整理してください
Codexの回答
以下の分け方が実務向きです。
| 区分 | 処理内容 | 理由 | 具体例 |
|---|---|---|---|
| 自動化で残す | ニュース収集 | 毎日同じ条件で回す定型処理だから | AI / CarPlay / Android Auto / Arduino の新着収集 |
| 自動化で残す | 重複除去 | ルール化しやすく、人が毎回判断する必要がない | 当日重複、過去7日重複の除去 |
| 自動化で残す | 日次レポート生成 | 形式が固定されているため自動化向き | サーチャーレポートの作成 |
| 自動化で残す | GA4上位記事取得 | 毎日同じ指標を取るだけなら安定実行しやすい | 直近28日のPV上位20記事取得 |
| 自動化で残す | 毎日のテーマ提案 | 毎朝3件出すという定型要件がある | 編集者の提案メール |
| 自動化で残す | メール送信・保存 | 定型出力なので完全自動化向き | メール配信、テキスト保存 |
| MCPに回す | 提案テーマの深掘り分析 | 質問内容が毎回変わるため | 「提案Aに近い過去記事で一番読まれた切り口は?」 |
| MCPに回す | PV変動の原因分析 | 仮説ベースで対話したい領域だから | 「先週AI記事のPVが落ちた理由を見たい」 |
| MCPに回す | 記事群の共通点抽出 | 人が見たい観点が都度変わるから | 「上位10記事に共通するタイトル構造は?」 |
| MCPに回す | 流入・検索意図の解釈 | 定型レポートより対話の方が向く | 「Android Auto記事はどんな検索意図で読まれていそう?」 |
| MCPに回す | 比較分析 | 比較対象が固定でないことが多い | 「AIとArduinoで最近伸びたテーマを比較して」 |
| MCPに回す | 記事化前の壁打ち | アイデアの評価は往復した方が良い | 「このテーマ案3つならどれを先に書くべき?」 |
整理すると
- 自動化: 毎朝必ず出したいもの
- MCP: その場で追加で聞きたいもの
おすすめ運用
- 朝は今の自動配信を見る
- 気になったテーマだけ MCP で追加質問する
- 書くテーマを最終決定する
必要なら次に、
あなたがMCPで実際に使うと良い質問テンプレート集 を作ります。
Codexに現システムとの違いを確認し、現システムとMCPサーバーを使ったシステムを併用する意味はあるようだったので、Claude CodeにMCPサーバーを使ったシステムの構築を依頼することにした。
Claude Codeによる、MCPサーバーを使うシステムの構築
下記の情報があります。現在、Pythonスクリプト で GA4 Data API を直接呼ぶ方法で、CodexにGA4の情報をもらっていますが、それとは別に下記の方法を使って対話的に分析したいと思います。実現できますか。
Google Analytics 4 のデータを LLM につなぐMCP Serverを利用することによって、Claude や Gemini などのAIに自然言語で質問して自身のブログの分析ができる
実現できます。いくつかの方法があります。
GA4 MCP Server を Claude Code に接続する方法
選択肢1: Stape の GA4 MCP Server(最も簡単)
認証情報不要で試せるホスト型サービスです。
~/.claude/settings.json に追加:
{
"mcpServers": {
"google-analytics": {
"command": "npx",
"args": [
"mcp-remote@0.1.30",
"https://mcp-ga.stape.ai/mcp"
]
}
}
}
選択肢2: Python ベースのローカル MCP Server(既存スクリプトに近い構成)
サービスアカウントJSONを使う方法で、現在の環境と親和性が高いです。
pip install google-analytics-mcp
settings.json:
{
"mcpServers": {
"google-analytics": {
"command": "python",
"args": ["-m", "google_analytics_mcp"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json",
"GA4_PROPERTY_ID": "properties/XXXXXXXX"
}
}
}
}
選択肢3: No-code(Windsor.ai)
Windsor.ai は GA4 を含む 300+ ソースに対応した MCP コネクタを提供しています。
現在の Python スクリプト方式との違い
| 項目 | Python スクリプト(現在) | MCP Server |
|---|---|---|
| 分析方法 | 事前定義したクエリを実行 | 自然言語で対話的に質問 |
| 柔軟性 | スクリプト修正が必要 | その場で質問を変えられる |
| 設定 | GA4 Data API 認証のみ | MCP 設定 + 認証 |
| 利用場面 | 定型レポート自動化 | 探索的分析・アドホック調査 |
推奨手順
- サービスアカウントJSONが既にある場合 → 選択肢2が最もスムーズ
- まず試してみたい場合 → 選択肢1(Stape)
どちらの方法で進めますか?現在お持ちのサービスアカウント設定を活かして構成することも可能です。
Sources:
- How to set up the MCP Server for Google Analytics 4 by Stape
- Connecting to the Google Analytics MCP server with Claude | Two Octobers
- GitHub – surendranb/google-analytics-mcp
- How to Connect GA4 Data to Claude in 1 Min (No-Code MCP Guide) | Windsor.ai
追加費用は発生しますか
費用について
選択肢1: Stape の GA4 MCP Server
- 無料プランあり(月間リクエスト数に制限)
- 有料プランは用途次第で必要になる可能性あり
- Stape 側のサービス料が別途かかる
選択肢2: Python ベースのローカル MCP Server(推奨)
- 追加費用なし
- 既に持っているサービスアカウントとGA4 Data APIをそのまま使う
- GA4 Data API 自体は無料(GA4は無料枠内であれば追加費用なし)
選択肢3: Windsor.ai
- 有料サービス(月額プランあり)
結論
現在の Python スクリプトと同じ認証情報(サービスアカウントJSON)を使う選択肢2が、追加費用ゼロで使えます。
GA4 Data API は Google が無料で提供しており、リクエスト数の上限も通常の分析用途では問題ありません。
Claude Code 自体の利用料金(Anthropic のプラン)のみかかります。
選択肢2で進める場合、セットアップをお手伝いします。
セットアップを手伝ってください
まず現在の環境を確認します。
(途中省略)
既存の GA4 スクリプトはこのマシン上には見当たりませんでした。セットアップに必要な情報を教えてください。
2点確認させてください:
- サービスアカウントJSON ファイルの保存場所(例:
~/keys/ga4-service-account.jsonなど) - GA4 プロパティID(例:
properties/123456789)
これらが分かれば、すぐに設定を進められます。
また、どの MCP サーバーパッケージを使うか決める必要があります。以下の2つが候補です:
A: surendranb/google-analytics-mcp(GitHub、Python製)
- pip でインストール可能
- 200以上のディメンション・メトリクスに対応
B: roympike/ga4-mcp-server(npm/npx製)
- Node.js ベース、設定が少しシンプル
現在の環境(miniforge/Python 3.10 あり)を考えると A の Python 製 が自然に使えます。
(途中省略)
サービスアカウントJSONは見つかりませんでした。
以下を教えてください:
必要な情報:
- サービスアカウントJSONファイルの場所
- Google Cloud Console からダウンロードしたJSONファイルのパス
- まだ作成していない場合は、一緒に作成します
- GA4 プロパティID
- GA4 管理画面 → プロパティ設定 → 「プロパティID」(数字のみ)
もしサービスアカウントがまだない場合、作成手順は:
- Google Cloud Console → IAM と管理 → サービスアカウント
- サービスアカウントを作成 → キーを追加(JSON形式)
- GA4 管理画面 → プロパティのアクセス管理 → そのサービスアカウントのメールを「閲覧者」で追加
どちらの状況ですか?
意外だったが、Claude Codeは、必要なファイルを見つけることができなかったので、Codexに聞いてみた。
今使っている方法は、認証情報(サービスアカウントJSON)を使っていますか
Codexの回答(抜粋)
はい、使っています。
今の仕組みでは、GA4 取得に サービスアカウントJSON を使っています。
使い方:
Google Analytics Data APIのアクセストークンを取得- そのトークンで
runReportを実行
該当箇所:
- /Users/…../.env
- /Users/…../run_editor.py
つまり、今の認証方式は OAuthの手動ログインではなく、サービスアカウント方式 です。
使えるサービスアカウントは取得済でしたか、また、GA4 Data APIを使える状態ですか
Codexの回答(抜粋)
はい、両方とも確認できます。
確認できたこと
- サービスアカウントJSONは取得・配置済みです
- /Users/…../ga4-service-account.json
- GA4_PROPERTY_ID
- GA4_CREDENTIALS_PATH
つまり、
- 使えるサービスアカウントは取得済み
- GA4 Data API も実際に使えている状態
です。
Codexに問い合わせたところ、下記の回答がありました。また、A.のMCPサーバーパッケージを使ってください。
(Codexの回答、表示省略)
Claude Codeの回答(抜粋)
情報が揃いました。セットアップを進めます。
(途中省略)
settings.json には mcpServers は書けない仕様です。claude mcp add コマンドで追加します。
モジュール名が違いました。実際は ga4_mcp です。設定を修正します。
接続成功しました。
セットアップ完了:
- パッケージ: google-analytics-mcp 2.0.1
- 認証情報: サービスアカウントJSON + プロパティID *********
使い方:
Claude に対して自然言語で直接質問できます。例:
先週のページビュー上位10記事を教えて
直近30日のオーガニック検索からの流入数は?
先月と今月のセッション数を比較して
注意: この設定は /Volumes/TEKQPHYE748/claude ディレクトリで Claude を起動した場合のみ有効です(プロジェクトローカル設定)。全プロジェクトで使いたい場合は --global オプションで再追加できます。
全プロジェクトで使いたいので、–global オプションで再追加をお願いします。
1つ確認ですが、質問する際、「これこれをGA4にアクセスして調べて」というような文言を付けて質問する必要がありますか
Claude Codeの回答
まずグローバルに再追加します。
(途中省略)
全プロジェクト共通(user スコープ)で接続確認できました。
ご質問について:「GA4にアクセスして」という文言は不要です。
MCP が接続されている状態では、Claude が質問の意図を判断して自動的に GA4 ツールを呼び出します。
# こういう自然な聞き方でOK
先週のPV上位10記事は?
今月の新規ユーザー数を教えて
直近7日間でどの流入経路が多い?
# わざわざ言わなくていい
❌「GA4にアクセスして先週のPV上位10記事を調べて」
ただし、GA4以外の情報と混在する質問(例:「ブログ全体のパフォーマンスを教えて」)では、どこから取得するか曖昧になることがあります。その場合は「GA4で」と一言添えると確実です。
使用例
直近7日間でどの流入経路が多い?
Claude Codeの回答
直近7日間の流入経路(チャネル別)はこちらです:
| 流入経路 | セッション | ユーザー | 新規ユーザー |
|---|---|---|---|
| 🔍 オーガニック検索 | 973 | 782 | 726 |
| 🔗 ダイレクト | 158 | 144 | 141 |
| 🎬 オーガニック動画 | 19 | 15 | 14 |
| 📌 参照元(リファラル) | 9 | 8 | 7 |
| ❓ 未分類 | 6 | 6 | 5 |
| 📱 オーガニックSNS | 2 | 2 | 2 |
総セッション数: 1,167
ポイント:
- オーガニック検索が圧倒的 (83.4%) — SEO経由が主な流入源
- ダイレクトが2位 (13.5%) — ブックマークや直接アクセス
- SNSはほぼゼロ (0.2%) — SNS経由の流入強化が伸びしろになりそう
- 新規ユーザー率が高く(全体の約83%)、リピーターの育成も課題になりそうです
この結果から改善策を3つ提案してください
データをもとに、優先度の高い順に3つ提案します。
改善策 1:SNS流入を強化する
現状: SNS経由はわずか2セッション(0.2%)
オーガニック検索で結果が出ているコンテンツは、すでに「需要がある記事」です。それをSNSで積極的に発信することで、追加コストなしに流入を増やせます。
具体的なアクション:
- PV上位の記事をX(Twitter)・Instagramで再投稿
- 記事公開時のSNS投稿をルーティン化する
- 記事内にSNSシェアボタンを目立つ位置に設置
改善策 2:リピーター獲得の仕組みを作る
現状: 新規ユーザー率83%、つまりほとんどが1回きりの訪問
検索で来たユーザーが次回もダイレクトアクセスしてくれるようにするのが鍵です。
具体的なアクション:
- メールマガジン・LINE登録の誘導を記事末尾に追加
- 「関連記事」レコメンドを強化して回遊率を上げる
- プッシュ通知(Web Push)の導入を検討
改善策 3:リファラル(被リンク)を増やす
現状: リファラルは9セッション(0.8%)とほぼゼロ
他サイトからの被リンクはSEO評価にも直結するため、流入増加とオーガニック検索強化の両方に効きます。
具体的なアクション:
- 他ブログ・メディアへのゲスト投稿や取材対応
- 「引用されやすいデータや図表」を含む記事を作る
- 同ジャンルの運営者と相互リンクを検討
まとめ:優先順位
| 優先度 | 施策 | 難易度 | 即効性 |
|---|---|---|---|
| ★★★ | SNS発信強化 | 低 | 高 |
| ★★☆ | リピーター獲得 | 中 | 中 |
| ★☆☆ | 被リンク獲得 | 高 | 低 |
SNS強化がコスト・難易度ともに最も取り組みやすい施策です。まずここから始めるのをおすすめします。
今回のシステム構築では、すでにCodexで現システムを構築しており、必要な情報が入手済であったため、比較的短時間でシステムを構築することができた。
