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 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

  1. Assurez-vous que Node.js et npm sont correctement installés.

  2. 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 contenant firebase.json, pour définir un contexte de projet pour le serveur MCP. Si elle n'est pas 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", "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.