
O bloco de Google Sheets de um MCP parece o menos interessante dos três. Seis operações básicas, nada de algoritmo. Na prática é o que mais entrega valor percebido pelo cliente — porque é a única parte da automação que ele vê.
Cliente não se impressiona com chamada de API. Ele se impressiona com uma planilha que atualiza sozinha e que ele pode abrir no celular no domingo à noite.
As seis operações
sheets_create— cria a planilha, comtitlee opcionalmentesheetNamespara as abassheets_info— devolve título, abas e dimensõessheets_read— lê um intervalo em notação A1sheets_write— escreve, sobrescrevendo o intervalosheets_append— adiciona linhas ao final, sem sobrescreversheets_clear— limpa um intervalo
A distinção entre write e append é a decisão mais importante do pipeline inteiro, e vou voltar nela.
A notação A1 e o erro do intervalo curto
Os intervalos usam notação A1 com nome da aba: "Dados!A1:F100". Simples, com uma armadilha.
Se você escreve 200 linhas num intervalo declarado até a linha 100, o comportamento não é o que a intuição sugere. E se você escreve 50 linhas onde antes havia 200, as 150 antigas continuam lá — porque sheets_write sobrescreve o que você mandou, não limpa o resto.
Resultado: relatório mensal que num mês tem menos campanhas que no anterior fica com linhas fantasma no rodapé. O cliente soma a coluna e o total não bate com o painel.
Solução: sheets_clear num intervalo generoso antes de sheets_write. Duas chamadas, zero linha fantasma.
Write ou append: escolha a arquitetura primeiro
Existem dois modelos de relatório e eles não se misturam bem.
Modelo snapshot (write)
A planilha mostra o estado atual. Toda execução limpa e reescreve. É o modelo certo para dashboard operacional: “como estão as campanhas hoje”.
Fluxo: sheets_clear → sheets_write. Simples, idempotente, sem risco de duplicar.
Modelo histórico (append)
Cada execução adiciona linhas com a data. A planilha acumula série temporal. É o modelo certo quando você quer analisar tendência ao longo do tempo — inclusive de métricas que o Google não guarda com a granularidade que você quer.
Fluxo: sheets_append apenas, com uma coluna de data de coleta.
O risco do append é duplicação. Rodou duas vezes no mesmo dia, tem dois blocos de dado do mesmo dia. Sem chave de deduplicação, sua série temporal mente. Duas defesas: incluir sempre a data de coleta como primeira coluna, e checar com sheets_read se já existe linha daquela data antes de anexar.
O híbrido que eu uso
Planilha com duas abas. “Atual” em modelo snapshot, que é a que o cliente abre. “Histórico” em modelo append, que alimenta os gráficos de tendência. Você paga uma chamada extra e resolve os dois casos de uso.
Montando o pipeline
O pipeline completo tem quatro etapas, e a terceira é a que quase ninguém pensa antes.
1. Ler
Do Google Ads via ads_get_campaigns ou uma query em GAQL para algo mais específico. Do GA4 via analytics_report. Se você quer entender como montar as consultas, escrevi sobre GAQL via MCP e sobre relatórios do GA4 via MCP.
2. Transformar
Aqui mora o trabalho real:
- Converter micros. Valor do Ads vem multiplicado por um milhão. Se isso chegar cru na planilha, o cliente vê que gastou 45 milhões.
- Padronizar data. Ads e GA4 usam formatos diferentes. Escolha um.
- Calcular derivadas. CPA, ROAS, taxa de conversão. Melhor calcular antes de escrever do que deixar fórmula na planilha que o cliente apaga sem querer.
- Tratar divisão por zero. Campanha com zero conversão gera CPA infinito. Decida se vira vazio, traço ou zero — mas decida.
- Ordenar. Por custo decrescente costuma ser o mais útil.
3. Escrever
sheets_clear + sheets_write, ou sheets_append, conforme o modelo escolhido.
4. Formatar (na planilha, não no pipeline)
As tools de Sheets escrevem valores, não formatação. Cor, largura de coluna, formato de moeda e gráfico não vêm da API.
A solução prática: crie o template uma vez, na mão, com toda a formatação e os gráficos. Depois só reescreva os valores. Formatação condicional e gráficos que apontam para intervalos fixos sobrevivem à reescrita de dados.
Isso inverte a ordem natural que a maioria tenta: não construa o pipeline primeiro e a planilha depois. Monte a planilha bonita, veja quais intervalos precisam ser preenchidos, e escreva neles.
Limite de volume
Escrever muito dado por chamada tem duas restrições. A da API do Sheets, que aceita bastante mas não é infinita. E a do modelo — se os dados passarem pelo contexto do agente antes de chegar à planilha, você paga tokens por cada célula.
Regra prática: a planilha recebe o agregado, não o dado bruto. Se você precisa de 5.000 linhas de termos de busca, isso não é relatório de cliente, é análise sua — e o caminho é filtrar na query antes.
Relatório de cliente que funciona tem 20 a 50 linhas. Ninguém lê mais que isso.
O que colocar no relatório
Estrutura que funciona bem e evita a reunião de “mas o que isso significa”:
Aba Resumo — investimento, leads, CPA, comparação com o mês anterior em variação percentual. Cinco números, no máximo.
Aba Campanhas — nome, status, custo, cliques, conversões, CPA. Ordenado por custo.
Aba Origem — dado do GA4 por canal ou landing page, com sessões e key events.
Aba Histórico — série temporal em append, alimentando os gráficos.
Resista à tentação de colocar tudo que você tem. Relatório com 40 métricas não é completo, é ilegível — e vira desculpa para o cliente não olhar.
Sobre “automático”
Uma honestidade necessária: o MCP responde a comando. Ele não agenda sozinho. “Relatório automático” aqui significa que a geração é uma frase em vez de uma tarde, não que ele aparece na sua caixa toda segunda sem ninguém pedir.
Se você quer agendamento de verdade, precisa de um orquestrador por fora — n8n, cron, ou o que você já usar. O MCP vira o executor; a lógica de “toda segunda às 8h” mora fora dele. Se esse é o seu caso, o artigo sobre n8n do zero é um bom ponto de partida.
Para a maioria dos freelancers e agências pequenas, porém, sob demanda já resolve. Você abre a conversa, pede o relatório das oito contas, e em minutos as planilhas estão prontas para enviar. Isso já é uma manhã inteira recuperada por mês.
Quer levar isso para a sua operação?
Quer um relatório vivo de Ads + GA4 direto na planilha?
Posso te ajudar a montar esse pipeline automático via MCP, sem o erro clássico de sobrescrever dado com sheets_write.
Falar com Maycon no WhatsAppAtendimento direto pelo WhatsApp.
