Vous pouvez utiliser le serveur MCP Firebase pour permettre aux outils de développement optimisés par l'IA de fonctionner avec vos projets Firebase et le code de base de votre application.
Le serveur Firebase MCP fonctionne avec n'importe quel outil pouvant faire office de client MCP, y compris : Firebase Studio, Gemini CLI et Gemini Code Assist, Claude Code et Claude Desktop, Cline, Cursor, VS Code Copilot, Windsurf, et bien d'autres encore.
Accéder aux instructions de configuration
Avantages du serveur MCP
Un éditeur configuré pour utiliser le serveur Firebase MCP peut utiliser ses fonctionnalités d'IA pour vous aider à :
- Créer et gérer des projets Firebase
- Gérer vos utilisateurs Firebase Authentication
- Travailler avec des données dans Cloud Firestore et Firebase Data Connect
- Récupérer les schémas Firebase Data Connect
- Comprendre vos règles de sécurité pour Firestore et Cloud Storage for Firebase
- Envoyer des messages avec Firebase Cloud Messaging
Certains outils utilisent Gemini dans Firebase pour vous aider à :
- Générer des schémas et des opérations Firebase Data Connect
- Consulter Gemini sur les produits Firebase
Il ne s'agit que de listes partielles. Consultez la section Fonctionnalités du serveur pour obtenir la liste complète des outils disponibles dans votre éditeur.
Configurer votre client MCP
Le serveur MCP Firebase peut fonctionner avec n'importe quel client MCP compatible avec les E/S standards (stdio) comme support de transport.
Lorsque le serveur MCP Firebase effectue des appels d'outil, il utilise les mêmes identifiants utilisateur qui autorisent la CLI Firebase dans l'environnement dans lequel il s'exécute. Il peut s'agir d'un utilisateur connecté ou d'identifiants par défaut de l'application, selon l'environnement.
Avant de commencer
Assurez-vous que Node.js et npm sont correctement installés.
Configuration de base
Voici des instructions de configuration de base pour utiliser le serveur MCP Firebase avec certains outils d'assistance par IA populaires :
Firebase Studio
Pour configurer Firebase Studio afin qu'il utilise le serveur MCP Firebase, modifiez ou créez le fichier de configuration : .idx/mcp.json
.
Si le fichier n'existe pas encore, créez-le en effectuant un clic droit sur le répertoire parent, puis en sélectionnant Nouveau fichier. Ajoutez le contenu suivant au fichier :
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
CLI Gemini
La méthode recommandée pour configurer la CLI Gemini afin d'utiliser le serveur MCP Firebase consiste à installer l'extension Firebase pour la CLI Gemini :
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
L'installation de l'extension Firebase configure automatiquement le serveur Firebase MCP et inclut également un fichier de contexte qui peut améliorer les performances de développement d'applications Firebase de Gemini.
Vous pouvez également configurer la CLI Gemini pour qu'elle utilise le serveur MCP Firebase (mais pas le fichier de contexte d'extension Firebase) en modifiant ou en créant l'un des fichiers de configuration suivants :
- Dans votre projet :
.gemini/settings.json
- Dans votre répertoire d'accueil :
~/.gemini/settings.json
Si le fichier n'existe pas encore, créez-le en effectuant un clic droit sur le répertoire parent, puis en sélectionnant Nouveau fichier. Ajoutez le contenu suivant au fichier :
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Gemini Code Assist
La méthode recommandée pour configurer Gemini Code Assist afin d'utiliser le serveur MCP Firebase consiste à installer l'extension Firebase pour la CLI Gemini :
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
L'installation de l'extension Firebase configure automatiquement le serveur Firebase MCP et inclut également un fichier de contexte qui peut améliorer les performances de développement d'applications Firebase de Gemini.
Vous pouvez également configurer Gemini Code Assist pour qu'il utilise le serveur MCP Firebase (mais pas le fichier de contexte d'extension Firebase) en modifiant ou en créant l'un des fichiers de configuration suivants :
- Dans votre projet :
.gemini/settings.json
- Dans votre répertoire d'accueil :
~/.gemini/settings.json
Si le fichier n'existe pas encore, créez-le en effectuant un clic droit sur le répertoire parent, puis en sélectionnant Nouveau fichier. Ajoutez le contenu suivant au fichier :
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Claude
Claude Code
Pour configurer Claude Code afin qu'il utilise le serveur MCP Firebase, exécutez la commande suivante dans le dossier de votre application :
claude mcp add firebase npx -- -y firebase-tools@latest mcp
Vous pouvez vérifier l'installation en exécutant la commande suivante :
claude mcp list
Voici ce qui devrait s'afficher :
firebase: npx -y firebase-tools@latest mcp - ✓ Connected
Claude Desktop
Pour configurer Claude Desktop afin qu'il utilise le serveur MCP Firebase, modifiez le fichier claude_desktop_config.json
. Vous pouvez ouvrir ou créer ce fichier à partir du menu Claude > Paramètres. Sélectionnez l'onglet Développeur, puis cliquez sur Modifier la configuration.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Cline
Pour configurer Cline afin qu'il utilise le serveur MCP Firebase, modifiez le fichier cline_mcp_settings.json
. Vous pouvez ouvrir ou créer ce fichier en cliquant sur l'icône Serveurs MCP en haut du volet Cline, puis sur le bouton Configurer les serveurs MCP.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"],
"disabled": false
}
}
}
Cursor
Pour configurer Cursor afin qu'il utilise le serveur MCP Firebase, modifiez le fichier .cursor/mcp.json
(pour configurer uniquement un projet spécifique) ou le fichier ~/.cursor/mcp.json
(pour rendre le serveur MCP disponible dans tous les projets) :
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
VS Code Copilot
Pour configurer un seul projet, modifiez le fichier .vscode/mcp.json
dans votre espace de travail :
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
Pour rendre le serveur disponible dans chaque projet que vous ouvrez, modifiez vos paramètres utilisateur :
"mcp": {
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Windsurf
Pour configurer l'éditeur Windsurf, modifiez le fichier ~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
Configuration facultative
En plus de la configuration de base pour chaque client, présentée précédemment, vous pouvez spécifier deux paramètres facultatifs :
--dir ABSOLUTE_DIR_PATH
: chemin absolu d'un répertoire contenantfirebase.json
, pour définir un contexte de projet pour le serveur MCP. Si aucune valeur n'est spécifiée, les outilsget_project_directory
etset_project_directory
deviennent disponibles, et le répertoire par défaut est le répertoire de travail dans lequel le serveur MCP a été démarré.--only FEATURE_1,FEATURE_2
: liste de groupes de caractéristiques à activer, séparés par une virgule. Utilisez cette option pour limiter les outils exposés aux fonctionnalités que vous utilisez activement. Notez que les outils principaux sont toujours disponibles.
Exemple :
"firebase": {
"command": "npx",
"args": [
"-y",
"firebase-tools@latest", "mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
Fonctionnalités du serveur MCP
Le serveur MCP Firebase propose trois catégories de fonctionnalités MCP :
Requêtes : bibliothèque de requêtes prédéfinies que vous pouvez exécuter. Elles sont optimisées pour développer et exécuter une application avec Firebase.
Outils : ensemble d'outils destinés à être utilisés par les LLM pour les aider à travailler directement avec votre projet Firebase (avec votre autorisation).
Ressources : fichiers de documentation destinés à être utilisés par les LLM pour leur fournir plus de conseils et de contexte afin d'accomplir une tâche ou un objectif
Requêtes
Le serveur MCP Firebase est fourni avec une bibliothèque d'invites pré-écrites optimisées pour développer et exécuter une application avec Firebase. Vous pouvez exécuter ces requêtes pour effectuer diverses tâches ou atteindre différents objectifs courants.
Le tableau suivant décrit les invites disponibles sur le serveur MCP.
La plupart des outils de développement compatibles avec MCP offrent un moyen pratique d'exécuter ces invites. Par exemple, la Gemini CLI rend ces requêtes disponibles sous forme de commandes slash :
/firebase:init
Dans la CLI Gemini, commencez à saisir /firebase:
pour afficher la liste des commandes disponibles.
Nom de la requête | Groupe de caractéristiques | Description |
---|---|---|
firebase:deploy | core | Utilisez cette commande pour déployer des ressources sur Firebase. Arguments : <prompt> (facultatif) : toutes les instructions spécifiques que vous souhaitez fournir sur le déploiement |
firebase:init | core | Utilisez cette commande pour configurer les services Firebase, comme les fonctionnalités de backend et d'IA. |
firebase:consult | core | Utilisez cette commande pour consulter l'assistant Firebase et accéder à la documentation détaillée et à jour de la plate-forme Firebase. Arguments : <prompt> : question à transmettre au modèle Gemini dans Firebase |
crashlytics:connect | crashlytics | Accéder aux données Crashlytics d'une application Firebase |
Outils
Le serveur MCP Firebase fournit également un certain nombre d'outils destinés à être utilisés par les LLM, qui les aident à travailler directement avec votre projet Firebase (avec votre accord). Contrairement aux requêtes, vous n'appelez pas ces outils directement. Les modèles compatibles avec l'appel d'outils (comme Gemini, Claude et GPT) peuvent les appeler automatiquement pour effectuer des tâches de développement si nécessaire.
Le tableau suivant décrit les outils mis à disposition par le serveur MCP.
Nom de l'outil | Groupe de caractéristiques | Description |
---|---|---|
firebase_login | core | Utilisez cette méthode pour connecter l'utilisateur à la CLI Firebase et au serveur MCP Firebase. Un compte Google est requis. Vous devez vous connecter pour créer des projets Firebase et les utiliser. |
firebase_logout | core | Utilisez cette méthode pour déconnecter l'utilisateur de la CLI Firebase et du serveur MCP Firebase. |
firebase_validate_security_rules | core | Utilisez cet outil pour vérifier que les règles de sécurité Firebase pour Firestore, Storage ou Realtime Database ne contiennent pas d'erreurs de syntaxe ni de validation. |
firebase_get_project | core | Utilisez cette méthode pour récupérer des informations sur le projet Firebase actuellement actif. |
firebase_list_apps | core | Utilisez cette méthode pour récupérer la liste des applications Firebase enregistrées dans le projet Firebase actuellement actif. Les applications Firebase peuvent être iOS, Android ou Web. |
firebase_list_projects | core | Utilisez cette méthode pour récupérer la liste des projets Firebase auxquels l'utilisateur connecté a accès. |
firebase_get_sdk_config | core | Utilisez cette méthode pour récupérer les informations de configuration Firebase d'une application Firebase. Vous devez spécifier une plate-forme OU l'ID d'application Firebase pour une application Firebase enregistrée dans le projet Firebase actuellement actif. |
firebase_create_project | core | Utilisez cette option pour créer un projet Firebase. |
firebase_create_app | core | Utilisez cette option pour créer une application Firebase dans le projet Firebase actuellement actif. Les applications Firebase peuvent être iOS, Android ou Web. |
firebase_create_android_sha | core | Utilisez cette méthode pour ajouter le hachage du certificat SHA spécifié à l'application Android Firebase spécifiée. |
firebase_get_environment | core | Utilisez cette commande pour récupérer la configuration actuelle de l'environnement Firebase pour la CLI Firebase et le serveur MCP Firebase, y compris l'utilisateur authentifié actuel, le répertoire du projet, le projet Firebase actif, etc. |
firebase_update_environment | core | Utilisez cette commande pour mettre à jour la configuration de l'environnement pour la CLI Firebase et le serveur MCP Firebase, comme le répertoire du projet, le projet actif, le compte utilisateur actif, l'acceptation des conditions d'utilisation, etc. Utilisez firebase_get_environment pour afficher l'environnement actuellement configuré. |
firebase_init | core | Utilisez cette option pour initialiser les services Firebase sélectionnés dans l'espace de travail (base de données Cloud Firestore, Firebase Data Connect, Firebase Realtime Database, Firebase AI Logic). Tous les services sont facultatifs. Spécifiez uniquement les produits que vous souhaitez configurer. Vous pouvez initialiser de nouvelles fonctionnalités dans un répertoire de projet existant, mais la réinitialisation d'une fonctionnalité existante peut écraser la configuration. Pour déployer les fonctionnalités initialisées, exécutez la commande firebase deploy après l'outil firebase_init . |
firebase_get_security_rules | core | Utilisez cette méthode pour récupérer les règles de sécurité d'un service Firebase spécifié. S'il existe plusieurs instances de ce service dans le produit, les règles de l'instance par défaut sont renvoyées. |
firebase_read_resources | core | Utilisez cette option pour lire le contenu des ressources firebase:// ou lister les ressources disponibles. |
firestore_delete_document | firestore | Utilisez cette méthode pour supprimer des documents Firestore d'une base de données du projet actuel en indiquant le chemin d'accès complet aux documents. Utilisez cette option si vous connaissez le chemin exact d'un document. |
firestore_get_documents | firestore | Utilisez cette méthode pour récupérer un ou plusieurs documents Firestore d'une base de données du projet actuel à l'aide des chemins d'accès complets aux documents. Utilisez cette option si vous connaissez le chemin exact d'un document. |
firestore_list_collections | firestore | Utilisez cette option pour récupérer la liste des collections d'une base de données Firestore dans le projet actuel. |
firestore_query_collection | firestore | Utilisez cette action pour récupérer un ou plusieurs documents Firestore d'une collection (une base de données du projet actuel) à l'aide d'un chemin d'accès complet au document. Utilisez cette option si vous connaissez le chemin exact d'une collection et la clause de filtrage que vous souhaitez appliquer au document. |
auth_get_users | auth | Utilisez cette méthode pour récupérer un ou plusieurs utilisateurs Firebase Authentication en fonction d'une liste d'UID ou d'adresses e-mail. |
auth_update_user | auth | Utilisez cette méthode pour désactiver ou activer le compte d'un utilisateur spécifique, ou pour définir une revendication personnalisée sur ce compte. |
auth_set_sms_region_policy | auth | Utilisez cette option pour définir une règle régionale pour les SMS dans Firebase Authentication. Vous pourrez ainsi limiter les régions pouvant recevoir des messages en fonction d'une liste de codes de pays autorisés ou refusés. Si cette règle est configurée, elle remplace toutes les règles existantes. |
dataconnect_build | dataconnect | Utilisez cette option pour compiler le schéma, les opérations et/ou les connecteurs Firebase Data Connect, et vérifier s'il y a des erreurs de compilation. |
dataconnect_generate_schema | dataconnect | Utilisez-le pour générer un schéma Firebase Data Connect en fonction de la description d'une application par les utilisateurs. |
dataconnect_generate_operation | dataconnect | Utilisez cette option pour générer une requête ou une mutation Firebase Data Connect unique en fonction du schéma actuellement déployé et de la requête fournie. |
dataconnect_list_services | dataconnect | Utilisez cette option pour lister les services Firebase Data Connect locaux et de backend existants. |
dataconnect_execute | dataconnect | Utilisez cette méthode pour exécuter une opération GraphQL sur un service Data Connect ou son émulateur. |
storage_get_object_download_url | stockage | Utilisez cette méthode pour récupérer l'URL de téléchargement d'un objet dans un bucket Cloud Storage pour Firebase. |
messaging_send_message | messagerie | Utilisez cette méthode pour envoyer un message à un jeton d'enregistrement ou à un thème Firebase Cloud Messaging. Vous ne pouvez fournir qu'un seul élément registration_token ou topic dans un appel spécifique. |
functions_get_logs | sans serveur | Utilisez cette option pour récupérer une page d'entrées de journaux Cloud Functions à l'aide des filtres avancés Google Cloud Logging. |
remoteconfig_get_template | remoteconfig | Utilisez cette méthode pour récupérer le modèle Firebase Remote Config spécifié à partir du projet Firebase actuellement actif. |
remoteconfig_update_template | remoteconfig | Permet de publier un nouveau modèle Remote Config ou de revenir à une version spécifique du projet. |
crashlytics_create_note | crashlytics | Ajoutez une note à un problème depuis Crashlytics. |
crashlytics_delete_note | crashlytics | Supprimez une note d'un problème Crashlytics. |
crashlytics_get_issue | crashlytics | Obtient les données d'un problème Crashlytics, qui peuvent servir de point de départ pour le débogage. |
crashlytics_list_events | crashlytics | Utilisez cette option pour lister les événements les plus récents correspondant aux filtres spécifiés. Peut être utilisé pour récupérer des exemples de plantages et d'exceptions pour un problème, qui incluront des traces de pile et d'autres données utiles pour le débogage. |
crashlytics_batch_get_events | crashlytics | Récupère des événements spécifiques par nom de ressource. Peut être utilisé pour récupérer des exemples de plantages et d'exceptions pour un problème, qui incluront des traces de pile et d'autres données utiles pour le débogage. |
crashlytics_list_notes | crashlytics | Utilisez cette option pour lister toutes les notes d'un problème dans Crashlytics. |
crashlytics_get_top_issues | crashlytics | Utilisez-le pour comptabiliser les événements et les utilisateurs uniques concernés, regroupés par problème. Les groupes sont triés par nombre d'événements, par ordre décroissant. Ne comptabilise que les événements correspondant aux filtres spécifiés. |
crashlytics_get_top_variants | crashlytics | Comptabilise les événements et les utilisateurs uniques concernés, regroupés par variante du problème. Les groupes sont triés par nombre d'événements, par ordre décroissant. Ne comptabilise que les événements correspondant aux filtres spécifiés. |
crashlytics_get_top_versions | crashlytics | Comptabilise les événements et les utilisateurs uniques concernés, regroupés par version. Les groupes sont triés par nombre d'événements, par ordre décroissant. Ne comptabilise que les événements correspondant aux filtres spécifiés. |
crashlytics_get_top_apple_devices | crashlytics | Comptabilise les événements et les utilisateurs concernés distincts, regroupés par appareil Apple. Les groupes sont triés par nombre d'événements, par ordre décroissant. Ne comptabilise que les événements correspondant aux filtres spécifiés. Ne s'applique qu'aux applications iOS, iPadOS et macOS. |
crashlytics_get_top_android_devices | crashlytics | Comptabilise les événements et les utilisateurs concernés distincts, regroupés par appareil Android. Les groupes sont triés par nombre d'événements, par ordre décroissant. Ne comptabilise que les événements correspondant aux filtres spécifiés. Uniquement pertinent pour les applications Android. |
crashlytics_get_top_operating_systems | crashlytics | Comptabilise les événements et les utilisateurs distincts concernés, regroupés par système d'exploitation. Les groupes sont triés par nombre d'événements, par ordre décroissant. Ne comptabilise que les événements correspondant aux filtres spécifiés. |
crashlytics_update_issue | crashlytics | Permet de modifier l'état d'un problème Crashlytics. |
apphosting_fetch_logs | apphosting | Permet de récupérer les journaux les plus récents pour un backend App Hosting spécifié. Si buildLogs est spécifié, les journaux du processus de compilation de la dernière compilation sont renvoyés. Les journaux les plus récents sont listés en premier. |
apphosting_list_backends | apphosting | Utilisez cette méthode pour récupérer la liste des backends App Hosting dans le projet actuel. Une liste vide signifie qu'il n'y a pas de backend. uri correspond à l'URL publique du backend. Un backend fonctionnel aura un tableau managed_resources contenant une entrée run_service . run_service.service correspond au nom de ressource du service Cloud Run qui dessert le backend App Hosting. Le dernier segment de ce nom correspond à l'ID du service. domains est la liste des domaines associés au backend. Ils sont de type CUSTOM ou DEFAULT . Chaque backend doit disposer d'un domaine DEFAULT . Le domaine réel qu'un utilisateur utiliserait pour se connecter au backend est le dernier paramètre du nom de ressource du domaine. Si un domaine personnalisé est correctement configuré, son état se termine par ACTIVE . |
realtimedatabase_get_data | realtimedatabase | Utilisez-le pour récupérer des données à l'emplacement spécifié dans une base de données Firebase Realtime Database. |
realtimedatabase_set_data | realtimedatabase | Utilisez cette méthode pour écrire des données à l'emplacement spécifié dans une base de données Firebase Realtime Database. |
Ressources
Le serveur MCP fournit des ressources, qui sont des fichiers de documentation destinés à être utilisés par les LLM. Les modèles compatibles avec l'utilisation de ressources incluront automatiquement les ressources pertinentes dans le contexte de la session.
Le tableau suivant décrit les ressources mises à disposition par le serveur MCP.
Nom de la ressource | Description |
---|---|
backend_init_guide | Guide d'initialisation du backend Firebase : guide l'agent de codage pour configurer les services de backend Firebase dans le projet actuel |
ai_init_guide | Guide d'initialisation de Firebase GenAI : guide l'agent de codage pour configurer les fonctionnalités d'IA générative dans le projet actuel à l'aide de Firebase |
data_connect_init_guide | Guide d'initialisation de Firebase Data Connect : guide l'agent de codage pour configurer l'accès à Data Connect pour PostgreSQL dans le projet actuel |
firestore_init_guide | Guide d'initialisation de Firestore : guide l'agent de codage pour configurer Firestore dans le projet actuel |
firestore_rules_init_guide | Guide d'initialisation des règles Firestore : guide l'agent de codage pour configurer les règles de sécurité Firestore dans le projet |
rtdb_init_guide | Guide d'initialisation de Firebase Realtime Database : guide l'agent de codage pour configurer Realtime Database dans le projet actuel |
auth_init_guide | Guide d'initialisation de Firebase Authentication : guide l'agent de codage pour configurer Firebase Authentication dans le projet actuel |
hosting_init_guide | Guide de déploiement Firebase Hosting : guide l'agent de codage pour le déploiement sur Firebase Hosting dans le projet actuel |
documentation | Documentation Firebase : charge le contenu en texte brut de la documentation Firebase.Par exemple, https://firebase.google.com/docs/functions devient firebase://docs/functions . |