GA4 Analytics MCP
GA4 Analytics MCP
Персональный коннектор Google Analytics 4 для Claude.ai Custom Connectors, размещённый на Google Cloud Run.
Claude.ai Custom Connector
→ https://ga4-mcp-xxxxx-uc.a.run.app/ga4mcp
→ Cloud Run
→ Google Analytics Data API
→ your GA4 propertiesЛокального stdio-сервера нет, не требуется npx и нет claude_desktop_config.json.
Два уровня аутентификации остаются раздельными:
Claude → MCP: MCP OAuth (CIMD / DCR)
MCP → Google: Google OAuth refresh token, хранящийся в
GOOGLE_REFRESH_TOKEN
MCP-инструменты
Инструмент | Назначение |
| Обнаружить свойства на подключённом Google-аккаунте |
| Список валидных измерений и метрик |
| Исторические отчёты GA4 |
| Последние ~30 минут |
Related MCP server: Google Analytics MCP Server
Локальная разработка
npm install
copy .env.example .env.localЗаполните .env.local, затем:
npm run devПриложение:
http://localhost:3000MCP:
http://localhost:3000/ga4mcpGoogle OAuth:
http://localhost:3000/oauth/googleHealth:
http://localhost:3000/health
npm test
npm run buildClaude.ai не может получить доступ к localhost. Разверните приложение на Cloud Run перед добавлением Custom Connector.
Настройка Google Cloud (один проект)
Используйте один и тот же проект Google Cloud для API, OAuth и Cloud Run.
1. Установка и вход
Установите Google Cloud SDK.
Выполните:
gcloud auth login
gcloud auth application-default loginСоздайте или выберите проект в Google Cloud Console.
gcloud config set project YOUR_PROJECT_ID2. Включение API
.\scripts\cloud-run-setup.ps1 -ProjectId YOUR_PROJECT_ID -Region us-central1Это включает:
Cloud Run
Cloud Build
Artifact Registry
Google Analytics Data API
Google Analytics Admin API
Или включите их в консоли: APIs & Services → Library.
3. Согласие OAuth и веб-клиент
Этот клиент Google OAuth нужен только для того, чтобы Cloud Run мог читать ваши данные GA4. Это не клиент для расширенных настроек Claude.ai.
Откройте APIs & Services → OAuth consent screen.
Тип пользователя: External для личного Gmail-аккаунта.
Название приложения:
GA4 MCP.Добавьте себя как тестового пользователя, если остаётесь в режиме тестирования.
Опубликуйте в Production, чтобы токены обновления не истекали через 7 дней.
Создайте учётные данные OAuth client ID.
Тип приложения: Web application.
Авторизованные URI перенаправления (добавьте оба):
http://localhost:3000/oauth/google/callbackhttps://ga4-mcp-XXXXXXXX-uc.a.run.app/oauth/google/callback
(используйте реальный URL Cloud Run после первого развёртывания)
Область доступа, используемая этим приложением:
https://www.googleapis.com/auth/analytics.readonlyСкопируйте ID клиента и секрет клиента. Не сохраняйте их в Git.
Google-аккаунт, который вы авторизуете, должен уже иметь доступ к свойствам GA4, которые Claude должен запрашивать.
Развёртывание на Cloud Run
Имя службы по умолчанию: ga4-mcp. Регион по умолчанию: us-central1.
.\scripts\cloud-run-deploy.ps1 -ProjectId YOUR_PROJECT_ID -Region us-central1Скрипт выводит:
https://ga4-mcp-XXXXXXXX-uc.a.run.app
https://ga4-mcp-XXXXXXXX-uc.a.run.app/ga4mcp
https://ga4-mcp-XXXXXXXX-uc.a.run.app/health
https://ga4-mcp-XXXXXXXX-uc.a.run.app/oauth/google/callbackСлужба разворачивается с разрешением неаутентифицированного доступа. Это обязательно. Claude.ai подключается от Anthropic (160.79.104.0/21). Аутентификация — MCP_AUTH_TOKEN / MCP OAuth, а не Cloud Run IAM.
Установка переменных окружения
.\scripts\cloud-run-set-env.ps1 `
-ProjectId YOUR_PROJECT_ID `
-AppBaseUrl "https://ga4-mcp-XXXXXXXX-uc.a.run.app" `
-GoogleClientId "....apps.googleusercontent.com" `
-GoogleClientSecret "...." `
-McpAuthToken "a-long-random-string"Затем добавьте URL обратного вызова Cloud Run в клиент Google OAuth, если вы ещё этого не сделали.
Подключение Google
Откройте
https://ga4-mcp-XXXXXXXX-uc.a.run.app/oauth/googleВведите
MCP_AUTH_TOKENВойдите в свой Google-аккаунт
Скопируйте
GOOGLE_REFRESH_TOKENсо страницы успехаУстановите его и дайте Cloud Run запустить новую ревизию:
.\scripts\cloud-run-set-env.ps1 `
-ProjectId YOUR_PROJECT_ID `
-AppBaseUrl "https://ga4-mcp-XXXXXXXX-uc.a.run.app" `
-GoogleClientId "....apps.googleusercontent.com" `
-GoogleClientSecret "...." `
-McpAuthToken "a-long-random-string" `
-GoogleRefreshToken "1//...."Cloud Run не может записывать переменные окружения изнутри контейнера. То же правило, что и для любого серверного хостинга.
Проверка службы
https://ga4-mcp-XXXXXXXX-uc.a.run.app/healthдолжен вернуть:
{"status":"ok"}Переменные окружения
Переменная | Обязательно | Назначение |
| Да | Origin Cloud Run, без завершающего слеша |
| Да | ID веб-клиента Google OAuth |
| Да | Секрет веб-клиента Google OAuth |
| Нет | По умолчанию |
| Да | Токен настройки оператора для Google OAuth и согласия MCP Claude |
| После Google OAuth | Долгоживущий токен Google |
| Нет | Подписывает cookie состояния Google OAuth |
| Нет | Подписывает MCP JWT. По умолчанию равен |
| Нет | Только для конфиденциального клиента расширенных настроек Claude.ai |
| Нет | Пара для этого опционального клиента |
Установите их в службе Cloud Run. Не помещайте их в Git.
Опциональный путь в консоли: Cloud Run → ga4-mcp → Edit & deploy new revision → Variables & secrets.
Custom Connector в Claude.ai
Убедитесь, что
/healthвозвращает{"status":"ok"}.Завершите Google OAuth и установите
GOOGLE_REFRESH_TOKEN.В Claude.ai откройте Customize → Connectors → Add custom connector.
Имя:
GA4 AnalyticsURL:
https://ga4-mcp-XXXXXXXX-uc.a.run.app/ga4mcpОставьте Advanced OAuth Client ID / Secret пустыми.
Нажмите Add.
Включите коннектор в + → Connectors.
При первом вызове инструмента GA4 появится Connect. Введите
MCP_AUTH_TOKENна странице согласия этого приложения (не ваш пароль Google).Спросите: Сколько у меня было пользователей вчера?
Ручная работа с gcloud (если вы не хотите использовать скрипты)
gcloud artifacts repositories create ga4-mcp --repository-format=docker --location=us-central1
gcloud builds submit --config cloudbuild.yaml --substitutions=_REGION=us-central1
gcloud run services describe ga4-mcp --region us-central1 --format="value(status.url)"
gcloud run services update ga4-mcp --region us-central1 --update-env-vars APP_BASE_URL=https://...,GOOGLE_CLIENT_ID=...,GOOGLE_CLIENT_SECRET=...,GOOGLE_REDIRECT_URI=https://.../oauth/google/callback,MCP_AUTH_TOKEN=...Безопасность
Никогда не логируйте токены Google, коды авторизации, секреты клиентов или MCP JWT.
MCP-инструменты никогда не возвращают секреты.
Сохраняется только
GOOGLE_REFRESH_TOKENкак переменная окружения Cloud Run.Входящий трафик Cloud Run является публичным, чтобы Claude мог подключаться. Не ставьте дополнительный вход Cloud IAP / IAM перед
/ga4mcp.Сгенерируйте длинный случайный
MCP_AUTH_TOKEN.
Даты
Передаются в GA4 без изменений: today, yesterday, 7daysAgo, 30daysAgo, 90daysAgo или YYYY-MM-DD. Измерение date возвращается в формате YYYYMMDD.
Известные ограничения
Один Google-аккаунт и один токен обновления.
Cloud Run не может сохранять файлы или изменять переменные окружения во время выполнения; установите
GOOGLE_REFRESH_TOKENи разверните новую ревизию.Токены обновления в режиме тестирования Google истекают примерно через 7 дней.
Данные в реальном времени охватывают примерно последние 30 минут.
Размер отчёта ограничен 10 000 строк.
Холодный старт может добавлять несколько секунд, когда
min-instancesравно 0.
Файлы, добавленные для Cloud Run
Файл | Назначение |
| Производственный образ Next.js standalone |
| Сборка образа и развёртывание Cloud Run |
| Включение API и Artifact Registry |
| Сборка и развёртывание |
| Установка переменных окружения Cloud Run |
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server for GA4, Google Ads and Search Console. Google OAuth, nothing to install.
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Connect Google Analytics to ChatGPT. Query GA4 data in plain English and get instant insights.
Ask Claude, ChatGPT, Cursor or any AI tool how your site is doing — the answers come from your own Google Analytics 4 (GA4) property. Paste https://app.anacraft.dev/mcp, sign in with Google and pick your site; nothing to install. Twelve tools: headline metrics against the previous period, live visitors, top pages, events, referrers, traffic sources and countries, page and event search, and an audit that checks whether the GA4 property is measuring correctly before its numbers are quoted. One tool writes: it creates a GA4 property and web stream for a new domain and returns the tag to paste.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables LLM applications to query Google Analytics 4 data through standard MCP interfaces, supporting real-time data, custom reports, and metadata discovery.563 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying Google Analytics 4 data using natural language through MCP clients like Claude and Cursor, supporting 200+ dimensions and metrics for traffic, user behavior, and e-commerce analysis.MIT
- AlicenseAqualityDmaintenanceEnables querying Google Analytics 4 properties using natural language through MCP clients. Supports customizable reports with any dimensions and metrics, listing properties, and real-time data.4MIT
- FlicenseNot gradedqualityCmaintenanceProduction-ready MCP server integrating Google Search Console, GA4, and PageSpeed Insights for SEO and analytics intelligence, enabling natural-language queries to Google analytics data.-