Serveur MCP Firebase

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 contenant firebase.json, pour définir un contexte de projet pour le serveur MCP. Si aucune valeur n'est spécifiée, les outils get_project_directory et set_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.