Aller au contenu

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

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

  • 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 admin sur le projet.

Dans Claude (claude.ai ou Claude Desktop), ouvrez Settings → Connectors, choisissez Add custom connector, nommez-le FireCMS et collez :

https://api.firecms.co/mcp

Dans 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/mcp

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

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 projects
List the collections in my FireCMS project <votre-project-id>
Add a "featured" boolean property to the products collection, shown after the title

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 :

  1. Demandez à l’agent de connecter votre projet. connect_project_to_firecms répond avec un lien vers app.firecms.co/new.
  2. Choisissez-y le projet et suivez les étapes. Cela prend environ une minute.
  3. De retour dans votre client, setup_all_collections dé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.

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

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

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

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

  1. list_firebase_projects — voir quels projets vous pouvez connecter, et ce qu’il leur manque encore
  2. get_project_setup_status — examiner un projet en détail (facultatif)
  3. enable_project_apis — uniquement si apisEnabled vaut false
  4. enable_firestore — uniquement si firestoreEnabled vaut false (l’emplacement est définitif)
  5. connect_project_to_firecms — compte de service, utilisateur administrateur et règles de sécurité
  6. setup_all_collections — déduire toutes les collections racines à partir des données existantes
  • 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 login en 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_projects retire le compte de service de chaque projet de sa réponse.

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.