Firebase-MCP-Server

Mit dem Firebase MCP-Server können Sie KI-basierten Entwicklungstools die Möglichkeit geben, mit Ihren Firebase-Projekten zu arbeiten. Der Firebase MCP-Server funktioniert mit jedem Tool, das als MCP-Client fungieren kann, einschließlich Claude Desktop, Cline, Cursor, Visual Studio Code Copilot und Windsurf Editor.

Ein Editor, der für die Verwendung des Firebase-MCP-Servers konfiguriert ist, kann seine KI-Funktionen für Folgendes nutzen:

  • Firebase-Projekte erstellen und verwalten
  • Firebase Authentication-Nutzer verwalten
  • Mit Daten in Cloud Firestore und Firebase Data Connect arbeiten
  • Firebase Data Connect-Schemas abrufen
  • Sicherheitsregeln für Firestore und Cloud Storage for Firebase verstehen
  • Nachrichten mit Firebase Cloud Messaging senden

Einige der Tools verwenden Gemini in Firebase, um Sie zu unterstützen:

  • Firebase Data Connect-Schema und ‑Vorgänge generieren
  • Gemini zu Firebase-Produkten befragen

Dies sind nur Teillisten. Eine vollständige Liste der Tools, die Ihrem Editor zur Verfügung stehen, finden Sie im Abschnitt Serverfunktionen.

Wenn der Firebase MCP-Server Tool-Aufrufe ausführt, verwendet er dieselben Nutzeranmeldedaten, mit denen die Firebase CLI in der Umgebung autorisiert wird, in der sie ausgeführt wird. Das kann je nach Umgebung ein angemeldeter Nutzer oder Standardanmeldedaten für Anwendungen sein.

Hinweis

  1. Prüfen Sie, ob Node.js und npm installiert sind und funktionieren.

  2. Authentifizieren Sie die Firebase CLI mit dem folgenden Befehl:

    npx -y firebase-tools@latest login --reauth

    Der Firebase MCP-Server verwendet die CLI, um die Authentifizierung mit Ihren Firebase-Projekten zu verarbeiten. Sie müssen sich mit der CLI authentifizieren, bevor Sie den MCP-Server verwenden können. Wenn Sie versuchen, den Server ohne Anmeldung zu verwenden oder Ihr Authentifizierungstoken abgelaufen ist, gibt der Server eine Fehlermeldung aus, in der Sie aufgefordert werden, sich neu zu authentifizieren.

MCP-Client einrichten

Der Firebase MCP-Server kann mit jedem MCP-Client verwendet werden, der Standard-I/O (stdio) als Transportmedium unterstützt. Hier finden Sie spezifische Anleitungen für einige beliebte Tools:

Grundlegende Konfiguration

Claude Desktop

Wenn Sie Claude Desktop so konfigurieren möchten, dass der Firebase MCP-Server verwendet wird, bearbeiten Sie die Datei claude_desktop_config.json. Sie können diese Datei über das Menü Claude > Einstellungen öffnen oder erstellen. Wählen Sie den Tab Developer (Entwickler) aus und klicken Sie auf Edit Config (Konfiguration bearbeiten).

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

Cline

Wenn Sie Cline so konfigurieren möchten, dass der Firebase-MCP-Server verwendet wird, bearbeiten Sie die Datei cline_mcp_settings.json. Sie können diese Datei öffnen oder erstellen, indem Sie oben im Cline-Bereich auf das Symbol „MCP Servers“ (MCP-Server) und dann auf die Schaltfläche Configure MCP Servers (MCP-Server konfigurieren) klicken.

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"],
      "disabled": false
    }
  }
}

Cursor

Wenn Sie Cursor so konfigurieren möchten, dass der Firebase-MCP-Server verwendet wird, bearbeiten Sie entweder die Datei .cursor/mcp.json (um nur ein bestimmtes Projekt zu konfigurieren) oder die Datei ~/.cursor/mcp.json (um den MCP-Server in allen Projekten verfügbar zu machen):

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
   }
}

Firebase Studio

So konfigurieren Sie Firebase Studio für die Verwendung des Firebase MCP-Servers:

  • Für den Gemini in Firebase-Chat wird .idx/mcp.json verwendet.
  • Gemini CLI verwendet .gemini/settings.json.

Wenn die Datei noch nicht vorhanden ist, erstellen Sie sie, indem Sie mit der rechten Maustaste auf das übergeordnete Verzeichnis klicken und Neue Datei auswählen. Fügen Sie der Datei den folgenden Inhalt hinzu:

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

Visual Studio Code Copilot

Wenn Sie ein einzelnes Projekt konfigurieren möchten, bearbeiten Sie die Datei .vscode/mcp.json in Ihrem Arbeitsbereich:

"servers": {
  "firebase": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
  }
}

Wenn Sie den Server in jedem Projekt verfügbar machen möchten, das Sie öffnen, bearbeiten Sie Ihre Nutzereinstellungen:

"mcp": {
  "servers": {
    "firebase": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
    }
  }
}

Windsurf-Editor

Bearbeiten Sie die Datei ~/.codeium/windsurf/mcp_config.json, um den Windsurf Editor zu konfigurieren:

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "experimental:mcp"]
  }
}

Optionale Konfiguration

Zusätzlich zur oben gezeigten grundlegenden Konfiguration für jeden Client können Sie zwei optionale Parameter angeben:

  • --dir ABSOLUTE_DIR_PATH: Der absolute Pfad eines Verzeichnisses, das firebase.json enthält, um einen Projektkontext für den MCP-Server festzulegen. Wenn nichts angegeben ist, sind die Tools get_project_directory und set_project_directory verfügbar und das Standardverzeichnis ist das Arbeitsverzeichnis, in dem der MCP-Server gestartet wurde.

  • --only FEATURE_1,FEATURE_2: Eine durch Kommas getrennte Liste der zu aktivierenden Featuregruppen. Damit können Sie die angezeigten Tools auf die Funktionen beschränken, die Sie aktiv verwenden. Die Core-Tools sind immer verfügbar.

Beispiel:

"firebase": {
  "command": "npx",
  "args": [
    "-y",
    "firebase-tools@latest", "experimental:mcp",
    "--dir", "/Users/turing/my-project",
    "--only", "auth,firestore,storage"
  ]
}

Funktionen von MCP-Servern

Tool-Name Featuregruppe Beschreibung
firebase_get_project core Ruft Informationen zum aktuell aktiven Firebase-Projekt ab.
firebase_list_apps core Ruft Apps ab, die im aktuellen Firebase-Projekt registriert sind.
firebase_get_admin_sdk_config core Ruft die Admin SDK-Konfiguration für das aktuelle Projekt ab.
firebase_list_projects core Ruft eine Liste von Firebase-Projekten bis zur angegebenen Gesamtzahl ab.
firebase_get_sdk_config core Ruft die Firebase SDK-Konfigurationsinformationen für die angegebene Plattform ab. Sie müssen entweder eine Plattform oder eine „app_id“ angeben.
firebase_create_project core Erstellt ein neues Firebase-Projekt.
firebase_create_app core Erstellt eine neue App in Ihrem Firebase-Projekt für Web, iOS oder Android.
firebase_create_android_sha core Fügt einer vorhandenen Android-App einen SHA-Zertifikathash hinzu.
firebase_consult_assistant core Sie können eine Frage an einen KI-Assistenten senden, der speziell für die Beantwortung von Firebase-Fragen optimiert wurde.
firebase_get_environment core Ruft Informationen zur aktuellen Firebase-Umgebung ab, einschließlich des aktuell authentifizierten Nutzers, des Projektverzeichnisses und des aktiven Projekts.
firebase_update_environment core Aktualisiert die Firebase-Umgebungskonfiguration, z. B. das Projektverzeichnis, das aktive Projekt und das aktive Nutzerkonto. Mit firebase_get_environment können Sie die aktuell konfigurierte Umgebung aufrufen.
firebase_init core Initialisiert ausgewählte Firebase-Funktionen im Arbeitsbereich (Firestore, Data Connect, Realtime Database). Alle Funktionen sind optional. Geben Sie nur die Produkte an, die Sie einrichten möchten. Sie können neue Funktionen in einem vorhandenen Projektverzeichnis initialisieren. Wenn Sie eine vorhandene Funktion neu initialisieren, kann die Konfiguration überschrieben werden. Führen Sie den Befehl firebase deploy nach dem Tool firebase_init aus, um die initialisierten Funktionen bereitzustellen.
firestore_delete_document firestore Löscht Firestore-Dokumente aus einer Datenbank im aktuellen Projekt anhand vollständiger Dokumentpfade. Verwenden Sie diese Option, wenn Sie den genauen Pfad eines Dokuments kennen.
firestore_get_documents firestore Ruft ein oder mehrere Firestore-Dokumente aus einer Datenbank im aktuellen Projekt anhand vollständiger Dokumentpfade ab. Verwenden Sie diese Option, wenn Sie den genauen Pfad eines Dokuments kennen.
firestore_list_collections firestore Ruft eine Liste der Sammlungen aus einer Firestore-Datenbank im aktuellen Projekt ab.
firestore_query_collection firestore Ruft ein oder mehrere Firestore-Dokumente aus einer Sammlung in einer Datenbank im aktuellen Projekt anhand einer Sammlung mit einem vollständigen Dokumentpfad ab. Verwenden Sie diese Option, wenn Sie den genauen Pfad einer Sammlung und die Filterklausel für das Dokument kennen.
firestore_get_rules firestore Ruft die aktiven Firestore-Sicherheitsregeln für das aktuelle Projekt ab.
firestore_validate_rules firestore Prüft die angegebene Firestore-Regelquelle auf Syntax- und Validierungsfehler. Geben Sie ENTWEDER den zu validierenden Quellcode ODER einen Pfad zu einer Quelldatei an.
auth_get_user auth Ruft einen Nutzer anhand einer E‑Mail-Adresse, Telefonnummer oder UID ab.
auth_disable_user auth Deaktiviert oder aktiviert einen Nutzer anhand einer UID.
auth_list_users auth Ruft alle Nutzer im Projekt bis zum angegebenen Limit ab.
auth_set_claim auth Legt einen benutzerdefinierten Anspruch für das Konto eines bestimmten Nutzers fest. Hiermit können Sie vertrauenswürdige Werte erstellen, die einem Nutzer zugeordnet sind, z.B. ihn als Administrator kennzeichnen. Ansprüche sind in der Größe begrenzt und sollten in Name und Wert prägnant sein. Geben Sie NUR EINEN der Parameter value oder json_value an.
auth_set_sms_region_policy auth Legt eine SMS-Regionsrichtlinie für Firebase Auth fest, um die Regionen einzuschränken, die SMS empfangen können. Dies erfolgt auf Grundlage einer ALLOW- oder DENY-Liste von Ländercodes. Wenn diese Richtlinie festgelegt ist, werden alle vorhandenen Richtlinien überschrieben.
dataconnect_list_services dataconnect Listet die im aktuellen Projekt verfügbaren Firebase Data Connect-Dienste auf.
dataconnect_generate_schema dataconnect Generiert ein Firebase Data Connect-Schema basierend auf der Beschreibung einer App durch den Nutzer.
dataconnect_generate_operation dataconnect Generiert eine einzelne Firebase Data Connect-Abfrage oder ‑Mutation basierend auf dem aktuell bereitgestellten Schema und dem angegebenen Prompt.
dataconnect_get_schema dataconnect Informationen zum Firebase Data Connect-Schema im Projekt abrufen, einschließlich Cloud SQL-Datenquellen und des GraphQL-Schemas, das das Datenmodell beschreibt.
dataconnect_get_connectors dataconnect Rufen Sie die Firebase Data Connect-Connectors im Projekt ab. Dazu gehören die vordefinierten GraphQL-Abfragen, auf die über Client-SDKs zugegriffen werden kann.
dataconnect_execute_graphql dataconnect Führt eine beliebige GraphQL-Abfrage für einen Data Connect-Dienst oder dessen Emulator aus.
dataconnect_execute_graphql_read dataconnect Führt eine beliebige GraphQL-Abfrage für einen Data Connect-Dienst oder dessen Emulator aus. Daten können nicht geschrieben werden.
dataconnect_execute_mutation dataconnect Führt eine bereitgestellte Data Connect-Mutation für einen Dienst oder seinen Emulator aus. Kann Daten lesen und schreiben.
dataconnect_execute_query dataconnect Führt eine bereitgestellte Data Connect-Abfrage für einen Dienst oder seinen Emulator aus. Es können keine Daten geschrieben werden.
storage_get_rules storage Ruft die aktiven Storage-Sicherheitsregeln für das aktuelle Projekt ab.
storage_validate_rules storage Prüft den angegebenen Quellcode der Storage-Regeln auf Syntax- und Validierungsfehler. Geben Sie ENTWEDER den zu validierenden Quellcode ODER einen Pfad zu einer Quelldatei an.
storage_get_object_download_url storage Ruft die Download-URL für ein Objekt in Firebase Storage ab.
messaging_send_message Messaging Sendet eine Nachricht an ein Firebase Cloud Messaging-Registrierungstoken oder -Thema. In einem bestimmten Aufruf darf NUR registration_token oder topic angegeben werden.
remoteconfig_get_template remoteconfig Ruft eine Remote Config-Vorlage für das Projekt ab.
remoteconfig_publish_template remoteconfig Veröffentlicht eine neue Remote Config-Vorlage für das Projekt.
remoteconfig_rollback_template remoteconfig Rollback auf eine bestimmte Version einer Remote Config-Vorlage für ein Projekt
crashlytics_list_top_issues crashlytics Liste die häufigsten Abstürze auf, die in der Anwendung über Crashlytics auftreten.
apphosting_fetch_logs App-Hosting Ruft die neuesten Logs für ein angegebenes App-Hosting-Backend ab. Wenn buildLogs angegeben ist, werden die Logs des Build-Prozesses für den letzten Build zurückgegeben. Die aktuellsten Logs werden zuerst aufgeführt.
apphosting_list_backends App-Hosting Ruft eine Liste der App Hosting-Back-Ends im aktuellen Projekt ab. Eine leere Liste bedeutet, dass es keine Back-Ends gibt. uri ist die öffentliche URL des Back-Ends. Ein funktionierendes Backend hat ein managed_resources-Array, das einen run_service-Eintrag enthält. run_service.service ist der Ressourcenname des Cloud Run-Dienstes, der das App Hosting-Backend bereitstellt. Das letzte Segment dieses Namens ist die Dienst-ID. domains ist die Liste der Domains, die mit dem Backend verknüpft sind. Sie haben entweder den Typ CUSTOM oder DEFAULT. Jedes Backend sollte eine DEFAULT-Domain haben. Die tatsächliche Domain, die ein Nutzer für die Verbindung zum Backend verwendet, ist der letzte Parameter des Ressourcennamens der Domain. Wenn eine benutzerdefinierte Domain richtig eingerichtet ist, haben ihre Status die Endung ACTIVE.