Skip to main content
Glama

PyPI - Version PyPI - Downloads GitHub-LizenzGitHub Actions-Workflow-Status


🤔 Was ist das?

mcp-google-sheets ist ein Python-basierter MCP-Server, der als Brücke zwischen jedem MCP-kompatiblen Client (wie Claude Desktop) und der Google Sheets API fungiert. Er ermöglicht Ihnen die Interaktion mit Ihren Google Spreadsheets mithilfe eines definierten Toolset und ermöglicht so leistungsstarke, KI-gesteuerte Automatisierungs- und Datenmanipulations-Workflows.

Related MCP server: Spreadsheet MCP Server

🚀 Schnellstart (mit uvx )

Im Wesentlichen läuft der Server in einer Zeile: uvx mcp-google-sheets .

Dieser Befehl lädt bei Bedarf automatisch den neuesten Code herunter und führt ihn aus. Die Einrichtung der Google Cloud erfordert jedoch einige Schritte. Bitte lesen Sie die folgenden Schritte.

  1. ☁️ Voraussetzung: Google Cloud Setup

  2. 🐍 uv installieren

    • uvx ist Teil von uv , einem schnellen Python-Paketinstallations- und -resolver. Installieren Sie es, falls noch nicht geschehen:

      # macOS / Linux
      curl -LsSf https://astral.sh/uv/install.sh | sh
      # Windows
      powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
      # Or using pip:
      # pip install uv

      Befolgen Sie die Anweisungen in der Installationsausgabe, um bei Bedarf uv zu Ihrem PATH hinzuzufügen.

  3. 🔑 Wichtige Umgebungsvariablen festlegen (Dienstkonto empfohlen)

    • Sie müssen dem Server mitteilen, wie er sich authentifizieren soll. Legen Sie diese Variablen in Ihrem Terminal fest:

    • (Linux/macOS)

      # Replace with YOUR actual path and folder ID from the Google Setup step
      export SERVICE_ACCOUNT_PATH="/path/to/your/service-account-key.json"
      export DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
    • (Windows CMD)

      set SERVICE_ACCOUNT_PATH="C:\path\to\your\service-account-key.json"
      set DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
    • (Windows PowerShell)

      $env:SERVICE_ACCOUNT_PATH = "C:\path\to\your\service-account-key.json"
      $env:DRIVE_FOLDER_ID = "YOUR_DRIVE_FOLDER_ID"
    • ➡️ Weitere Optionen (OAuth, CREDENTIALS_CONFIG ) finden Sie unter „Detaillierte Authentifizierung und Umgebungsvariablen“ .

  4. 🏃 Führen Sie den Server aus!

    • uvx lädt automatisch die neueste Version von mcp-google-sheets herunter und führt sie aus:

      uvx mcp-google-sheets
    • Der Server wird gestartet und druckt Protokolle, die seine Bereitschaft anzeigen.

  5. 🔌 Verbinden Sie Ihren MCP-Client

    • Konfigurieren Sie Ihren Client (z. B. Claude Desktop) so, dass er eine Verbindung zum laufenden Server herstellt.

    • Abhängig vom verwendeten Client benötigen Sie Schritt 4 möglicherweise nicht, da der Client den Server für Sie starten kann. Es empfiehlt sich jedoch, Schritt 4 trotzdem zu testen, um sicherzustellen, dass alles richtig eingerichtet ist.

    • ➡️ Beispiele finden Sie unter „Verwendung mit Claude Desktop“ .

Sie sind bereit! Beginnen Sie mit der Befehlsausgabe über Ihren MCP-Client.


✨ Hauptmerkmale

  • Nahtlose Integration: Stellt eine direkte Verbindung zu den APIs von Google Drive und Google Sheets her.

  • Umfassende Tools: Bietet eine breite Palette an Operationen (CRUD, Auflisten, Batching, Teilen, Formatieren usw.).

  • Flexible Authentifizierung: Unterstützt Dienstkonten (empfohlen) , OAuth 2.0 und direkte Anmeldeinformationseinfügung über Umgebungsvariablen.

  • Einfache Bereitstellung: Sofortige Ausführung mit uvx (Zero-Install-Gefühl) oder Klonen für die Entwicklung mit uv .

  • KI-fähig: Entwickelt für die Verwendung mit MCP-kompatiblen Clients, ermöglicht die Interaktion mit Tabellenkalkulationen in natürlicher Sprache.


🛠️ Verfügbare Tools und Ressourcen

Dieser Server stellt die folgenden Tools zur Interaktion mit Google Sheets bereit:

(Eingabeparameter sind normalerweise Zeichenfolgen, sofern nicht anders angegeben)

  • list_spreadsheets : Listet Tabellenkalkulationen im konfigurierten Drive-Ordner (Dienstkonto) auf oder ist für den Benutzer zugänglich (OAuth).

    • Gibt zurück: Liste der Objekte [{id: string, title: string}]

  • create_spreadsheet : Erstellt eine neue Tabelle.

    • title (Zeichenfolge): Der gewünschte Titel.

    • Gibt zurück: Objekt mit Tabellenkalkulationsinformationen, einschließlich spreadsheetId .

  • get_sheet_data : Liest Daten aus einem Bereich in einem Blatt.

    • spreadsheet_id (Zeichenfolge)

    • sheet (Zeichenfolge): Name des Blatts.

    • range (optionale Zeichenfolge): A1-Notation (z. B. 'A1:C10' , 'Sheet1!B2:D' ). Wenn dieser Wert weggelassen wird, wird das gesamte Blatt gelesen.

    • Gibt zurück: 2D-Array von Zellenwerten.

  • get_sheet_formulas : Liest Formeln aus einem Bereich in einem Blatt.

    • spreadsheet_id (Zeichenfolge)

    • sheet (Zeichenfolge): Name des Blatts.

    • range (optionale Zeichenfolge): A1-Notation (z. B. 'A1:C10' , 'Sheet1!B2:D' ). Wenn dieser Wert weggelassen wird, wird das gesamte Blatt gelesen.

    • Gibt zurück: 2D-Array von Zellformeln.

  • update_cells : Schreibt Daten in einen bestimmten Bereich. Überschreibt vorhandene Daten.

    • spreadsheet_id (Zeichenfolge)

    • sheet (Zeichenfolge)

    • range (Zeichenfolge): A1-Notation.

    • data (2D-Array): Zu schreibende Werte.

    • Rückgabe: Aktualisiertes Ergebnisobjekt.

  • batch_update_cells : Aktualisiert mehrere Bereiche in einem API-Aufruf.

    • spreadsheet_id (Zeichenfolge)

    • sheet (Zeichenfolge)

    • ranges (Objekt): Wörterbuch, das Bereichszeichenfolgen (A1-Notation) 2D-Werte-Arrays zuordnet { "A1:B2": [[1, 2], [3, 4]], "D5": [["Hello"]] } .

    • Gibt zurück: Batch-Update-Ergebnisobjekt.

  • add_rows : Fügt Zeilen am Ende eines Blattes an (nach der letzten Zeile mit Daten).

    • spreadsheet_id (Zeichenfolge)

    • sheet (Zeichenfolge)

    • data (2D-Array): Anzuhängende Zeilen.

    • Rückgabe: Aktualisiertes Ergebnisobjekt.

  • list_sheets : Listet alle Blattnamen innerhalb einer Tabelle auf.

    • spreadsheet_id (Zeichenfolge)

    • Gibt zurück: Liste der Blattnamen-Strings ["Sheet1", "Sheet2"] .

  • create_sheet : Fügt einer Tabelle ein neues Blatt (Registerkarte) hinzu.

    • spreadsheet_id (Zeichenfolge)

    • title (Zeichenfolge): Name für das neue Blatt.

    • Gibt zurück: Neues Blatteigenschaftenobjekt.

  • get_multiple_sheet_data : Ruft in einem Aufruf Daten aus mehreren Bereichen aus möglicherweise unterschiedlichen Tabellen ab.

    • queries (Array von Objekten): Jedes Objekt benötigt spreadsheet_id , sheet und range . [{spreadsheet_id: 'abc', sheet: 'Sheet1', range: 'A1:B2'}, ...] .

    • Gibt zurück: Liste von Objekten, die jeweils die Abfrageparameter und abgerufenen data oder einen error enthalten.

  • get_multiple_spreadsheet_summary : Ruft Titel, Blattnamen, Kopfzeilen und die ersten Zeilen für mehrere Tabellen ab.

    • spreadsheet_ids (Array von Zeichenfolgen)

    • rows_to_fetch (optionale Ganzzahl, Standard 5): Wie viele Zeilen (einschließlich Kopfzeile) sollen in der Vorschau angezeigt werden.

    • Gibt zurück: Liste der Zusammenfassungsobjekte für jede Tabelle.

  • share_spreadsheet : Gibt eine Tabelle mit angegebenen Benutzern/E-Mails und Rollen frei.

    • spreadsheet_id (Zeichenfolge)

    • recipients (Array von Objekten): [{email_address: 'user@example.com', role: 'writer'}, ...] . Rollen: reader , commenter , writer .

    • send_notification (optionaler Boolescher Wert, Standardwert True): E-Mail-Benachrichtigungen senden.

    • Gibt zurück: Wörterbuch mit successes und failures .

  • add_columns : Fügt einem Blatt Spalten hinzu. (Parameter überprüfen, falls implementiert)

  • copy_sheet : Dupliziert ein Tabellenblatt innerhalb einer Tabelle. (Parameter überprüfen, falls implementiert)

  • rename_sheet : Benennt ein vorhandenes Blatt um. (Parameter überprüfen, falls implementiert)

MCP-Ressourcen:

  • spreadsheet://{spreadsheet_id}/info : Erhalten Sie grundlegende Metadaten zu einer Google-Tabelle.

    • Gibt zurück: JSON-Zeichenfolge mit Tabellenkalkulationsinformationen.


☁️ Einrichtung der Google Cloud Platform (detailliert)

Diese Einrichtung ist vor dem Ausführen des Servers erforderlich .

  1. Erstellen/Auswählen eines GCP-Projekts: Gehen Sie zur Google Cloud Console .

  2. APIs aktivieren: Navigieren Sie zu „APIs & Dienste“ -> „Bibliothek“. Suchen und aktivieren Sie:

    • Google Sheets API

    • Google Drive API

  3. Anmeldeinformationen konfigurieren: Sie müssen unten eine Authentifizierungsmethode auswählen (Dienstkonto wird empfohlen).


🔑 Authentifizierung und Umgebungsvariablen (detailliert)

Der Server benötigt Anmeldeinformationen für den Zugriff auf Google APIs. Wählen Sie eine Methode:

Methode A: Dienstkonto (empfohlen für Server/Automatisierung) ✅

  • Warum? Headless (kein Browser erforderlich), sicher, ideal für Serverumgebungen. Läuft nicht so schnell ab.

  • Schritte:

    1. Dienstkonto erstellen: In der GCP-Konsole -> „IAM & Admin“ -> „Dienstkonten“.

      • Klicken Sie auf „+ SERVICEKONTO ERSTELLEN“. Geben Sie ihm einen Namen (z. B. mcp-sheets-service ).

      • Rollen gewähren: Fügen Sie die Rolle Editor für umfassenden Zugriff oder detailliertere Rollen (wie roles/drive.file und bestimmte Sheets-Rollen) für strengere Berechtigungen hinzu.

      • Klicken Sie auf „Fertig“. Suchen Sie das Konto und klicken Sie auf „Aktionen“ (⋮) -> „Schlüssel verwalten“.

      • Klicken Sie auf „SCHLÜSSEL HINZUFÜGEN“ -> „Neuen Schlüssel erstellen“ -> JSON -> „ERSTELLEN“.

      • Laden Sie die JSON-Schlüsseldatei herunter und speichern Sie sie sicher .

    2. Google Drive-Ordner erstellen und freigeben:

      • Erstellen Sie in Google Drive einen Ordner (z. B. „AI Managed Sheets“).

      • Notieren Sie die Ordner-ID aus der URL: https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID .

      • Klicken Sie mit der rechten Maustaste auf den Ordner -> „Freigeben“ -> „Teilen“.

      • Geben Sie die E-Mail-Adresse des Dienstkontos ein (aus der JSON-Datei client_email ).

      • Gewähren Sie dem Editor Zugriff. Deaktivieren Sie „Personen benachrichtigen“. Klicken Sie auf „Teilen“.

    3. Umgebungsvariablen festlegen:

      • SERVICE_ACCOUNT_PATH : Vollständiger Pfad zur heruntergeladenen JSON-Schlüsseldatei.

      • DRIVE_FOLDER_ID : Die ID des freigegebenen Google Drive-Ordners. (Betriebssystemspezifische Beispiele finden Sie im Ultra Quick Start .)

Methode B: OAuth 2.0 (Interaktiv / Persönliche Nutzung) 🧑‍💻

  • Warum? Für den persönlichen Gebrauch oder die lokale Entwicklung, bei der eine interaktive Browser-Anmeldung in Ordnung ist.

  • Schritte:

    1. OAuth-Zustimmungsbildschirm konfigurieren: In der GCP-Konsole -> „APIs & Dienste“ -> „OAuth-Zustimmungsbildschirm“. Wählen Sie „Extern“, geben Sie die erforderlichen Informationen ein, fügen Sie Bereiche hinzu ( .../auth/spreadsheets , .../auth/drive ) und fügen Sie bei Bedarf Testbenutzer hinzu.

    2. OAuth-Client-ID erstellen: In der GCP-Konsole -> „APIs & Dienste“ -> „Anmeldeinformationen“. „+ ANMELDEINFORMATIONEN ERSTELLEN“ -> „OAuth-Client-ID“ -> Typ: Desktop-App . Benennen Sie sie. „ERSTELLEN“. JSON herunterladen .

    3. Umgebungsvariablen festlegen:

      • CREDENTIALS_PATH : Pfad zur heruntergeladenen JSON-Datei mit den OAuth-Anmeldeinformationen (Standard: credentials.json ).

      • TOKEN_PATH : Pfad zum Speichern des Aktualisierungstokens des Benutzers nach der ersten Anmeldung (Standard: token.json ). Muss beschreibbar sein.

Methode C: Direkte Anmeldeinformationseinfügung (Erweitert) 🔒

  • Warum? Nützlich in Umgebungen wie Docker, Kubernetes oder CI/CD, in denen die Dateiverwaltung schwierig, Umgebungsvariablen jedoch einfach und sicher sind. Vermeidet den Dateisystemzugriff.

  • Wie? Anstatt einen Pfad zur Anmeldeinformationsdatei anzugeben, geben Sie den Inhalt der Datei, codiert in Base64, direkt in einer Umgebungsvariablen an.

  • Schritte:

    1. Holen Sie sich die JSON-Datei mit Ihren Anmeldeinformationen (entweder den Dienstkontoschlüssel oder die OAuth-Client-ID-Datei). Nennen wir sie your_credentials.json .

    2. Generieren Sie die Base64-Zeichenfolge:

      • (Linux/macOS): base64 -w 0 your_credentials.json

      • (Windows PowerShell):

        $filePath = "C:\path\to\your_credentials.json"; # Use actual path
        $bytes = [System.IO.File]::ReadAllBytes($filePath);
        $base64 = [System.Convert]::ToBase64String($bytes);
        $base64 # Copy this output
      • (Achtung): Vermeiden Sie das Einfügen vertraulicher Anmeldeinformationen in nicht vertrauenswürdige Online-Encoder.

    3. Legen Sie die Umgebungsvariable fest:

      • CREDENTIALS_CONFIG : Setzen Sie diese Variable auf die vollständige Base64-Zeichenfolge, die Sie gerade generiert haben.

        # Example (Linux/macOS) - Use the actual string generated
        export CREDENTIALS_CONFIG="ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb..."

Authentifizierungspriorität und -zusammenfassung

Der Server prüft die Anmeldeinformationen in dieser Reihenfolge:

  1. CREDENTIALS_CONFIG (Base64-Inhalt)

  2. SERVICE_ACCOUNT_PATH (Pfad zum Dienstkonto JSON)

  3. CREDENTIALS_PATH (Pfad zu OAuth JSON) – löst interaktiven Fluss aus, wenn das Token fehlt/abgelaufen ist.

Zusammenfassung der Umgebungsvariablen:

Variable

Methode(n)

Beschreibung

Standard

SERVICE_ACCOUNT_PATH

Dienstkonto

Pfad zur JSON-Schlüsseldatei des Dienstkontos.

-

DRIVE_FOLDER_ID

Dienstkonto

ID des mit dem Dienstkonto geteilten Google Drive-Ordners.

-

CREDENTIALS_PATH

OAuth 2.0

Pfad zur OAuth 2.0-Client-ID-JSON-Datei.

credentials.json

TOKEN_PATH

OAuth 2.0

Pfad zum Speichern des generierten OAuth-Tokens.

token.json

CREDENTIALS_CONFIG

Dienstkonto / OAuth 2.0

Base64-codierter JSON-String mit Anmeldeinformationsinhalten.

-


⚙️ Ausführen des Servers (detailliert)

Methode 1: Verwenden von uvx (für Benutzer empfohlen)

Wie im Ultra Quick Start gezeigt, ist dies der einfachste Weg. Legen Sie Umgebungsvariablen fest und führen Sie dann Folgendes aus:

uvx mcp-google-sheets

uvx übernimmt vorübergehend das Abrufen und Ausführen des Pakets.

Methode 2: Für die Entwicklung (Klonen des Repo)

Wenn Sie den Code ändern möchten:

  1. Klonen: git clone https://github.com/yourusername/mcp-google-sheets.git && cd mcp-google-sheets (Tatsächliche URL verwenden)

  2. Umgebungsvariablen festlegen: Wie oben beschrieben.

  3. Ausführen mit uv : (Verwendet den lokalen Code)

    uv run mcp-google-sheets
    # Or via the script name if defined in pyproject.toml, e.g.:
    # uv run start

🔌 Verwendung mit Claude Desktop

Fügen Sie die Serverkonfiguration zu claude_desktop_config.json unter mcpServers hinzu. Wählen Sie den Block aus, der Ihrem Setup entspricht:

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets"],
      "env": {
        // Use ABSOLUTE paths here
        "SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json",
        "DRIVE_FOLDER_ID": "your_shared_folder_id_here"
      },
      "healthcheck_url": "http://localhost:8000/health" // Adjust host/port if needed
    }
  }
}
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets"],
      "env": {
        // Use ABSOLUTE paths here
        "CREDENTIALS_PATH": "/full/path/to/your/credentials.json",
        "TOKEN_PATH": "/full/path/to/your/token.json" // Ensure this path is writable
      },
      "healthcheck_url": "http://localhost:8000/health"
    }
  }
}

(Bei der ersten Verwendung wird möglicherweise ein Browser zur Anmeldung bei Google geöffnet.)

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets"],
      "env": {
        // Paste the full Base64 string here
        "CREDENTIALS_CONFIG": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAi...",
        "DRIVE_FOLDER_ID": "your_shared_folder_id_here" // Still needed for Service Account folder context
      },
      "healthcheck_url": "http://localhost:8000/health"
    }
  }
}
{
  "mcpServers": {
    "mcp-google-sheets-dev": { // Use a distinct name
      "command": "uv",
      "args": ["run", "mcp-google-sheets"], // Assumes `mcp-google-sheets` script exists
      "cwd": "/full/path/to/cloned/mcp-google-sheets", // ABSOLUTE path to repo
      "env": {
        // Choose ONE auth method and set corresponding vars
        // Example: Service Account Path
        "SERVICE_ACCOUNT_PATH": "/full/path/to/cloned/mcp-google-sheets/service-account-key.json",
        "DRIVE_FOLDER_ID": "your_shared_folder_id_here"
      },
      "healthcheck_url": "http://localhost:8000/health",
      "disabled": false
    }
  }
}

💬 Beispielaufforderungen für Claude

Versuchen Sie nach der Verbindung Eingabeaufforderungen wie:

  • „Liste alle Tabellen auf, auf die ich Zugriff habe.“ (oder „in meinem Ordner „AI Managed Sheets“)

  • „Erstellen Sie eine neue Tabelle mit dem Titel ‚Vierteljährlicher Verkaufsbericht Q3 2024‘.“

  • „Holen Sie sich in der Tabelle ‚Quartalsumsatzbericht‘ die Daten aus Tabelle 1, Bereich A1 bis E10.“

  • „Fügen Sie der Tabelle mit der ID 1aBcDeFgHiJkLmNoPqRsTuVwXyZ ein neues Blatt mit dem Namen ‚Zusammenfassung‘ hinzu.“

  • „Aktualisieren Sie in meiner Tabelle ‚Projektaufgaben‘, Blatt ‚Aufgaben‘, Zelle B2 auf ‚In Bearbeitung‘.“

  • „Fügen Sie diese Zeilen dem Blatt ‚Protokoll‘ in der Tabelle XYZ hinzu: [['2024-07-31', 'Task A Completed'], ['2024-08-01', 'Task B Started']]

  • „Erhalten Sie eine Zusammenfassung der Tabellenblätter ‚Verkaufsdaten‘ und ‚Bestandszählung‘.“

  • „Teilen Sie die Tabelle ‚Team-Urlaubsplan‘ mit team@example.com als Leser und manager@example.com als Autor. Senden Sie keine Benachrichtigungen.“


🤝 Beitragen

Beiträge sind willkommen! Bitte eröffnen Sie ein Issue, um Fehler oder Funktionswünsche zu besprechen. Pull Requests sind willkommen.


📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .


🙏 Credits

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
31dResponse time
6wRelease cycle
8Releases (12mo)
Issues opened vs closed

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xing5/mcp-google-sheets'

If you have feedback or need assistance with the MCP directory API, please join our Discord server