/ Verzeichnis / Playground / mcp-google-sheets
● Community xing5 ⚡ Sofort

mcp-google-sheets

von xing5 · xing5/mcp-google-sheets

Give Claude read/write access to Google Sheets — 19 tools covering cells, rows, sheets, charts, formulas, and cross-sheet search.

mcp-google-sheets wraps Sheets + Drive APIs into ~19 MCP tools. Covers creating spreadsheets, batch cell updates, adding charts, searching across multiple files, and sharing. Auth via Google service account (recommended for headless) or OAuth 2.0.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

google-sheets.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren Client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ],
      "_inferred": true
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ],
      "_inferred": true
    }
  }
}

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ],
      "_inferred": true
    }
  }
}

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ],
      "_inferred": true
    }
  }
}

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "google-sheets",
      "command": "uvx",
      "args": [
        "mcp-google-sheets"
      ]
    }
  ]
}

Continue nutzt ein Array von Serverobjekten statt einer Map.

~/.config/zed/settings.json
{
  "context_servers": {
    "google-sheets": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-google-sheets"
        ]
      }
    }
  }
}

In context_servers hinzufügen. Zed lädt beim Speichern neu.

claude mcp add google-sheets -- uvx mcp-google-sheets

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: mcp-google-sheets

Append daily metrics to a Google Sheet from any data source

👤 Ops / growth engineers ⏱ ~20 min intermediate

Wann einsetzen: You want a lightweight dashboard in Sheets fed by whatever the agent can reach (Sentry, Stripe, a DB).

Voraussetzungen
  • Google service account with Sheets + Drive API enabled — console.cloud.google.com → create SA → download JSON → set SERVICE_ACCOUNT_PATH
  • Sheet shared with the SA email — Sheets UI → Share → add [email protected] as Editor
Ablauf
  1. Identify the target sheet
    Use mcp-google-sheets to find the spreadsheet titled 'Daily KPIs'. Return its ID.✓ Kopiert
    → Spreadsheet ID
  2. Append today's row
    Append a row to sheet 'summary' with columns [date, signups, mrr, errors]. Use today's values from [your source].✓ Kopiert
    → add_rows confirms row appended at the bottom
  3. Update a chart if needed
    Verify the trailing-30d chart picked up the new row; if not, refresh it.✓ Kopiert
    → Chart shows today's data

Ergebnis: A live Sheets dashboard updated without opening the file.

Fallstricke
  • Rate limit (429) after many single-cell updates — Use batch_update_cells — one call can modify hundreds of cells
  • Service account doesn't see the sheet — You must explicitly share the sheet with its email — SAs have no implicit access
Kombinieren mit: sentry · postgres

Deduplicate entries across multiple Google Sheets

👤 Data ops, CRM admins ⏱ ~25 min intermediate

Wann einsetzen: Team members maintain separate Sheets and you need one clean consolidated list.

Ablauf
  1. Enumerate source sheets
    List all spreadsheets in my 'Leads 2026' Drive folder with list_spreadsheets.✓ Kopiert
    → List of 5-20 sheets
  2. Pull all rows into memory
    Use get_multiple_sheet_data to pull the 'Leads' tab from each. Combine by email.✓ Kopiert
    → Merged dataset with dup count
  3. Write consolidated sheet
    Create a new spreadsheet 'Leads 2026 - Consolidated' with deduped rows sorted by latest-touch.✓ Kopiert
    → Clean destination sheet

Ergebnis: One canonical sheet; originals untouched for audit.

Generate a Sheets report with formulas, not frozen values

👤 Finance analysts ⏱ ~30 min advanced

Wann einsetzen: You want the sheet to recalculate when source tabs update.

Ablauf
  1. Create the shape
    Create a sheet 'Q1 Report' with tabs [summary, by_region, by_product].✓ Kopiert
    → Sheet + tabs created
  2. Inject formulas referencing source
    In summary!B2, write =SUMIFS('source'!C:C, 'source'!A:A, ">=2026-01-01"). Use batch_update with formula values.✓ Kopiert
    → Live-computing cells

Ergebnis: A self-updating report — change source data, numbers change.

Import a CSV and enrich each row with AI-generated columns

👤 Marketers, sales ops ⏱ ~30 min intermediate

Wann einsetzen: You have a list of URLs/companies and want AI-generated descriptions or classifications per row.

Ablauf
  1. Import CSV
    Create a spreadsheet from this CSV: [paste]. Name it 'Leads Enriched'.✓ Kopiert
    → Sheet with N rows
  2. Add and fill derived columns
    Add columns 'industry' and 'one_line_pitch'. For each row, derive them from the url/company and write back via batch_update_cells.✓ Kopiert
    → Two new populated columns

Ergebnis: Enriched list ready for outreach.

Kombinieren mit: firecrawl

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

google-sheets + sentry

Daily crash-free % logged to a KPI sheet

Every day, pull crash-free session % from Sentry and append a row to my 'Daily KPIs' sheet.✓ Kopiert
google-sheets + firecrawl

Scrape competitor pages weekly, write pricing into a sheet

Run firecrawl_extract on these 5 competitor pricing pages and write each plan as a row in 'Competitor Pricing'.✓ Kopiert
google-sheets + postgres

Export a daily DB query to Sheets for non-tech teammates

SELECT * FROM signups WHERE day = CURRENT_DATE; write to tab 'Signups' in my ops sheet.✓ Kopiert

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
list_spreadsheets folder_id? Discover sheets in a folder 1 Drive API call
create_spreadsheet title: str, sheets?: str[] Fresh document 1 API call
get_sheet_data spreadsheetId, sheet, range? Read a range 1 API call
update_cells spreadsheetId, range, values Small writes 1 API call
batch_update_cells spreadsheetId, updates Any write >10 cells — avoids rate limits 1 API call
add_rows spreadsheetId, sheet, rows Append-only like logging 1 API call
add_chart spreadsheetId, sheet, chart_spec Visualize a range 1 API call
share_spreadsheet spreadsheetId, email, role Grant collab access 1 Drive call
search_spreadsheets query: str Find a value across many files N API calls

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Sheets API: 300 read + 300 write req/min/project, 60/user. Drive API: 1k req/100s/user
Tokens pro Aufruf
100–5000 depending on range size
Kosten in €
Free within Google's default quotas
Tipp
Batch writes aggressively — batch_update_cells is one API call no matter how many cells

Sicherheit

Rechte, Secrets, Reichweite

Minimale Scopes: https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.file
Credential-Speicherung: Service account JSON at SERVICE_ACCOUNT_PATH, or OAuth tokens at TOKEN_PATH
Datenabfluss: sheets.googleapis.com, drive.googleapis.com
Niemals gewähren: https://www.googleapis.com/auth/drive (full)

Fehlerbehebung

Häufige Fehler und Lösungen

403 The caller does not have permission

Share the sheet with the service account's email (client_email in the JSON)

Prüfen: Open sheet → Share → confirm SA is listed
429 Quota exceeded

Use batch_update instead of many single updates; Sheets API limit is per-minute

Invalid range A1 notation

Range needs the sheet name: 'Sheet1!A1:C10', not 'A1:C10'

gcloud auth works but mcp doesn't

Set SERVICE_ACCOUNT_PATH explicitly to skip ambiguity

Prüfen: echo $SERVICE_ACCOUNT_PATH

Alternativen

mcp-google-sheets vs. andere

AlternativeWann stattdessenKompromiss
Zapier MCPYou already pay for Zapier and want non-code routingPer-task pricing; less direct control
Notion MCP (databases)You prefer Notion's database UX and don't need formulasNo formula engine

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen