Connecter un agent IA à FireCMS Cloud (serveur MCP)
FireCMS Cloud héberge un serveur MCP, afin que des assistants IA comme Claude, Claude Code ou Cursor puissent travailler directement sur votre projet : parcourir et modifier les données, créer et modifier des collections, déduire des schémas à partir des documents déjà présents dans votre Firestore, et gérer les utilisateurs.
Il existe une seule adresse, la même pour tout le monde :
https://api.firecms.co/mcpAjoutez-la à votre client et connectez-vous à FireCMS Cloud dans le navigateur. Rien à installer. L’agent agit avec votre propre compte : il ne peut donc jamais faire ce que vous ne pourriez pas faire vous-même dans FireCMS Cloud.
Avant de commencer
Section intitulée « Avant de commencer »- Un client compatible MCP : Claude (claude.ai ou Claude Desktop), Claude Code, Cursor, ou tout autre client qui parle le Model Context Protocol.
- Un compte FireCMS Cloud. La lecture est ouverte à tout membre du projet ; créer ou modifier
des collections, des données et des utilisateurs nécessite le rôle
adminsur le projet.
Ajouter le serveur MCP de FireCMS
Section intitulée « Ajouter le serveur MCP de FireCMS »Dans Claude (claude.ai ou Claude Desktop), ouvrez Settings → Connectors, choisissez
Add custom connector, nommez-le FireCMS et collez :
https://api.firecms.co/mcpDans Claude Code, exécutez ceci dans votre terminal, puis lancez /mcp dans Claude Code et
choisissez Authenticate :
claude mcp add --transport http firecms https://api.firecms.co/mcpDans Cursor, ou tout autre client qui accepte des serveurs distants par URL, ajoutez ceci à sa
configuration MCP (.cursor/mcp.json dans votre projet, ou ~/.cursor/mcp.json pour tous les projets) :
{ "mcpServers": { "firecms": { "url": "https://api.firecms.co/mcp" } }}Se connecter
Section intitulée « Se connecter »La première fois que votre client se connecte, il ouvre FireCMS Cloud dans votre navigateur. Connectez-vous si ce n’est pas déjà fait, vérifiez quelle application fait la demande et vers où elle vous renverra, puis approuvez. Votre client reste ensuite connecté.
Pour le déconnecter, retirez le connecteur de votre client.
Demandez à l’agent quelque chose comme :
List my FireCMS projectsList the collections in my FireCMS project <votre-project-id>Add a "featured" boolean property to the products collection, shown after the titleIntégrer un projet Firebase existant
Section intitulée « Intégrer un projet Firebase existant »Connecter un projet crée un compte de service dans votre projet Google Cloud, ce qui exige vos propres autorisations Google Cloud. Le serveur hébergé ne les détient jamais : cette étape-là se fait donc dans FireCMS Cloud :
- Demandez à l’agent de connecter votre projet.
connect_project_to_firecmsrépond avec un lien vers app.firecms.co/new. - Choisissez-y le projet et suivez les étapes. Cela prend environ une minute.
- De retour dans votre client,
setup_all_collectionsdéduit toutes les collections racines à partir des données existantes.
L’étape 3 est celle où un projet existant devient un CMS opérationnel : FireCMS échantillonne les documents de chaque collection racine, déduit les types de propriétés et choisit les noms d’affichage, un nom au singulier, une icône et un groupe de navigation.
Si vous préférez que l’agent se charge lui-même de toute la connexion, y compris l’activation des API et la création de la base Firestore, exécutez le serveur en local : il se connecte avec votre compte Google, et peut donc le faire.
Construire des collections à partir de données existantes
Section intitulée « Construire des collections à partir de données existantes »| Outil | Description |
|---|---|
get_root_collections |
Liste les collections racines Firestore d’un projet (lecture en direct) |
list_subcollections |
Liste les sous-collections d’un document, pour explorer les données imbriquées |
list_databases |
Liste les bases de données Firestore (utile seulement au-delà de (default)) |
preview_inferred_schema |
Déduit un schéma à partir d’un échantillon de documents sans l’enregistrer |
infer_collections_from_data 🔒 |
Déduit et enregistre des collections pour les chemins choisis |
setup_all_collections 🔒 |
Déduit et enregistre toutes les collections racines non encore associées |
preview_inferred_schema est l’option non destructive : il échantillonne jusqu’à 200 documents,
déduit les types, les énumérations et les validations, et renvoie un brouillon que vous pouvez
modifier puis persister avec save_collection_schema. Il fonctionne aussi pour les sous-collections
et pour tout chemin que les outils en masse ignorent.
infer_collections_from_data et setup_all_collections écrivent le résultat directement dans le
projet. Tous deux ignorent les chemins déjà associés à une collection : vous pouvez donc les relancer
à mesure que votre base grandit. Ils refusent également les chemins sans documents — sans rien à
échantillonner, un modèle inventerait un schéma à partir du seul nom du chemin.
Outils disponibles
Section intitulée « Outils disponibles »Les outils marqués 🔒 nécessitent le rôle admin sur le projet. Les outils marqués 💻 ne sont proposés
que par le serveur local.
Chaque outil indique à votre client s’il se contente de lire ou s’il modifie quelque chose, et si une modification peut écraser ou supprimer des données : les clients qui demandent confirmation avant d’écrire savent ainsi quand la demander.
| Outil | Description |
|---|---|
firecms_get_current_user |
Affiche l’utilisateur courant |
firecms_login 💻 |
Se connecter via le navigateur (Google OAuth) |
firecms_logout 💻 |
Se déconnecter |
Mise en route
Section intitulée « Mise en route »| Outil | Description |
|---|---|
connect_project_to_firecms |
Connecte un projet Firebase existant. Hébergé : renvoie le lien pour le faire dans FireCMS Cloud. Local : le connecte et applique les règles de sécurité nécessaires |
list_firebase_projects 💻 |
Projets Google Cloud accessibles, avec leur état de préparation pour FireCMS |
get_project_setup_status 💻 |
État de préparation détaillé d’un projet |
list_firestore_locations 💻 |
Emplacements disponibles pour une nouvelle base Firestore |
enable_project_apis 💻 |
Active les API Google Cloud nécessaires à FireCMS |
enable_firestore 💻 |
Crée la base Firestore par défaut (l’emplacement est définitif) |
apply_firestore_security_rules 🔒 |
Ajoute la règle d’accès FireCMS à Firestore et Storage (idempotent) |
create_firecms_webapp 🔒 |
Relance la création de l’application web si elle a échoué lors de la connexion |
Projets et configuration
Section intitulée « Projets et configuration »| Outil | Description |
|---|---|
list_projects |
Liste vos projets FireCMS Cloud |
get_project_config 🔒 |
Récupère la configuration complète du projet (nom, couleurs, offre, fonctionnalités) |
update_project_name 🔒 |
Renomme un projet |
update_project_colors 🔒 |
Met à jour les couleurs de marque principale et secondaire |
update_default_locale 🔒 |
Change la langue par défaut |
toggle_text_search 🔒 |
Active ou désactive la recherche de texte locale |
toggle_entity_history 🔒 |
Active ou désactive l’historique des entités |
Utilisateurs
Section intitulée « Utilisateurs »| Outil | Description |
|---|---|
list_users 🔒 |
Liste les utilisateurs du projet et leurs rôles |
add_user 🔒 |
Invite un utilisateur |
update_user_roles 🔒 |
Modifie les rôles d’un utilisateur |
remove_user 🔒 |
Supprime un utilisateur |
Schémas de collections
Section intitulée « Schémas de collections »| Outil | Description |
|---|---|
list_collection_schemas 🔒 |
Liste tous les schémas de collection enregistrés |
get_collection_schema 🔒 |
Récupère le schéma complet d’une collection |
save_collection_schema 🔒 |
Crée ou remplace un schéma de collection |
update_collection_schema 🔒 |
Met partiellement à jour un schéma de collection |
delete_collection_schema 🔒 |
Supprime un schéma de collection (les données sont intactes) |
save_property 🔒 |
Ajoute ou met à jour une propriété d’une collection |
delete_property 🔒 |
Retire une propriété d’un schéma de collection |
generate_collection |
Génère un schéma de collection par IA à partir d’un prompt |
modify_collection |
Modifie un schéma existant par IA à partir d’un prompt |
Documents
Section intitulée « Documents »| Outil | Description |
|---|---|
list_documents |
Interroge les documents (filtres, tri, pagination) |
get_document |
Récupère un document par son chemin |
create_document |
Crée un document |
update_document |
Met partiellement à jour un document |
delete_document |
Supprime un document |
count_documents |
Compte les documents d’une collection |
export_collection |
Exporte les données d’une collection en JSON |
import_documents 🔒 |
Importe des documents en masse (500 max. par appel) |
Ressources
Section intitulée « Ressources »Les clients qui prennent en charge les ressources MCP peuvent aussi les lire directement :
| URI | Description |
|---|---|
firecms://projects/{id}/collections |
Collections Firestore de premier niveau |
firecms://projects/{id}/users |
Utilisateurs du projet et rôles |
firecms://projects/{id}/schemas |
Tous les schémas de collection (arbre de configuration complet) |
firecms://projects/{id}/config |
Instantané de la configuration du projet |
Exécuter le serveur en local
Section intitulée « Exécuter le serveur en local »Le même serveur est publié sous le nom @firecms/mcp-server
et peut s’exécuter sur votre machine via stdio. Il nécessite Node.js 18 ou une version plus récente.
En local, il se connecte avec votre compte Google plutôt qu’en passant par FireCMS Cloud, et c’est ce
qui lui permet aussi d’activer des API, de créer des bases Firestore et de connecter des projets de bout
en bout.
Dans Claude Code :
claude mcp add firecms -- npx -y @firecms/mcp-serverPour Claude Desktop, Cursor ou tout autre client MCP, ajoutez ceci au fichier de
configuration MCP du client (claude_desktop_config.json pour Claude Desktop) :
{ "mcpServers": { "firecms": { "command": "npx", "args": ["-y", "@firecms/mcp-server"] } }}Redémarrez ensuite votre client et demandez à l’agent d’exécuter l’outil firecms_login. Un navigateur
s’ouvre pour la connexion Google et les identifiants sont enregistrés dans ~/.firecms/tokens.json,
le même fichier que celui utilisé par la CLI FireCMS.
Vous ne le faites qu’une fois. Utilisez firecms_logout pour vous déconnecter.
Avec le serveur local, toute la connexion d’un projet se fait depuis l’agent :
list_firebase_projects— voir quels projets vous pouvez connecter, et ce qu’il leur manque encoreget_project_setup_status— examiner un projet en détail (facultatif)enable_project_apis— uniquement siapisEnabledvaut falseenable_firestore— uniquement sifirestoreEnabledvaut false (l’emplacement est définitif)connect_project_to_firecms— compte de service, utilisateur administrateur et règles de sécuritésetup_all_collections— déduire toutes les collections racines à partir des données existantes
Permissions et sécurité
Section intitulée « Permissions et sécurité »- Authentification : le serveur hébergé utilise OAuth. Vous approuvez chaque client dans FireCMS
Cloud, et il reçoit un jeton valable pour votre seul compte. Le serveur local utilise Google OAuth
dans votre navigateur, le même flux que
firecms loginen CLI. - L’autorisation est vérifiée par projet : toute écriture exige le rôle
admin. - Le serveur hébergé ne détient aucun identifiant Google Cloud. Il peut faire ce que vous pouvez faire dans FireCMS Cloud, jamais ce que vous pouvez faire sur Google Cloud.
- Jetons : le serveur hébergé ne stocke ses jetons que sous forme de hachages ; les jetons d’accès
durent une heure et les jetons d’actualisation sont remplacés à chaque utilisation. Le serveur local
conserve ses jetons dans
~/.firecms/tokens.json, partagé avec la CLI. - Les identifiants n’atteignent jamais le modèle :
list_projectsretire le compte de service de chaque projet de sa réponse.
Dépannage
Section intitulée « Dépannage »Le client n’arrive pas à se connecter, ou redemande sans cesse de se connecter. Retirez le
connecteur et ajoutez-le de nouveau avec https://api.firecms.co/mcp, puis approuvez la demande dans
la fenêtre du navigateur qui s’ouvre.
Les outils n’apparaissent pas après modification d’un fichier de configuration. Les clients MCP lisent leur configuration au démarrage : redémarrez complètement le client.
Une écriture échoue avec une erreur de permissions. Le compte avec lequel vous êtes connecté a
besoin du rôle admin sur ce projet. Vérifiez-le dans la section Utilisateurs du projet sur
FireCMS Cloud, ou demandez à un administrateur de vous l’accorder.
Aucune collection n’apparaît après la connexion d’un projet. Vérifiez que Firebase Authentication
est activé et que les règles de sécurité ont bien été appliquées (apply_firestore_security_rules),
puis exécutez setup_all_collections.
Le serveur local indique que vous n’êtes pas connecté. Exécutez l’outil firecms_login. Si la
fenêtre du navigateur ne s’ouvre pas, lancez npx @firecms/mcp-server --help dans un terminal pour
confirmer que le paquet s’installe et démarre.
