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. Le serveur MCP Firebase fonctionne avec n'importe quel outil pouvant servir de client MCP, y compris Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor, etc.
Un éditeur configuré pour utiliser le serveur MCP Firebase 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 un schéma 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.
Lorsque le serveur Firebase MCP effectue des appels d'outil, il utilise les mêmes identifiants utilisateur qui autorisent la CLI Firebase dans l'environnement où elle 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.
Authentifiez la CLI Firebase en exécutant la commande suivante :
npx -y firebase-tools@latest login --reauth
Le serveur MCP Firebase utilise la CLI pour gérer l'authentification avec vos projets Firebase. Vous devez vous authentifier auprès de la CLI avant d'utiliser le serveur MCP. Si vous essayez d'utiliser le serveur sans vous connecter ou si votre jeton d'authentification a expiré, le serveur affichera un message d'erreur vous invitant à vous réauthentifier.
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. Voici des instructions spécifiques pour certains outils populaires :
Configuration de base
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", "experimental: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", "experimental: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", "experimental:mcp"]
}
}
Firebase Studio
Pour configurer Firebase Studio afin qu'il utilise le serveur MCP Firebase, modifiez ou créez le ou les fichiers de configuration :
- Le chat Gemini dans Firebase utilise
.idx/mcp.json
. - La CLI Gemini utilise
.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", "experimental:mcp"]
}
}
}
Copilot dans Visual Studio Code
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", "experimental: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", "experimental:mcp"]
}
}
}
Éditeur Windsurf
Pour configurer l'éditeur Windsurf, modifiez le fichier ~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental: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 elle n'est pas 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", "experimental:mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
Fonctionnalités du serveur MCP
Nom de l'outil | Groupe de caractéristiques | Description |
---|---|---|
firebase_get_project | core | Récupère des informations sur le projet Firebase actuellement actif. |
firebase_list_apps | core | Récupère les applications enregistrées dans le projet Firebase actuel. |
firebase_get_admin_sdk_config | core | Obtient la configuration du SDK Admin pour le projet actuel. |
firebase_list_projects | core | Récupère une liste de projets Firebase jusqu'au nombre total spécifié. |
firebase_get_sdk_config | core | Récupère les informations de configuration du SDK Firebase pour la plate-forme spécifiée. Vous devez spécifier une plate-forme ou un app_id. |
firebase_create_project | core | Crée un projet Firebase. |
firebase_create_app | core | Crée une application Web, iOS ou Android dans votre projet Firebase. |
firebase_create_android_sha | core | Ajoute un hachage de certificat SHA à une application Android existante. |
firebase_consult_assistant | core | Envoyez une question à un assistant IA spécialement conçu pour répondre aux questions sur Firebase. |
firebase_get_environment | core | Récupère des informations sur l'environnement Firebase actuel, y compris l'utilisateur authentifié actuel, le répertoire du projet, le projet actif, etc. |
firebase_update_environment | core | Mise à jour de la configuration de l'environnement Firebase, comme le répertoire du projet, le projet actif, le compte utilisateur actif, etc. Utilisez firebase_get_environment pour afficher l'environnement actuellement configuré. |
firebase_init | core | Initialise les fonctionnalités Firebase sélectionnées dans l'espace de travail (Firestore, Data Connect, Realtime Database). Toutes les fonctionnalités sont facultatives. Ne fournissez que 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 . |
firestore_delete_document | firestore | Supprime des documents Firestore d'une base de données du projet actuel à l'aide de chemins d'accès complets aux documents. Utilisez cette option si vous connaissez le chemin exact d'un document. |
firestore_get_documents | firestore | Récupère un ou plusieurs documents Firestore d'une base de données du projet actuel à l'aide de chemins d'accès complets aux documents. Utilisez cette option si vous connaissez le chemin exact d'un document. |
firestore_list_collections | firestore | Récupère une liste de collections à partir d'une base de données Firestore dans le projet actuel. |
firestore_query_collection | firestore | Récupère un ou plusieurs documents Firestore d'une collection, qui est une base de données du projet actuel, à partir d'une collection avec 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. |
firestore_get_rules | firestore | Récupère les règles de sécurité Firestore actives pour le projet actuel. |
firestore_validate_rules | firestore | Vérifie la syntaxe et les erreurs de validation de la source des règles Firestore fournie. Fournissez le code source à valider OU le chemin d'accès à un fichier source. |
auth_get_user | auth | Récupère un utilisateur en fonction d'une adresse e-mail, d'un numéro de téléphone ou d'un UID. |
auth_disable_user | auth | Désactive ou active un utilisateur en fonction d'un UID. |
auth_list_users | auth | Récupère tous les utilisateurs du projet jusqu'à la limite spécifiée. |
auth_set_claim | auth | Définit une revendication personnalisée sur le compte d'un utilisateur spécifique. Utilisez-le pour créer des valeurs fiables associées à un utilisateur (par exemple, pour le marquer comme administrateur). Les revendications sont limitées en taille et doivent être concises en termes de nom et de valeur. Spécifiez UNIQUEMENT l'UN des paramètres value ou json_value . |
auth_set_sms_region_policy | auth | Définit une règle de région pour les SMS pour Firebase Auth afin de 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_list_services | dataconnect | Liste les services Firebase Data Connect disponibles dans le projet actuel. |
dataconnect_generate_schema | dataconnect | Génère un schéma Firebase Data Connect en fonction de la description d'une application fournie par l'utilisateur. |
dataconnect_generate_operation | dataconnect | Génère 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_get_schema | dataconnect | Récupérez des informations sur le schéma Firebase Data Connect dans le projet, y compris les sources de données Cloud SQL et le schéma GraphQL décrivant le modèle de données. |
dataconnect_get_connectors | dataconnect | Obtenez les connecteurs Firebase Data Connect dans le projet, y compris les requêtes GraphQL prédéfinies accessibles aux SDK client. |
dataconnect_execute_graphql | dataconnect | Exécute une requête GraphQL arbitraire sur un service Data Connect ou son émulateur. |
dataconnect_execute_graphql_read | dataconnect | Exécute une requête GraphQL arbitraire sur un service Data Connect ou son émulateur. Impossible d'écrire les données. |
dataconnect_execute_mutation | dataconnect | Exécute une mutation Data Connect déployée sur un service ou son émulateur. Peut lire et écrire des données. |
dataconnect_execute_query | dataconnect | Exécute une requête Data Connect déployée sur un service ou son émulateur. Impossible d'écrire des données. |
storage_get_rules | stockage | Récupère les règles de sécurité Storage actives pour le projet actuel. |
storage_validate_rules | stockage | Vérifie la syntaxe et les erreurs de validation dans la source des règles de stockage fournie. Fournissez le code source à valider OU le chemin d'accès à un fichier source. |
storage_get_object_download_url | stockage | Récupère l'URL de téléchargement d'un objet dans Firebase Storage. |
messaging_send_message | messagerie | Envoie 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. |
remoteconfig_get_template | remoteconfig | Récupère un modèle Remote Config pour le projet. |
remoteconfig_publish_template | remoteconfig | Publie un nouveau modèle Remote Config pour le projet. |
remoteconfig_rollback_template | remoteconfig | Effectuer un rollback vers une version spécifique d'un modèle Remote Config pour un projet |
crashlytics_list_top_issues | crashlytics | Liste les principaux plantages de Crashlytics qui se produisent dans l'application. |
apphosting_fetch_logs | apphosting | Récupère les journaux les plus récents pour un backend App Hosting spécifié. Si buildLogs est spécifié, les journaux du processus de compilation pour la dernière compilation sont renvoyés. Les journaux les plus récents sont listés en premier. |
apphosting_list_backends | apphosting | Récupère la liste des backends App Hosting du 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 . |