Google Spreadsheet MCP

Integração completa com o Google Sheets - ler, escrever, formatar células, criar gráficos, usar fórmulas e gerenciar planilhas.

Documentação

Google Sheets MCP Server

Um servidor Model Context Protocol (MCP) que oferece funcionalidade completa do Google Sheets. Leia, escreva, formate células, crie gráficos, use fórmulas e gerencie planilhas diretamente do Claude, Cursor ou qualquer cliente compatível com MCP.

Por que eu construí isso

Criei este servidor MCP para meus trabalhos da faculdade, onde trabalho frequentemente com dados no Google Sheets — principalmente planilhas financeiras. Tarefas como criar gráficos, escrever fórmulas, formatar tabelas e organizar dados eram repetitivas e demoradas. Com esta ferramenta, posso automatizar tudo isso e focar no que realmente importa — raciocínio lógico e análise — em vez de fazer o mesmo trabalho manual repetidamente. :)

Recursos

CategoriaRecursos
Operações de CélulaLer, escrever, operações em lote, anexar linhas, limpar células
FórmulasSuporte completo (=SUM(), =VLOOKUP(), =IF(), etc.)
Gerenciamento de AbasCriar, excluir, renomear, duplicar abas
FormataçãoNegrito, itálico, cores, alinhamento, larguras de coluna, mesclar células
GráficosGráficos de barras, linhas, pizza, colunas, área, dispersão
Operações de DadosOrdenar, localizar/substituir, obter última linha
CompartilhamentoCompartilhar com usuários ou tornar público

Início Rápido

1. Instalação

cd /path/to/spreadsheet-mcp
uv sync

2. Configuração do Google Cloud (Grátis, Única Vez)

  1. Criar Projeto: Acesse o Google Cloud Console → Novo Projeto
  2. Habilitar APIs:
  3. Criar Conta de Serviço:
    • Acesse APIs & Services → Credenciais → Criar Credenciais → Conta de Serviço
    • Baixe a chave JSON → Salve como credentials/service-account.json
  4. Compartilhar Planilhas: Compartilhe suas planilhas com o e-mail da conta de serviço (encontrado no JSON)

3. Executar

uv run spreadsheet-mcp

Configuração do Cliente MCP

Claude Desktop

Adicione ao seu arquivo de configuração do Claude Desktop:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "google-sheets": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/spreadsheet-mcp",
        "run",
        "spreadsheet-mcp"
      ]
    }
  }
}

Claude Code (CLI)

Adicione ao arquivo .mcp.json do seu projeto:

{
  "mcpServers": {
    "google-sheets": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/spreadsheet-mcp",
        "run",
        "spreadsheet-mcp"
      ]
    }
  }
}

Cursor

Adicione às configurações de MCP do Cursor (Configurações → MCP → Adicionar Servidor):

{
  "mcpServers": {
    "google-sheets": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/spreadsheet-mcp",
        "run",
        "spreadsheet-mcp"
      ]
    }
  }
}

Ou adicione ao ~/.cursor/mcp.json:

{
  "mcpServers": {
    "google-sheets": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/spreadsheet-mcp",
        "run",
        "spreadsheet-mcp"
      ]
    }
  }
}

Gemini CLI

Para o Gemini CLI com suporte a MCP, adicione à sua configuração MCP:

{
  "mcpServers": {
    "google-sheets": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/spreadsheet-mcp",
        "run",
        "spreadsheet-mcp"
      ]
    }
  }
}

Usando com npx (Alternativa)

Se você preferir npx em vez de uv:

{
  "mcpServers": {
    "google-sheets": {
      "command": "npx",
      "args": [
        "-y",
        "uv",
        "--directory",
        "/path/to/spreadsheet-mcp",
        "run",
        "spreadsheet-mcp"
      ]
    }
  }
}

Nota: Substitua /path/to/spreadsheet-mcp pelo caminho real onde você clonou este repositório.

Ferramentas Disponíveis (27 no Total)

Gerenciamento de Planilhas e Abas

FerramentaDescriçãoExemplo
get_spreadsheet_infoObter metadados e lista de abas"Mostre-me informações sobre a planilha abc123"
create_spreadsheetCriar nova planilha"Crie uma planilha chamada 'Orçamento 2024'"
list_sheetsListar todas as abas"Quais abas existem nesta planilha?"
create_sheetAdicionar uma nova aba"Adicione uma aba chamada 'Resumo'"
delete_sheetRemover uma aba"Exclua a aba com ID 12345"
rename_sheetRenomear uma aba"Renomeie a aba 0 para 'Dados'"
duplicate_sheetCopiar uma aba"Duplique a aba principal"

Operações de Célula

FerramentaDescriçãoExemplo
read_cellsLer valores de um intervalo"Leia as células A1 a D10 da Sheet1"
write_cellsEscrever valores (suporta fórmulas)"Escreva os cabeçalhos Nome, Idade, Pontuação em A1"
batch_readLer vários intervalos de uma vez"Leia A1:A10 e C1:C10"
batch_writeEscrever em vários intervalos"Escreva dados em vários locais"
append_rowsAdicionar linhas no final dos dados"Anexe estes novos registros"
clear_cellsLimpar um intervalo"Limpe as células B2:D10"
get_last_rowEncontrar a última linha com dados"Qual é a última linha na coluna A?"

Operações de Linha/Coluna

FerramentaDescriçãoExemplo
insert_rowsInserir linhas vazias"Insira 5 linhas na linha 10"
insert_columnsInserir colunas vazias"Insira 2 colunas na coluna C"
delete_rowsExcluir linhas"Exclua as linhas 5-10"
delete_columnsExcluir colunas"Exclua a coluna B"

Formatação

FerramentaDescriçãoExemplo
format_cellsAplicar formatação"Deixe a linha de cabeçalho em negrito com fundo azul"
set_column_widthAjustar largura da coluna"Defina a largura da coluna A para 200 pixels"
merge_cellsMesclar intervalo de células"Mescle as células A1:C1 para o título"

Gráficos

FerramentaDescriçãoExemplo
create_chartCriar gráfico incorporado"Crie um gráfico de barras a partir dos dados de vendas"
list_chartsListar todos os gráficos"Quais gráficos existem nesta planilha?"
delete_chartRemover um gráfico"Exclua o gráfico 123456"

Operações de Dados

FerramentaDescriçãoExemplo
sort_rangeOrdenar dados por coluna"Ordene os dados pela coluna B em ordem crescente"
find_replaceLocalizar e substituir texto"Substitua 'N/A' por '0' em todos os lugares"

Compartilhamento

FerramentaDescriçãoExemplo
share_spreadsheetCompartilhar ou tornar público"Torne esta planilha pública"

Exemplos de Uso

Exemplo 1: Criar um Relatório de Vendas

User: Create a sales report in spreadsheet abc123

Claude will:
1. get_spreadsheet_info("abc123") - Check existing sheets
2. create_sheet("abc123", "Sales Report") - Create new sheet
3. write_cells("abc123", "Sales Report!A1", '[["Product", "Q1", "Q2", "Q3", "Q4", "Total"]]')
4. write_cells("abc123", "Sales Report!A2", '[["Widget", 100, 150, 200, 180, "=SUM(B2:E2)"]]')
5. format_cells(..., bold=True, background_color="#4285F4") - Format header
6. create_chart(..., "COLUMN", "Quarterly Sales") - Add chart

Exemplo 2: Analisar Dados Existentes

User: Summarize the data in Sheet1

Claude will:
1. read_cells("abc123", "Sheet1!A1:Z1") - Read headers
2. get_last_row("abc123", "Sheet1", "A") - Find data extent
3. read_cells("abc123", "Sheet1!A1:D100") - Read all data
4. Provide summary and insights

Exemplo 3: Formatar uma Tabela

User: Make the spreadsheet look professional

Claude will:
1. format_cells(..., bold=True, background_color="#1a73e8", font_color="#FFFFFF") - Header
2. set_column_width(..., 150) - Adjust widths
3. format_cells(..., alignment="CENTER") - Center data

Referência de Notação A1

NotaçãoDescrição
Sheet1!A1:D10Células A1 a D10 na Sheet1
Sheet1!A:AColuna A inteira na Sheet1
Sheet1!1:5Linhas 1-5 na Sheet1
A1:B10Intervalo na primeira aba visível
'My Sheet'!A1Nome da aba com espaços (use aspas)

Referência de Índice

  • Linhas: base 0 na formatação (Linha 1 = índice 0)
  • Colunas: base 0 (A=0, B=1, C=2, D=3...)
  • sheet_id: ID numérico de list_sheets ou get_spreadsheet_info

Fórmulas Comuns

=SUM(A1:A10)           Sum values
=AVERAGE(B:B)          Average entire column
=COUNT(A:A)            Count numbers
=COUNTA(A:A)           Count non-empty cells
=MAX(A1:A100)          Maximum value
=MIN(A1:A100)          Minimum value
=VLOOKUP(A1,B:C,2,0)   Lookup value
=IF(A1>100,"High","Low") Conditional
=CONCATENATE(A1," ",B1)  Join text
=TODAY()               Current date
=NOW()                 Current date/time

Solução de Problemas

ErroSolução
"Credenciais da conta de serviço não encontradas"Verifique se credentials/service-account.json existe
"403 Proibido"Compartilhe a planilha com o e-mail da conta de serviço
"API não habilitada"Habilite as APIs do Sheets e do Drive no Google Cloud Console
"Cota excedida"Espere um minuto, você está atingindo os limites de taxa

Estrutura de Arquivos

spreadsheet-mcp/
├── pyproject.toml
├── README.md
├── credentials/
│   └── service-account.json  (your key, gitignored)
└── src/spreadsheet_mcp/
    ├── __init__.py
    ├── auth.py              # Google authentication
    ├── sheets_client.py     # API wrapper (1000+ lines)
    └── server.py            # MCP server (27 tools)

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

Autor

Licença

MIT