Integrations
Provides tools for reading from and writing to Firestore collections, allowing queries of collection documents and adding new documents with auto-generated IDs.
MCP Firebase-Server (Model Context Protocol)
Dieser Server implementiert das Model Context Protocol (MCP) als Brücke zwischen einem Large Language Model (LLM) wie Claude und Firebase (Firestore). Es ermöglicht dem LLM, Firestore-Sammlungen zu lesen und zu beschreiben, indem diese Operationen als MCP-Tools bereitgestellt werden.
Dieser Server wurde mit dem offiziellen mcp
Python SDK erstellt.
Voraussetzungen
- Python 3.7+ (vorzugsweise 3.8+ für
asynccontextmanager
und vollständige Type-Hinting-Funktionen, die von MCP verwendet werden) - Pip (Python-Paketinstallationsprogramm) oder
uv
(von MCP-Dokumenten für Projektmanagement empfohlen) - Ein Firebase-Projekt mit aktiviertem Firestore.
- Eine JSON-Datei mit dem Firebase-Dienstkontoschlüssel.
Aufstellen
- Klonen/Herunterladen: Stellen Sie sicher, dass Sie die Serverdatei (
mcp_firebase_server.py
),requirements.txt
usw. in einem lokalen Verzeichnis haben. - Dienstkontoschlüssel:
- Der Server benötigt zur Authentifizierung einen Firebase-Dienstkontoschlüssel.
- Option 1 (empfohlen für die MCP-Client-Konfiguration): Setzen Sie die Umgebungsvariable
SERVICE_ACCOUNT_KEY_PATH
auf den absoluten Pfad Ihrer JSON-Datei des Dienstkontos. Dies ist die flexibelste Methode, wenn der Server von einem MCP-Client gestartet wird. - Option 2 (Fallback): Wenn die Umgebungsvariable
SERVICE_ACCOUNT_KEY_PATH
nicht gesetzt ist, sucht der Server in seinem eigenen Verzeichnis (demselben Verzeichnis wiemcp_firebase_server.py
) nach einer Datei namensserviceAccountKey.json
. Benennen Sie bei dieser Methode Ihre Schlüsseldatei entsprechend um. - Wichtig: Stellen Sie sicher, dass Ihre Dienstkonto-Schlüsseldatei (unabhängig von ihrem Namen oder Zugriff) sicher aufbewahrt und idealerweise in Ihrer
.gitignore
Datei aufgeführt wird, wenn im Projekt eine lokale Kopie vorhanden ist.
- Firebase-Speicher-Bucket (optional):
- Wenn Sie Firebase Storage-Funktionen mit diesem Server nutzen möchten (derzeit wird dies von keinem Tool verwendet, kann aber hinzugefügt werden), setzen Sie die Umgebungsvariable
FIREBASE_STORAGE_BUCKET
auf den Namen des Storage Buckets Ihres Firebase-Projekts (z. B.your-project-id.appspot.com
). Der Server liest und gibt diesen Wert aus, wenn dieser gesetzt ist.
- Wenn Sie Firebase Storage-Funktionen mit diesem Server nutzen möchten (derzeit wird dies von keinem Tool verwendet, kann aber hinzugefügt werden), setzen Sie die Umgebungsvariable
- Erstellen Sie eine virtuelle Umgebung (empfohlen): Verwenden von
venv
:Oder bei Verwendung vonCopyuv
(wie in den MCP-Dokumenten für neue Projekte vorgeschlagen):Copy - Abhängigkeiten installieren: Verwenden von
pip
:Oder, wenn SieCopyuv
verwenden:Dadurch werdenCopymcp[cli]
undfirebase-admin
installiert.
Ausführen des Servers
Es gibt mehrere Möglichkeiten, diesen MCP-Server auszuführen:
- Direkte Ausführung (für stdio-Transport über
run_server.sh
): Einrun_server.sh
-Skript vereinfacht den Serverstart. Dieses Skript übernimmt die Aktivierung der virtuellen Umgebung (sofern sievenv
heißt und im Projektstammverzeichnis vorhanden ist), bevor das Python-Skript ausgeführt wird.Machen Sie zunächst das Skript ausführbar:Führen Sie dann den Server mit dem Skript aus:CopySo würde ein MCP-Client normalerweise konfiguriert werden, um den Server zu starten (siehe Abschnitt „Verwendung mit Claude“ weiter unten).Copy - **Verwendung der MCP-CLI für Entwicklung und Inspektion (
mcp dev
): Diemcp
CLI (installiert als Teil vonmcp[cli]
) stellt einen Entwicklungsserver und ein Inspektionstool bereit. Dies wird während der Entwicklung dringend empfohlen.Dadurch wird der Server gestartet und häufig wird eine Weboberfläche bereitgestellt, über die Sie seine Funktionen (Tools, Ressourcen) überprüfen und Testanrufe tätigen können.Copy
Offengelegte MCP-Tools
Dieser Server mit dem Namen MCPFirebaseServer
stellt die folgenden Tools bereit:
1. query_firestore_collection
- Beschreibung (aus der Dokumentzeichenfolge): Ruft Dokumente aus einer angegebenen Firestore-Sammlung ab.
- Argumente:
collection_name
(Zeichenfolge, erforderlich): Der Name der abzufragenden Firestore-Sammlung.limit
(Ganzzahl, optional, Standard: 50): Die maximale Anzahl der zurückzugebenden Dokumente.
- Rückgabewert: (Liste[Dict[str, Any]]) Eine Liste von Dokumenten aus der Sammlung. Jedes Dokument ist ein Wörterbuch mit einem
id
Feld. Gibt eine Liste mit einem einzelnen Fehlerwörterbuch zurück, wenn ein Fehler auftritt (z.[{"error": "Firestore not initialized..."}]
oder[{"error": "Failed to query..."}]
).
2. Dokument add_document_to_firestore
- Beschreibung (aus der Dokumentzeichenfolge): Fügt der angegebenen Firestore-Sammlung ein neues Dokument mit einer automatisch generierten ID hinzu.
- Argumente:
collection_name
(Zeichenfolge, erforderlich): Der Name der Firestore-Sammlung, zu der das Dokument hinzugefügt wird.document_data
(Objekt/Wörterbuch, erforderlich): Ein Wörterbuch, das das hinzuzufügende Dokument darstellt.
- Rückgabewert: (Dict[str, Any]) Ein Wörterbuch,
success
(Boolescher Wert) und bei Erfolg entwederid
(String) undmessage
(String) oder bei Misserfolgerror
(String) enthält. Beispiel für Erfolg:{"success": True, "id": "newDocId", "message": "Document added to 'logs'"}
Beispiel für Misserfolg:{"success": False, "error": "Firestore not initialized..."}
Verwendung mit Claude (oder anderen MCP-Clients)
Dieser MCP Firebase-Server ist als separater Prozess konzipiert und wird typischerweise von einer MCP-Client-Anwendung (z. B. Claude Desktop oder einer benutzerdefinierten Anwendung, die mit einer Plattform wie Windsurf erstellt wurde, die MCP-Server verwalten kann) gestartet. Der Client kommuniziert dann mit diesem Server, üblicherweise über stdio
(Standard Input/Output) für lokal ausgeführte Server.
Allgemeine Integrationsschritte:
- Serververfügbarkeit: Stellen Sie sicher, dass
mcp_firebase_server.py
und seine Abhängigkeiten (einschließlichserviceAccountKey.json
) auf dem System zugänglich sind, auf dem der MCP-Client ausgeführt wird oder Prozesse starten kann. - Client-Konfiguration: Die MCP-Client-Anwendung muss konfiguriert werden, um den Start Ihres
MCPFirebaseServer
zu ermöglichen. Diese Konfiguration umfasst in der Regel die Angabe von:- Ein auszuführender Befehl (z. B.
python
oderuv run python
). - Argumente für diesen Befehl (z. B. der Pfad zu
mcp_firebase_server.py
). - Optional alle Umgebungsvariablen, die der Server möglicherweise benötigt (obwohl unser aktueller Server
serviceAccountKey.json
im selben Verzeichnis erwartet, könnte eine Umgebungsvariable für den Schlüsselpfad eine Alternative sein).
- Ein auszuführender Befehl (z. B.
- Einführung und Kommunikation:
- Wenn der MCP-Client ein von diesem Server bereitgestelltes Tool verwenden muss, startet er
mcp_firebase_server.py
mit dem konfigurierten Befehl. - Client und Server kommunizieren dann über das MCP-Protokoll (z. B. über
stdio
). Der Client kann verfügbare Tools (query_firestore_collection
,add_document_to_firestore
) ermitteln und aufrufen.
- Wenn der MCP-Client ein von diesem Server bereitgestelltes Tool verwenden muss, startet er
Beispiel für eine konzeptionelle Konfiguration (für einen MCP-Client wie Claude Desktop):
Viele MCP-kompatible Clientanwendungen (wie Claude Desktop, wie in der MCP-Dokumentation erwähnt) verwenden eine Konfigurationsdatei (häufig JSON), um zu definieren, wie MCP-Server gestartet und verwaltet werden. Das genaue Format kann je nach Client variieren, das Prinzip ist jedoch ähnlich.
Nachfolgend finden Sie ein konzeptionelles Beispiel basierend auf Mustern aus der MCP-Dokumentation. Sie müssen es an den spezifischen Konfigurationsmechanismus Ihres gewählten MCP-Clients (Claude Desktop, Windsurf usw.) anpassen.
Wichtige Punkte zur Konfiguration:
"command"
: Die auszuführende ausführbare Datei (z. B.python
). Stellen Sie sicher, dass sie sich im Pfad des Systems befindet, oder geben Sie den vollständigen Pfad zum Python-Interpreter an."args"
: Eine Liste von Argumenten. Das erste Argument ist typischerweise das auszuführende Skript. Es ist wichtig, den vollständigen, absoluten Pfad zumcp_firebase_server.py
zu verwenden, um sicherzustellen, dass der Client es finden kann, unabhängig davon, von wo aus der Client selbst gestartet wird."cwd"
(Aktuelles Arbeitsverzeichnis) : Manchmal müssen Sie möglicherweise das Arbeitsverzeichnis für den Serverprozess angeben, insbesondere wenn dieser auf relativen Pfaden für andere Dateien basiert (obwohl unserserviceAccountKey.json
-Pfad relativ zum Skript selbst ist, was im Allgemeinen robust ist, wenn der Skriptpfad absolut ist)."env"
: Zum Übergeben von Umgebungsvariablen. Während unser aktueller ServerserviceAccountKey.json
relativ zu seinem eigenen Pfad lokalisiert, besteht ein gängiges Muster für konfigurierbarere Server darin, Anmeldepfade oder andere Einstellungen über Umgebungsvariablen zu übergeben.
Interaktionsfluss (Zusammenfassung):
- Client startet Server: Der MCP-Client (mit der obigen Konfiguration) startet
mcp_firebase_server.py
. - Server initialisiert: Unser Server versucht, eine Verbindung zu Firebase herzustellen.
- Tool-Erkennung und -Aufrufe: Der Client erkennt und ruft nach Bedarf Tools wie
query_firestore_collection
oderadd_document_to_firestore
auf. - Server antwortet: Ergebnisse werden über
stdio
an den Client zurückgesendet.
Spezielle Anweisungen für Claude Desktop oder Windsurf:
- Claude Desktop: Wenn Sie Claude Desktop verwenden, lesen Sie in der Dokumentation nach, wie Sie benutzerdefinierte MCP-Server hinzufügen und konfigurieren. Die obige JSON-Struktur ist ein gängiges Muster, das Sie anpassen können.
- Windsurf: Wenn Windsurf Ihr Orchestrator ist und die Verwaltung von MCP-Servern unterstützt, verfügt es über eine eigene Methode zum Definieren und Starten dieser externen Tool-Server. Einzelheiten entnehmen Sie bitte der Windsurf-Dokumentation. Die Kerninformationen (Befehl, Argumente zum Ausführen
mcp_firebase_server.py
) sind jedoch identisch.
Wenn Ihr Client keine dedizierte UI/Konfigurationsdatei zur MCP-Serververwaltung hat, aber Shell-Befehle ausführen und über stdio interagieren kann, würden Sie das Skript mcp_firebase_server.py
programmgesteuert starten und dann eine MCP-Clientbibliothek (wie die in mcp.client.stdio
) verwenden, um mit ihm zu kommunizieren.
Entwicklung und Tests
- Verwenden Sie
mcp dev mcp_firebase_server.py
um den Server mit dem MCP Inspector auszuführen. So können Sie erkannte Tools sehen und interaktiv testen. - Stellen Sie sicher, dass
serviceAccountKey.json
richtig platziert ist ODER die UmgebungsvariableSERVICE_ACCOUNT_KEY_PATH
festgelegt ist, wenn der Server von einem MCP-Client gestartet wird. - Überprüfen Sie die Konsolenausgabe des Servers auf Firebase-Initialisierungsmeldungen und etwaige Laufzeitfehler.
Das Skript run_server.sh
:
Das Skript run_server.sh
im Projektstammverzeichnis dient dazu:
- Bestimmen Sie den eigenen Speicherort und ändern Sie das aktuelle Verzeichnis dorthin.
- Suchen und aktivieren Sie eine virtuelle Python-Umgebung mit dem Namen
venv
, sofern diese im Projektstammverzeichnis vorhanden ist. - Führen Sie das Skript
mcp_firebase_server.py
mit dempython
-Interpreter aus (idealerweise vom aktivierten Venv).
Dieses Skript stellt sicher, dass der MCP-Server in der vorgesehenen Umgebung ausgeführt wird. Denken Sie daran, es ausführbar zu machen ( chmod +x run_server.sh
).
This server cannot be installed
Eine Brücke, die es großen Sprachmodellen ermöglicht, über Model Context Protocol (MCP)-Tools aus Firebase Firestore-Sammlungen zu lesen und in diese zu schreiben.
Related MCP Servers
- AsecurityAlicenseAqualityProvides integration between Genkit and the Model Context Protocol (MCP).Last updated -64801,814TypeScriptApache 2.0
- AsecurityAlicenseAqualityA powerful Model Context Protocol (MCP) tool for exploring and managing different types of databases including PostgreSQL, MySQL, and Firestore.Last updated -93TypeScriptMIT License
MCP TapData Serverofficial
-securityFlicense-qualityA Model Context Protocol server that enables Large Language Models to access and interact with database connections, including viewing schemas and performing CRUD operations on connected databases.Last updated -TypeScript- -securityFlicense-qualityA Model Context Protocol server that enables large language models to interact directly with Couchbase databases through natural language, supporting operations like querying buckets, performing CRUD operations, and executing N1QL queries.Last updated -286TypeScript