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. Le serveur Firebase MCP fonctionne avec n'importe quel outil pouvant servir de client MCP, y compris Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor et bien d'autres.

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.

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.

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

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", "experimental:mcp"]
    }
  }
}

CLI Gemini et Gemini Code Assist

Pour configurer la CLI Gemini ou Gemini Code Assist afin d'utiliser le serveur MCP Firebase, modifiez ou créez les fichiers de configuration :

  • 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", "experimental:mcp"]
    }
  }
}

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"]
    }
  }
}

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 experimental: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 experimental:mcp - ✓ Connected

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"]
   }
}

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 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 de travail par défaut est celui 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

Le tableau suivant liste les outils mis à disposition par le serveur MCP. Vous pouvez également afficher ces informations à l'aide de la commande suivante :

npx firebase-tools@latest experimental:mcp --generate-tool-list
Nom de l'outil Groupe de caractéristiques Description
firebase_login core Connecte l'utilisateur à la CLI Firebase et au serveur MCP.
firebase_logout core Déconnecter la CLI de Firebase
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 Accédez à un assistant IA spécialisé dans tous les aspects de Firebase. Utilisez cet outil pour obtenir des informations détaillées, des bonnes pratiques, des étapes de dépannage, des exemples de code et une aide contextuelle concernant les services, les fonctionnalités et la configuration des projets Firebase. Cela inclut les questions sur Firestore, Authentication, Cloud Functions, Hosting, Storage, Analytics et plus encore. Il peut également fournir des insights basés sur le contexte du projet Firebase actuel.
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 régionale pour les SMS 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_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 Génère un schéma Firebase Data Connect en fonction de la description d'une application 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 du prompt fourni.
dataconnect_list_services dataconnect Lister les services Firebase Data Connect locaux et de backend existants
dataconnect_execute dataconnect Exécute une opération GraphQL sur un service Data Connect ou son émulateur.
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_add_note crashlytics Ajoutez une note à un problème depuis Crashlytics.
crashlytics_delete_note crashlytics Supprimez une note d'un problème dans Crashlytics.
crashlytics_get_issue_details crashlytics Obtient les détails d'un problème Crashlytics spécifique.
crashlytics_get_sample_crash_for_issue crashlytics Récupère l'exemple de plantage pour un problème.
crashlytics_list_notes crashlytics Répertoriez toutes les notes d'un problème dans Crashlytics.
crashlytics_list_top_devices crashlytics Lister les principaux appareils de Crashlytics pour une application.
crashlytics_list_top_issues crashlytics Liste les principaux plantages de Crashlytics qui se produisent dans l'application.
crashlytics_list_top_operating_systems crashlytics Liste les principaux systèmes d'exploitation de Crashlytics pour une application.
crashlytics_list_top_versions crashlytics Lister les principales versions d'une application à partir de Crashlytics.
crashlytics_update_issue crashlytics Mettez à jour l'état d'un problème dans Crashlytics.
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 de 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.
database_get_data base de données Renvoie les données RTDB de l'emplacement spécifié.
database_set_data base de données Écrit des données RTDB à l'emplacement spécifié
database_get_rules base de données Obtenir les règles d'une base de données RTDB
database_validate_rules base de données Valide les règles d'une base de données RTDB