GA4 Analytics MCP
GA4 Analytics MCP
Conector personal de Google Analytics 4 para Conectores personalizados de Claude.ai, alojado en Google Cloud Run.
Claude.ai Custom Connector
→ https://ga4-mcp-xxxxx-uc.a.run.app/ga4mcp
→ Cloud Run
→ Google Analytics Data API
→ your GA4 propertiesNo hay servidor stdio local, no hay requisito de npx y no hay claude_desktop_config.json.
Dos capas de autenticación se mantienen separadas:
Claude → MCP: OAuth de MCP (CIMD / DCR)
MCP → Google: Token de actualización de Google OAuth almacenado en
GOOGLE_REFRESH_TOKEN
Herramientas de MCP
Herramienta | Propósito |
| Descubrir propiedades en la cuenta de Google conectada |
| Listar dimensiones y métricas válidas |
| Informes históricos de GA4 |
| Últimos ~30 minutos |
Related MCP server: Google Analytics MCP Server
Desarrollo local
npm install
copy .env.example .env.localRellena .env.local, luego:
npm run devApp:
http://localhost:3000MCP:
http://localhost:3000/ga4mcpGoogle OAuth:
http://localhost:3000/oauth/googleHealth:
http://localhost:3000/health
npm test
npm run buildClaude.ai no puede alcanzar localhost. Despliega en Cloud Run antes de añadir el Conector personalizado.
Configuración de Google Cloud (un proyecto)
Usa el mismo proyecto de Google Cloud para las APIs, OAuth y Cloud Run.
1. Instalar e iniciar sesión
Instala el Google Cloud SDK.
Ejecuta:
gcloud auth login
gcloud auth application-default loginCrea o selecciona un proyecto en Google Cloud Console.
gcloud config set project YOUR_PROJECT_ID2. Habilitar APIs
.\scripts\cloud-run-setup.ps1 -ProjectId YOUR_PROJECT_ID -Region us-central1Esto habilita:
Cloud Run
Cloud Build
Artifact Registry
Google Analytics Data API
Google Analytics Admin API
O habilítalas en la Consola: APIs & Services → Library.
3. Consentimiento de OAuth y cliente web
Este cliente OAuth de Google es solo para que Cloud Run pueda leer tus datos de GA4. No es el cliente de Configuración Avanzada de Claude.ai.
Abre APIs & Services → OAuth consent screen.
Tipo de usuario: External para una cuenta de Gmail personal.
Nombre de la aplicación:
GA4 MCP.Añádete como usuario de prueba si permaneces en Testing.
Publica en Production para que los tokens de actualización no caduquen después de 7 días.
Crea credenciales de OAuth client ID.
Tipo de aplicación: Web application.
URIs de redirección autorizados (añade ambos):
http://localhost:3000/oauth/google/callbackhttps://ga4-mcp-XXXXXXXX-uc.a.run.app/oauth/google/callback
(usa la URL real de Cloud Run después del primer despliegue)
Ámbito utilizado por esta aplicación:
https://www.googleapis.com/auth/analytics.readonlyCopia el client ID y el client secret. No los subas al repositorio.
La cuenta de Google que autorices ya debe tener acceso a las propiedades de GA4 que Claude debe consultar.
Desplegar en Cloud Run
Nombre del servicio por defecto: ga4-mcp. Región por defecto: us-central1.
.\scripts\cloud-run-deploy.ps1 -ProjectId YOUR_PROJECT_ID -Region us-central1El script imprime:
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/callbackEl servicio se despliega permitiendo acceso sin autenticación. Eso es necesario. Claude.ai se conecta desde Anthropic (160.79.104.0/21). La autenticación es MCP_AUTH_TOKEN / OAuth de MCP, no IAM de Cloud Run.
Establecer variables de entorno
.\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"Luego añade la URL de callback de Cloud Run al cliente OAuth de Google si aún no lo has hecho.
Conectar Google
Abre
https://ga4-mcp-XXXXXXXX-uc.a.run.app/oauth/googleIntroduce
MCP_AUTH_TOKENInicia sesión con tu cuenta de Google
Copia
GOOGLE_REFRESH_TOKENdesde la página de éxitoEstablécelo y deja que Cloud Run inicie una nueva revisión:
.\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 no puede escribir vars de entorno desde dentro del contenedor. Misma regla que cualquier host serverless.
Confirmar el servicio
https://ga4-mcp-XXXXXXXX-uc.a.run.app/healthdebe devolver:
{"status":"ok"}Variables de entorno
Variable | Requerida | Propósito |
| Sí | Origen de Cloud Run, sin barra inclinada al final |
| Sí | Cliente web OAuth de Google |
| Sí | Secreto del cliente web OAuth de Google |
| No | Por defecto: |
| Sí | Token de configuración del operador para OAuth de Google y consentimiento MCP de Claude |
| Después de OAuth Google | Token de actualización de larga duración de Google |
| No | Firma las cookies de estado de OAuth de Google |
| No | Firma los JWTs de MCP. Por defecto: |
| No | Solo para cliente confidencial de Configuración Avanzada de Claude.ai |
| No | Par para ese cliente opcional |
Establécelas en el servicio de Cloud Run. No las pongas en Git.
Ruta opcional en la Consola: Cloud Run → ga4-mcp → Edit & deploy new revision → Variables & secrets.
Conector personalizado de Claude.ai
Confirma que
/healthdevuelve{"status":"ok"}.Completa OAuth de Google y establece
GOOGLE_REFRESH_TOKEN.En Claude.ai abre Customize → Connectors → Add custom connector.
Nombre:
GA4 AnalyticsURL:
https://ga4-mcp-XXXXXXXX-uc.a.run.app/ga4mcpDeja vacío Advanced OAuth Client ID / Secret.
Haz clic en Add.
Habilita el conector en + → Connectors.
La primera llamada a una herramienta GA4 mostrará Connect. Introduce
MCP_AUTH_TOKENen la página de consentimiento de esta aplicación (no tu contraseña de Google).Pregunta: ¿Cuántos usuarios tuve ayer?
gcloud manual (si no quieres los scripts)
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=...Seguridad
Nunca registres tokens de Google, códigos de autorización, secretos de cliente o JWTs de MCP.
Las herramientas MCP nunca devuelven secretos.
Solo se persiste
GOOGLE_REFRESH_TOKEN, como variable de entorno de Cloud Run.El ingreso de Cloud Run es público para que Claude pueda conectarse. No pongas también un inicio de sesión de Cloud IAP / IAM delante de
/ga4mcp.Genera un
MCP_AUTH_TOKENlargo y aleatorio.
Fechas
Se pasan a GA4 sin cambios: today, yesterday, 7daysAgo, 30daysAgo, 90daysAgo, o YYYY-MM-DD. La dimensión date devuelve YYYYMMDD.
Limitaciones conocidas
Una cuenta de Google y un token de actualización.
Cloud Run no puede persistir un archivo ni mutar vars de entorno en tiempo de ejecución; establece
GOOGLE_REFRESH_TOKENy despliega una nueva revisión.Los tokens de actualización en modo Testing de Google caducan después de unos 7 días.
Los datos en tiempo real son aproximadamente los últimos 30 minutos.
El tamaño del informe está limitado a 10,000 filas.
Los arranques en frío pueden añadir unos segundos cuando
min-instanceses 0.
Archivos añadidos para Cloud Run
Archivo | Propósito |
| Imagen independiente de Next.js para producción |
| Construir imagen y desplegar Cloud Run |
| Habilitar APIs y Artifact Registry |
| Construir y desplegar |
| Establecer vars de entorno de 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.-