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
Prüfen Sie, ob Node.js und npm installiert sind und funktionieren.
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, dasfirebase.json
enthält, um einen Projektkontext für den MCP-Server festzulegen. Wenn nichts angegeben ist, sind die Toolsget_project_directory
undset_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 . |