MCP GA4 B2 TECH

Model Context Protocol · GA4 Admin API + Data API v1

Comande o Analytics
direto pelo Claude.

Um servidor MCP que liga o Claude às suas properties GA4 — audite key events e retenção, rode relatórios core e realtime, marque conversões, registre dimensões custom e linke o Google Ads sem abrir a UI do Analytics. Login Google embutido. Status: LIVE.

36 tools · Admin + Data API · login Google · multi-tenant

Admin API + Data API v1 Relatórios em uma frase Realtime: últimos 30 minutos preview=true por padrão confirm=true em irreversíveis Fecha o loop de medição Multi-tenant na Vercel Admin API + Data API v1 Relatórios em uma frase Realtime: últimos 30 minutos preview=true por padrão confirm=true em irreversíveis Fecha o loop de medição Multi-tenant na Vercel
O que é

Seu GA4, operado em linguagem natural

O MCP GA4 B2 TECH é um servidor Model Context Protocol que dá ao Claude acesso real às suas properties — não um chatbot que adivinha, mas chamadas tipadas nas duas APIs oficiais do Google Analytics 4.

Conexão real

Claude fala com a sua property

Audite a hierarquia conta → property → stream, key events, dimensões custom e retenção pela Admin API; rode relatórios core e realtime pela Data API. "Quem está no site agora?" vira uma chamada, não um palpite.

O loop completo

Fecha o loop de medição da frota

Os MCPs irmãos (Meta Ads, Google Ads, GTM, Cloudflare, Instagram) criam campanha, tag e tracking; o GA4 audita a property, cria o que falta, linka o Google Ads e lê o resultado. Tudo numa conversa.

Status

LIVE em produção

Deploy multi-tenant em mcp-ga4-one.vercel.app — OAuth 2.1 Authorization Server embutido com login Google nativo, tokens cifrados em Supabase dedicado, cache no Upstash. Mesmo stack dos MCPs irmãos.

O que ele já faz

O catálogo completo de ferramentas

36 tools agrupadas por função — da auditoria da property ao relatório realtime, do key event ao link com o Google Ads. Tudo abaixo já está implementado e no ar.

Auth & onboarding

6 tools
  • ga4_loginInicia o login Google (consentimento no browser).
  • ga4_submit_callbackFinaliza o login submetendo a URL de callback.
  • ga4_token_statusDiz se a credencial é válida, seus escopos e expiração.
  • ga4_refresh_tokenGera um access token novo a partir do refresh token.
  • connect_hotmartVincula sua compra de aluno: envia um código de 6 dígitos pro email da compra.
  • confirm_hotmartConfirma o código e libera o acesso.

Auditoria — contas & streams

6 tools
  • list_accountsTodas as contas GA4 que a credencial enxerga.
  • list_propertiesProperties de uma conta.
  • get_propertyConfiguração de uma property (timezone, moeda, service level).
  • list_data_streamsStreams web/iOS/Android; web carrega o measurement id G-.
  • get_data_streamDetalha um stream específico.
  • get_tracking_snippetMonta o snippet gtag.js do web stream — determinístico, sem gastar quota.

Auditoria — medição

5 tools
  • list_key_eventsEventos marcados como conversão.
  • list_custom_dimensionsDimensões custom registradas.
  • list_custom_metricsMétricas custom registradas.
  • list_google_ads_linksContas Google Ads linkadas à property.
  • get_data_retentionRetenção de dados de evento (2 ou 14 meses).

Relatórios — Data API

4 · destaque
  • run_reportRelatório core: métricas × dimensões × período (presets last_28d etc.), com filtro, ordenação e limite. Linhas voltam flat e coeridas.
  • run_realtime_reportAtividade dos últimos 30 minutos — quem está no site agora.
  • get_metadataTodas as dimensões/métricas válidas da property, inclusive as custom.
  • check_compatibilityDiz se uma combinação de dimensões/métricas roda junta — sem queimar quota de report.

Writes — preview por padrão

6 tools
  • create_propertyCria uma property nova.
  • update_propertyAltera configurações mutáveis (update parcial).
  • create_data_streamCria um web stream e devolve o id G-.
  • create_key_eventMarca um evento como conversão (once_per_event / once_per_session).
  • create_custom_dimensionRegistra dimensão custom — imutável depois de criada.
  • create_custom_metricRegistra métrica custom — imutável depois de criada.

Irreversíveis

4 · confirm=true
  • delete_key_eventPara de contar um evento como conversão (afeta o import no Ads).
  • archive_custom_dimensionAposenta uma dimensão custom — irreversível.
  • archive_custom_metricAposenta uma métrica custom — irreversível.
  • update_data_retentionAjusta a retenção (2m/14m) — encolher a janela apaga dados antigos permanentemente.

Integrações

5 tools
  • create_google_ads_linkLinka uma conta Google Ads — conversões e audiências do GA4 ficam disponíveis no Ads.
  • delete_google_ads_linkDesfaz o link (destrutivo, precisa de confirm) — o import de conversões para.
  • list_measurement_protocol_secretsLista os secrets de Measurement Protocol de um stream.
  • create_measurement_protocol_secretCria um secret MP para ingestão server-side.
  • delete_measurement_protocol_secretApaga um secret MP (destrutivo, confirm) — também é o caminho de rotação.

Do raio-X ao resultado numa conversa: auditar a property → criar o que falta → create_google_ads_linkrun_report.

Modelo de segurança dos writes

O Claude não apaga seus dados sozinho

Retenção, conversões e definições custom mexem com dados que não voltam — por isso cada write passa por barreiras explícitas, herdadas dos MCPs irmãos.

preview=true por padrão

Todo write devolve o payload exato que seria enviado sem chamar a API. Só executa quando você passa preview=false.

Irreversíveis exigem confirm=true

delete_key_event, os archive_* e update_data_retention — que avisa que encolher a janela apaga dados antigos. Sem confirm, devolvem um aviso e não executam nada.

Validação local antes de qualquer chamada

Ids precisam ser resource names numéricos (defesa contra path injection); enums aceitam aliases amigáveis (web, 2m) e rejeitam o resto com a lista permitida; regras de naming do GA4 são checadas com mensagem clara.

Tenant nunca é argumento

O tenant é derivado da sua conta Google e resolvido por request. Nenhuma tool aceita "de qual cliente" — impossível operar a property errada.

Tokens cifrados, logs limpos

Refresh tokens com AES-256-GCM em Supabase dedicado, RLS default-deny em todas as tabelas; logs JSON sem PII (email só como SHA-256) e erros sanitizados — payload cru do Google nunca vaza.

Least privilege nos escopos

analytics.readonly e analytics.edit (+ openid/email/profile). Escopos de gestão de usuários não são pedidos — o MCP não mexe em quem acessa sua conta.

Como conectar

Em pé em poucos minutos

Servidor hospedado e multi-tenant, zero setup: adicione o connector, faça login com sua conta Google e o Claude já opera suas properties. Depois, é só pedir.

Zero setup

Hospedado — mcp-ga4-one.vercel.app

Adicione o servidor MCP como connector no Claude e faça login no Google. Nada para instalar; um login resolve tudo.

  1. Adicione o connector. No Claude.ai → Configurações → Conectores → Adicionar conector personalizado, cole https://mcp-ga4-one.vercel.app/api/mcp. No Claude Code, use o comando abaixo.
    # Claude Code
    claude mcp add --transport http \
      ga4 https://mcp-ga4-one.vercel.app/api/mcp
  2. Faça login no Google. O handshake OAuth abre o consentimento do Google automaticamente; no Claude Code, complete via /mcp. Aluno B2Tech com o mesmo email da compra? O acesso vincula sozinho — senão, rode connect_hotmart.
  3. Confirme. Rode ga4_token_status para validar a credencial e list_accounts para ver suas contas GA4. Pronto para operar.
Primeiros passos

O que pedir ao Claude

Pedidos reais que o servidor resolve de ponta a ponta — writes sempre em preview primeiro.

  1. Audite.
    # você, no chat:
    "Audita a property 123: quais key events
     existem e qual a retenção de dados?"
    # → raio-X completo via Admin API
  2. Reporte.
    "Sessões e usuários ativos por dia nos
     últimos 28 dias" · "Quem está no site agora?"
    # → run_report + run_realtime_report
  3. Configure.
    "Marca generate_lead como conversão e
     linka o Google Ads 123-456-7890"
    # → preview primeiro; executa com preview=false

Perguntas frequentes

Ficou alguma dúvida? Escreva para bruno@b2tech.io.

Quanto custa?
O MCP GA4 é um benefício para alunos B2Tech: o acesso ao servidor hospedado é liberado por compra ativa na Hotmart. Se o email do seu login Google for o mesmo da compra, o vínculo é automático; senão, connect_hotmart envia um código de 6 dígitos para o email da compra e confirm_hotmart conclui o vínculo.
É seguro? O Claude pode apagar meus dados?
Writes nascem em preview=true — a tool devolve o payload exato sem chamar a API e só executa com preview=false. Irreversíveis (delete_key_event, archive de dimensões/métricas custom, update_data_retention) exigem confirm=true e carregam destructiveHint; encolher a janela de retenção avisa explicitamente que apaga dados antigos de forma permanente.
Preciso instalar alguma coisa?
Não. O servidor é hospedado e multi-tenant (mcp-ga4-one.vercel.app) e o código-fonte é privado — não existe versão para rodar na sua máquina. Você só adiciona o connector no Claude e faz login com sua conta Google; nós cuidamos do resto.
Onde ficam meus tokens?
Os refresh tokens do Google ficam cifrados com AES-256-GCM num projeto Supabase dedicado, com RLS default-deny em todas as tabelas. O tenant é derivado da sua conta Google e resolvido por request — nenhuma tool aceita token ou tenant como argumento. Logs estruturados não carregam PII: email aparece só como SHA-256.
Quais escopos o login pede?
Least privilege: analytics.readonly, analytics.edit, openid, email e profile. Escopos de gestão de usuários (analytics.manage.users) não são pedidos — o MCP não tem como mexer nas permissões de acesso da sua conta.
Que relatórios eu consigo rodar?
run_report cruza métricas × dimensões num período (presets como last_28d ou datas explícitas), com filtro, ordenação e limite; run_realtime_report mostra os últimos 30 minutos. get_metadata lista todas as dimensões/métricas válidas da property (inclusive as custom) e check_compatibility diz se uma combinação funciona — sem queimar quota de report.
E se eu estourar a quota do Data API?
O GA4 mede tokens de quota por property. Quando esgota, o MCP devolve uma mensagem acionável de rate limit e nunca re-tenta sozinho. Relatórios grandes voltam com limite de tamanho e uma linha _truncated informativa — não é erro, é a cauda cortada para caber no contexto.
Comece agora

Pare de clicar na UI do GA4.
Peça ao Claude e ele audita, configura e reporta.

Properties, streams, key events, dimensões custom, link com o Google Ads e relatórios core + realtime — do raio-X ao resultado numa conversa, com writes em preview e irreversíveis travados por confirm=true.

36 tools · login Google · multi-tenant na Vercel