Skip to main content
Glama

Firebase MCP

Firebase MCP

Projektlogo

Überblick

Firebase MCP ermöglicht KI-Assistenten die direkte Zusammenarbeit mit Firebase-Diensten, darunter:

  • Firestore : Datenbankoperationen dokumentieren
  • Speicher : Dateiverwaltung mit robusten Upload-Funktionen
  • Authentifizierung : Benutzerverwaltung und -überprüfung

Der Server funktioniert mit MCP-Clientanwendungen wie Claude Desktop , Augment Code , VS Code und Cursor .

⚠️ Bekanntes Problem : Das Tool firestore_list_collections kann einen Zod-Validierungsfehler in den Client-Protokollen zurückgeben. Dies ist ein fehlerhafter Validierungsfehler im MCP SDK, da unsere Untersuchung bestätigt hat, dass die Antwort keine booleschen Werte enthält. Trotz der Fehlermeldung funktioniert die Abfrage weiterhin korrekt und gibt die korrekten Sammlungsdaten zurück. Dies ist ein Fehler auf Protokollebene, der die Funktionalität nicht beeinträchtigt.

⚡ Schnellstart

Voraussetzungen

  • Firebase-Projekt mit Service-Konto-Anmeldeinformationen
  • Node.js-Umgebung

1. Installieren Sie den MCP-Server

Fügen Sie die Serverkonfiguration zu Ihrer MCP-Einstellungsdatei hinzu:

  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Erweitern: ~/Library/Application Support/Code/User/settings.json
  • Cursor: [project root]/.cursor/mcp.json

MCP-Server können manuell oder zur Laufzeit über npx (empfohlen) installiert werden. Die Installationsmethode bestimmt Ihre Konfiguration:

Für npx konfigurieren (empfohlen)
{ "firebase-mcp": { "command": "npx", "args": [ "-y", "@gannonh/firebase-mcp" ], "env": { "SERVICE_ACCOUNT_KEY_PATH": "/absolute/path/to/serviceAccountKey.json", "FIREBASE_STORAGE_BUCKET": "your-project-id.firebasestorage.app" } } }
Für die lokale Installation konfigurieren
{ "firebase-mcp": { "command": "node", "args": [ "/absolute/path/to/firebase-mcp/dist/index.js" ], "env": { "SERVICE_ACCOUNT_KEY_PATH": "/absolute/path/to/serviceAccountKey.json", "FIREBASE_STORAGE_BUCKET": "your-project-id.firebasestorage.app" } } }

2. Testen Sie die Installation

Bitten Sie Ihren KI-Client: „Bitte testen Sie alle Firebase MCP-Tools.“

🛠️ Einrichtung und Konfiguration

1. Firebase-Konfiguration

  1. Gehen Sie zur Firebase-Konsole → Projekteinstellungen → Dienstkonten
  2. Klicken Sie auf „Neuen privaten Schlüssel generieren“
  3. Speichern Sie die JSON-Datei sicher

2. Umgebungsvariablen

Erforderlich
  • SERVICE_ACCOUNT_KEY_PATH : Pfad zu Ihrem Firebase-Dienstkontoschlüssel JSON (erforderlich)
Optional
  • FIREBASE_STORAGE_BUCKET : Bucket-Name für Firebase Storage (standardmäßig [projectId].appspot.com )
  • MCP_TRANSPORT : Zu verwendender Transporttyp ( stdio oder http ) (standardmäßig stdio )
  • MCP_HTTP_PORT : Port für HTTP-Transport (Standardwert: 3000 )
  • MCP_HTTP_HOST : Host für HTTP-Transport (standardmäßig localhost )
  • MCP_HTTP_PATH : Pfad für HTTP-Transport (standardmäßig /mcp )
  • DEBUG_LOG_FILE : Dateiprotokollierung aktivieren:
    • Auf true setzen, um in ~/.firebase-mcp/debug.log zu protokollieren
    • Legen Sie einen Dateipfad fest, um die Protokollierung an einem benutzerdefinierten Speicherort durchzuführen.

3. Client-Integration

Claude Desktop

Bearbeiten: ~/Library/Application Support/Claude/claude_desktop_config.json

VS Code / Erweitern

Bearbeiten: ~/Library/Application Support/Code/User/settings.json

Cursor

Bearbeiten: [project root]/.cursor/mcp.json

📚 API-Referenz

Firestore-Werkzeuge

WerkzeugBeschreibungErforderliche Parameter
firestore_add_documentHinzufügen eines Dokuments zu einer Sammlungcollection , data
firestore_list_documentsDokumente mit Filter auflistencollection
firestore_get_documentEin bestimmtes Dokument abrufencollection , id
firestore_update_documentAktualisieren eines vorhandenen Dokumentscollection , id , data
firestore_delete_documentLöschen eines Dokumentscollection , id
firestore_list_collectionsStammsammlungen auflistenKeiner
firestore_query_collection_groupAbfrage über untergeordnete Sammlungen hinwegcollectionId

Aufbewahrungswerkzeuge

WerkzeugBeschreibungErforderliche Parameter
storage_list_filesAuflisten von Dateien in einem VerzeichnisKeine (optional: directoryPath )
storage_get_file_infoAbrufen von Dateimetadaten und URLfilePath
storage_uploadDatei aus Inhalt hochladenfilePath , content
storage_upload_from_urlDatei von URL hochladenfilePath , url

Authentifizierungstools

WerkzeugBeschreibungErforderliche Parameter
auth_get_userBenutzer per ID oder E-Mail abrufenidentifier

💻 Entwicklerhandbuch

Installation & Bau

git clone https://github.com/gannonh/firebase-mcp cd firebase-mcp npm install npm run build

Ausführen von Tests

Installieren und starten Sie zunächst die Firebase-Emulatoren:

npm install -g firebase-tools firebase init emulators firebase emulators:start

Führen Sie dann Tests durch:

# Run tests with emulator npm run test:emulator # Run tests with coverage npm run test:coverage:emulator

Projektstruktur

src/ ├── index.ts # Server entry point ├── utils/ # Utility functions └── lib/ └── firebase/ # Firebase service clients ├── authClient.ts # Authentication operations ├── firebaseConfig.ts # Firebase configuration ├── firestoreClient.ts # Firestore operations └── storageClient.ts # Storage operations

🌐 HTTP-Transport

Firebase MCP unterstützt jetzt zusätzlich zum Standard-STDIO-Transport HTTP-Transport. Dadurch können Sie den Server als eigenständigen HTTP-Dienst ausführen, auf den mehrere Clients zugreifen können.

Ausführen mit HTTP-Transport

So führen Sie den Server mit HTTP-Transport aus:

# Using environment variables MCP_TRANSPORT=http MCP_HTTP_PORT=3000 node dist/index.js # Or with npx MCP_TRANSPORT=http MCP_HTTP_PORT=3000 npx @gannonh/firebase-mcp

Clientkonfiguration für HTTP

Wenn Sie den HTTP-Transport verwenden, konfigurieren Sie Ihren MCP-Client so, dass er eine Verbindung zum HTTP-Endpunkt herstellt:

{ "firebase-mcp": { "url": "http://localhost:3000/mcp" } }

Sitzungsverwaltung

Der HTTP-Transport unterstützt die Sitzungsverwaltung, sodass mehrere Clients eine Verbindung zur gleichen Serverinstanz herstellen können. Jeder Client erhält eine eindeutige Sitzungs-ID, die zur Aufrechterhaltung des Status zwischen Anfragen verwendet wird.

🔍 Fehlerbehebung

Häufige Probleme

Speicher-Bucket nicht gefunden

Wenn die Fehlermeldung „Der angegebene Bucket existiert nicht“ angezeigt wird:

  1. Überprüfen Sie Ihren Bucket-Namen in der Firebase-Konsole → Speicher
  2. Legen Sie den richtigen Bucket-Namen in der Umgebungsvariable FIREBASE_STORAGE_BUCKET fest
Firebase-Initialisierung fehlgeschlagen

Wenn die Fehlermeldung „Firebase ist nicht initialisiert“ angezeigt wird:

  1. Überprüfen Sie, ob der Schlüsselpfad Ihres Dienstkontos korrekt und absolut ist
  2. Stellen Sie sicher, dass das Dienstkonto über die entsprechenden Berechtigungen für Firebase-Dienste verfügt
Zusammengesetzter Index erforderlich

Wenn Sie die Fehlermeldung „Diese Abfrage erfordert einen zusammengesetzten Index“ erhalten:

  1. Suchen Sie in der Fehlermeldung nach der angegebenen URL
  2. Folgen Sie dem Link, um den erforderlichen Index in der Firebase-Konsole zu erstellen
  3. Wiederholen Sie Ihre Abfrage, nachdem der Index erstellt wurde (kann einige Minuten dauern).
Zod-Validierungsfehler mit firestore_list_collections

Wenn bei Verwendung des Tools firestore_list_collections ein Zod-Validierungsfehler mit der Meldung „Objekt erwartet, Boolescher Wert empfangen“ angezeigt wird:

⚠️ Bekanntes Problem : Das Tool firestore_list_collections kann einen Zod-Validierungsfehler in den Client-Protokollen zurückgeben. Dies ist ein fehlerhafter Validierungsfehler im MCP SDK, da unsere Untersuchung bestätigt hat, dass die Antwort keine booleschen Werte enthält. Trotz der Fehlermeldung funktioniert die Abfrage weiterhin korrekt und gibt die korrekten Sammlungsdaten zurück. Dies ist ein Fehler auf Protokollebene, der die Funktionalität nicht beeinträchtigt.

Debuggen

Dateiprotokollierung aktivieren

Zur Unterstützung der Problemdiagnose können Sie die Dateiprotokollierung aktivieren:

# Log to default location (~/.firebase-mcp/debug.log) DEBUG_LOG_FILE=true npx @gannonh/firebase-mcp # Log to a custom location DEBUG_LOG_FILE=/path/to/custom/debug.log npx @gannonh/firebase-mcp

Sie können die Protokollierung auch in Ihrer MCP-Clientkonfiguration aktivieren:

{ "firebase-mcp": { "command": "npx", "args": ["-y", "@gannonh/firebase-mcp"], "env": { "SERVICE_ACCOUNT_KEY_PATH": "/path/to/serviceAccountKey.json", "FIREBASE_STORAGE_BUCKET": "your-project-id.firebasestorage.app", "DEBUG_LOG_FILE": "true" } } }
Protokollanzeige in Echtzeit

So zeigen Sie Protokolle in Echtzeit an:

# Using tail to follow the log file tail -f ~/.firebase-mcp/debug.log # Using a split terminal to capture stderr npm start 2>&1 | tee logs.txt
Verwenden des MCP Inspector

Der MCP Inspector bietet interaktives Debugging:

# Install MCP Inspector npm install -g @mcp/inspector # Connect to your MCP server mcp-inspector --connect stdio --command "node ./dist/index.js"

📋 Antwortformatierung

Beispiel für eine Speicheruploadantwort

{ "name": "reports/quarterly.pdf", "size": "1024000", "contentType": "application/pdf", "updated": "2025-04-11T15:37:10.290Z", "downloadUrl": "https://storage.googleapis.com/bucket/reports/quarterly.pdf?alt=media", "bucket": "your-project.appspot.com" }

Dem Benutzer angezeigt als:

## File Successfully Uploaded! 📁 Your file has been uploaded to Firebase Storage: **File Details:** - **Name:** reports/quarterly.pdf - **Size:** 1024000 bytes - **Type:** application/pdf - **Last Updated:** April 11, 2025 at 15:37:10 UTC **[Click here to download your file](https://storage.googleapis.com/bucket/reports/quarterly.pdf?alt=media)**

🤝 Beitragen

  1. Forken Sie das Repository
  2. Erstellen eines Feature-Zweigs
  3. Implementieren Sie Änderungen mit Tests (80 %+ Abdeckung erforderlich)
  4. Senden einer Pull-Anfrage

📄 Lizenz

MIT-Lizenz – Einzelheiten finden Sie in der Datei „LICENSE

🔗 Verwandte Ressourcen

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    An MCP server that provides access to Firebase Remote Config, allowing clients to interact with and manage Firebase remote configuration settings through the Model Context Protocol.
    Last updated -
    TypeScript
  • -
    security
    F
    license
    -
    quality
    Auto-generated MCP server that enables interaction with the Firebase App Distribution API, allowing users to manage distribution of pre-release app builds to testers through natural language commands.
    Last updated -
    Python
  • -
    security
    F
    license
    -
    quality
    An MCP Server providing access to Google's Firebase API, allowing natural language interaction with Firebase services and resources.
    Last updated -
    Python
    • Linux
    • Apple

View all related MCP servers

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/gannonh/firebase-mcp'

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