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

Il ne s'agit que d'une liste partielle. Pour obtenir la liste complète des outils disponibles pour votre éditeur, consultez la section Fonctionnalités du serveur.

Avant de commencer

  1. Assurez-vous que votre installation de Node.js et npm fonctionne correctement.

  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 avec 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 affiche 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 pour 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 pour qu'il utilise le serveur MCP Firebase, modifiez le fichier cline_mcp_settings.json. Pour ouvrir ou créer ce fichier, cliquez sur l'icône des 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 pour qu'il utilise le serveur MCP Firebase, modifiez le fichier .cursor/mcp.json (pour ne configurer qu'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, indiqué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 des groupes de caractéristiques à activer, séparés par une virgule. Utilisez-le pour limiter les outils exposés uniquement aux fonctionnalités que vous utilisez activement. Notez que les outils de base sont toujours disponibles.

Exemple :

"firebase": {
  "command": "npx",
  "args": [
    "-y",
    "firebase-tools@latest", "experimental:mcp",
    "--dir", "/Users/turing/my-project",
    "--only", "auth,firestore,storage"
  ]
}

Capacité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 Récupère la configuration du SDK Admin pour le projet en cours.
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 dans votre projet Firebase pour le Web, iOS ou Android.
firebase_create_android_sha core Ajoute un hachage de certificat SHA à une application Android existante.
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 Met à jour 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. Toutes les fonctionnalités sont facultatives. Indiquez 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.
firestore_delete_document firestore Supprime un document Firestore d'une base de données du projet en cours en fonction des chemins d'accès complets des documents. Utilisez cette option si vous connaissez le chemin d'accès exact d'un document.
firestore_get_documents firestore Récupère un ou plusieurs documents Firestore à partir d'une base de données du projet en cours en fonction des chemins d'accès complets des documents. Utilisez cette option si vous connaissez le chemin d'accès exact d'un document.
firestore_list_collections firestore Récupère une liste de collections à partir d'une base de données Firestore du projet en cours.
firestore_query_collection firestore Récupère un ou plusieurs documents Firestore à partir d'une collection, qui est une base de données du projet en cours, par une collection avec un chemin d'accès au document complet. 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 en cours.
firestore_validate_rules firestore Vérifie la source de règles Firestore fournie pour détecter les erreurs de syntaxe et de validation. Fournissez SOIT le code source à valider SOIT un 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 ID utilisateur.
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 approuvées associées à un utilisateur (par exemple, en le marquant comme administrateur). La taille des revendications est limitée, et leur nom et leur valeur doivent être succincts. Spécifiez UN SEUL des paramètres value ou json_value.
auth_set_sms_region_policy auth Définit une règle de région SMS pour Firebase Auth afin de restreindre les régions pouvant recevoir des messages texte en fonction d'une liste d'autorisation ou de refus de codes pays. Si elle est configurée, cette règle remplace toutes les règles existantes.
dataconnect_list_services dataconnect Répertoriez les services Firebase Data Connect disponibles dans le projet en cours.
dataconnect_get_schema dataconnect Récupérez des informations sur le schéma Firebase Data Connect du 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, qui incluent les requêtes GraphQL prédéfinies accessibles aux SDK client.
dataconnect_execute_graphql dataconnect Exécute un 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 en cours.
storage_validate_rules stockage Vérifie la source des règles de stockage pour détecter les erreurs de syntaxe et de validation. Fournissez SOIT le code source à valider SOIT un 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 sujet 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 de configuration à distance pour le projet
remoteconfig_publish_template remoteconfig Publie un nouveau modèle de configuration à distance pour le projet
remoteconfig_rollback_template remoteconfig Effectuer un rollback vers une version spécifique du modèle Remote Config pour un projet
crashlytics_list_top_issues crashlytics Répertoriez les principaux plantages de Crashlytics dans l'application.