GA4 Analytics MCP
GA4 Analytics MCP
Claude.aiのカスタムコネクタ向け個人用Google Analytics 4コネクタです。1つのGoogleアカウント、1つのMCPサーバーをVercel上にデプロイします。
Claude.ai Custom Connector
→ https://<VERCEL_PROJECT_NAME>.vercel.app/ga4mcp
→ Vercel Streamable HTTP MCP
→ Google Analytics Data API
→ your GA4 propertiesローカルのstdioサーバーはなく、npxの要件もなく、claude_desktop_config.jsonもありません。
2つの認証層は分離されています。
Claude → MCP: MCP OAuth(CIMD / DCR / オプションのAdvanced Settingsクライアント)
MCP → Google:
GOOGLE_REFRESH_TOKENに保存されたGoogle OAuthリフレッシュトークン
MCPツール
ツール | 目的 |
| 接続されたGoogleアカウントのプロパティを検出 |
| 有効なディメンションと指標を一覧表示 |
| 過去のGA4レポート |
| 直近約30分 |
ローカル開発
npm install
copy .env.example .env.local.env.localに記入してから、次の手順を実行します。
npm run devアプリ:
http://localhost:3000MCP:
http://localhost:3000/ga4mcpGoogle OAuth:
http://localhost:3000/oauth/googleヘルスチェック:
http://localhost:3000/health
npm test
npm run buildClaude.aiはlocalhostにアクセスできません。カスタムコネクタを追加する前にVercelにデプロイしてください。
Google Cloudの設定
これはMCPサーバーがGA4データを読み取るためのものであり、Claude.aiのコネクタOAuthクライアントではありません。
Google Cloudプロジェクトを作成または選択します。
Google Analytics Data APIを有効にします。
Google Analytics Admin APIを有効にします。
OAuth同意画面を設定します(個人用Gmailの場合は外部)。リフレッシュトークンが7日後に期限切れにならないよう、本番環境に公開します。
WebアプリケーションタイプのOAuthクライアントを作成します。
承認済みのリダイレクトURI:
http://localhost:3000/oauth/google/callbackhttps://<VERCEL_PROJECT_NAME>.vercel.app/oauth/google/callback
このアプリで使用するスコープ:
https://www.googleapis.com/auth/analytics.readonlyクライアントIDとシークレットを環境変数にコピーします。
次に、/oauth/googleにアクセスし、MCP_AUTH_TOKENを入力して、GA4プロパティを所有するGoogleアカウントでサインインします。
ローカルでは、リフレッシュトークンは
.env.localに書き込まれます。Vercelでは、
GOOGLE_REFRESH_TOKENをプロジェクトの環境変数に貼り付け、再デプロイします。
環境変数
変数 | 必須 | 目的 |
| はい | 公開元のURL、末尾スラッシュなし。本番環境: |
| はい | Google OAuthウェブクライアントID |
| はい | Google OAuthウェブクライアントシークレット |
| いいえ | デフォルトは |
| はい | Google OAuthおよびClaude MCP同意のためのオペレーター設定トークン |
| Google OAuthの後 | 長期有効なGoogleトークン |
| いいえ | Google OAuth状態のCookieに署名 |
| いいえ | MCPアクセス/リフレッシュJWTに署名。デフォルトは |
| いいえ | Claude.ai Advanced Settingsの機密クライアントを使用する場合のみ |
| いいえ | オプションの機密クライアントのペア |
Vercel
npm i -g vercel
vercel
vercel --prodVercelプロジェクトに環境変数を追加します。本番環境で初回のGoogle OAuthを行った後、GOOGLE_REFRESH_TOKENを設定して再デプロイします。
本番環境ではDeployment Protection / Vercel Authenticationを無効にしてください。 Claude.aiはAnthropicのネットワーク(160.79.104.0/21)から接続します。Vercel SSOが/ga4mcpの前に配置されている場合、コネクタは接続できません。
本番環境のURL:
https://<VERCEL_PROJECT_NAME>.vercel.app/ga4mcp
https://<VERCEL_PROJECT_NAME>.vercel.app/oauth/google/callback
https://<VERCEL_PROJECT_NAME>.vercel.app/healthカスタムドメインは後からオプションで設定可能です。コード変更が不要なようにAPP_BASE_URLを引き続き使用してください。
Claude.aiカスタムコネクタ
Vercelにデプロイし、
https://<VERCEL_PROJECT_NAME>.vercel.app/healthが{"status":"ok"}を返すことを確認します。https://<VERCEL_PROJECT_NAME>.vercel.app/oauth/googleでGoogleと接続します。GOOGLE_REFRESH_TOKENをVercelの環境変数に設定し、再デプロイします。Claude.aiでカスタマイズ → コネクタ → カスタムコネクタを追加を開きます。
名前:
GA4 AnalyticsURL:
https://<VERCEL_PROJECT_NAME>.vercel.app/ga4mcpAdvanced OAuthクライアントID / シークレットは空のままにします。Claudeはこのサーバーの認証エンドポイントに対してCIMDを使用します。
追加をクリックします。
チャットの**+ → コネクタ**メニューでコネクタを有効にします。
最初のGA4ツール呼び出しで接続カードが表示されます。このアプリの同意ページで
MCP_AUTH_TOKENを入力します(Googleのパスワードではありません)。質問: 昨日のユーザー数は何人でしたか?
initializeとtools/listは公開されているため、Claudeはツールを検出できます。tools/callは、MCP OAuthが完了するまでHTTP 401とWWW-Authenticateを返します。
セキュリティ
Googleトークン、認可コード、クライアントシークレット、MCP JWTをログに記録しないでください。
MCPツールはシークレットを返しません。
Googleアクセストークンは保存されません。環境変数には
GOOGLE_REFRESH_TOKENのみが保持されます。シークレットをGitに入れないでください。
日付
GA4にそのまま渡されます: today、yesterday、7daysAgo、30daysAgo、90daysAgo、またはYYYY-MM-DD。dateディメンションはYYYYMMDDとして返されます。
既知の制限事項
1つのGoogleアカウントと1つのリフレッシュトークン。
Vercelは実行時に環境変数を書き込めません。
GOOGLE_REFRESH_TOKENを貼り付けて再デプロイしてください。Googleのテストモードのリフレッシュトークンは約7日で期限切れになります。
リアルタイムデータはおよそ直近30分です。
レポートサイズは10,000行に制限されています。
このリポジトリからライブのClaude.aiクリックスルーを完了することはできません。それにはあなたのClaudeアカウントとVercelアカウントが必要です。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
GibsonAI MCP server: manage your databases with natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/devopsbrandmirchi/Ga4McpServer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server