Une application métier branchée sur un serveur MCP, avec découverte des outils à l’exécution. Le prompt Lovable contient déjà la connexion au MCP BraindCode Build, la découverte des outils et les règles de sécurité.
Tu construis Heure et format optimaux, une extension du Hackathon BraindCode.
Projet : Heure et format optimaux
Produit cible : RapidoCMS
Type de projet : Outil connecté — Une application métier branchée sur un serveur MCP, avec découverte des outils à l’exécution.
Promesse : quand et comment publier
Problème : Les équipes de contenu gèrent quand et comment publier entre brouillons, calendriers, médias et statistiques de plusieurs canaux. Le contexte de marque se perd pendant les reprises et les performances sont rarement réinjectées dans le travail suivant. La validation finale devient longue et difficile à tracer. Heure et format optimaux doit structurer la préparation sans publier ni modifier un contenu sans accord explicite.
Objectif : Permettre aux utilisateurs de RapidoCMS de piloter quand et comment publier depuis un espace cohérent, avec sources, variantes et validations clairement visibles.
PILE TECHNIQUE
TanStack Start, React, Tailwind, composants shadcn, Lovable Cloud pour l’authentification, la base de données et les fonctions serveur. Tous les appels MCP passent par des fonctions serveur.
IDENTITÉ VISUELLE
CHARTE GRAPHIQUE — RapidoCMS
Logo officiel du logiciel : https://build.braindcode.com/__l5e/assets-v1/15bbe9bb-36a4-48b9-aa00-51c82f7b1466/rapidocms-logo.png
Logo BraindCode : https://build.braindcode.com/__l5e/assets-v1/b8ab3ddf-7aea-424d-9772-b9ef3a681d1d/braindcode-logo.jpg
Couleurs :
- primary : #03A9F5
- night : #161B2C
- ink : #0F172A
- surface : #FFFFFF
- surface_alt : #F0F9FF
- border : #D7EAF7
- success : #10B981
- warning : #F59E0B
- danger : #EF4444
Typographie : titres Poppins, 600 / corps Poppins, 400 / technique JetBrains Mono.
Titre 30/38, sous-titre 18/26, corps 15/24, méta SEO 13/20 en monospace.
Rayon 8 px pour les cartes et champs, 6 px pour les boutons, 999 px pour les badges.
Échelle 4 / 8 / 12 / 16 / 24 / 32 / 48. Interface dense : préfère 12 et 16 dans les tableaux.
Icônes lucide-react, trait 1.5 px, taille 16 ou 20 px, jamais colorées en plein.
Règles d'interface :
- Interface éditoriale : calendrier de publication, file de brouillons, aperçus par réseau.
- Aperçus au bon format : carré 1:1, portrait 4:5, paysage 16:9, story 9:16.
- Statuts brouillon / planifié / publié / échec en badges distincts, jamais uniquement par la couleur.
- Balises SEO, URL et méta-descriptions en monospace avec compteur de caractères.
Interdits :
- Aucun emoji, nulle part.
- Aucun rendu 3D photoréaliste ni illustration décorative générique.
- Aucun dégradé violet/indigo sur fond blanc.
- Aucun logo de marque inventé : n'utilise que les URL de logo fournies.
- La couleur du logiciel reste un accent (bordures, badges, filets, états actifs), jamais un aplat de fond plein écran.
VISUELS DU PROJET
- Image officielle du projet (couverture 16:9) : https://build.braindcode.com/__l5e/assets-v1/4d1843a2-d4b2-40f7-ba31-4ae3efc8bc64/heure-format-optimaux.jpg
- Accroche : Publiez au bon moment
- Punchline : Construisez l'outil qui trouve l'heure et le format gagnants.
- Logo du logiciel : https://build.braindcode.com/__l5e/assets-v1/15bbe9bb-36a4-48b9-aa00-51c82f7b1466/rapidocms-logo.png
- Logo BraindCode : https://build.braindcode.com/__l5e/assets-v1/b8ab3ddf-7aea-424d-9772-b9ef3a681d1d/braindcode-logo.jpg
Reprends l'accroche et la punchline dans l'écran d'accueil et la page de partage. Réutilise l'image officielle comme visuel de couverture, ne la remplace pas par une image générée.
VARIABLES CSS À DÉCLARER
--color-primary: #03A9F5;
--color-night: #161B2C;
--color-ink: #0F172A;
--color-surface: #FFFFFF;
--color-surface-alt: #F0F9FF;
--color-border: #D7EAF7;
--color-success: #10B981;
--color-warning: #F59E0B;
--color-danger: #EF4444;
--font-heading: Poppins, 600;
--font-body: Poppins, 400;
--font-mono: JetBrains Mono;
Tu vas produire l'interface d'une extension tierce du logiciel RapidoCMS, éditée par un développeur indépendant dans le cadre du Hackathon BraindCode.\n\nIDENTITÉ À RESPECTER\nMon extension est un produit distinct : elle porte son propre nom et sa propre identité, mais elle doit être visuellement compatible avec RapidoCMS et signaler clairement son appartenance à l'écosystème BraindCode.\n\nCouleur d'accent produit : #03A9F5\nTypographie produit : Arial / Poppins, fallback Poppins\nLogo produit : https://build.braindcode.com/__l5e/assets-v1/15bbe9bb-36a4-48b9-aa00-51c82f7b1466/rapidocms-logo.png, à afficher uniquement dans une mention d'appartenance du type « Extension pour RapidoCMS », jamais comme logo principal de mon application.\n\nRÈGLES D'USAGE DES LOGOS\nNe jamais déformer, incliner, recolorer ou recomposer le logo RapidoCMS ni le logo BraindCode.\nNe jamais laisser croire que l'extension est éditée par BraindCode.\nRespecter la zone de protection autour de chaque logo.\n\nSYSTÈME VISUEL DEMANDÉ\nFond clair par défaut, surfaces sombres en #161B2C, texte #000000, gris de bordure #C1C1C1, une seule couleur d'accent : #03A9F5. Monospace pour tout élément technique.\nComposants : cartes, tableaux denses, badges d'état, barre latérale de navigation.\nInterface en français, sobre, orientée métier.
MVP À LIVRER
- tableau de synthèse de quand et comment publier
- liste des contenus et variantes
- éditeur ou prévisualisation
- contrôles de conformité visibles
- circuit de validation
DONNÉES NÉCESSAIRES
- contenus et versions
- canaux, campagnes et calendriers
- médias et règles de marque
- performances et commentaires
ENTITÉS À MODÉLISER
- contenu
- version
- canal
- campagne
- règle de marque
CAPACITÉS MCP À COUVRIR (à découvrir à l’exécution, jamais en dur)
- lire les contenus et leurs versions
- consulter calendriers et performances
- filtrer par canal, marque et période
- obtenir les statuts de validation
Connecte d'abord le serveur BraindCode Build à l'adresse https://build.braindcode.com/api/mcp. Utilise get_project_context pour récupérer le contexte de cette idée et list_connectors pour connaître uniquement les connecteurs réellement configurés. N'invente jamais d'adresse MCP tierce.
Serveur MCP concerné : RapidoCMS — récupère son adresse avec get_project_context. Authentification OAuth 2.0 révocable. Prévois néanmoins la connexion de plusieurs serveurs : un seul mécanisme, plusieurs connecteurs découverts via list_connectors.
CONNEXION AUX SERVEURS MCP (RapidoCMS)
Construis une couche de connexion MCP générique, utilisable pour FoodEatUp, RapidoCRM, RapidoCMS et RapidoRH.
1. Table de connecteurs : clé du serveur, nom affiché, URL HTTPS, type d'authentification (aucun, clé, OAuth), statut (connecte, deconnecte, erreur), dernier test, message d'erreur. Lecture réservée aux comptes autorisés.
2. Table de secrets séparée : jeton d'accès, jeton de rafraîchissement, clé API, expiration. Jamais lisible depuis le navigateur, jamais renvoyée par une fonction serveur.
3. Dialogue MCP en JSON-RPC 2.0 sur HTTP « Streamable » côté serveur uniquement :
- en-têtes : Content-Type: application/json et Accept: application/json, text/event-stream ;
- séquence : initialize (protocolVersion 2025-06-18), puis notifications/initialized, puis tools/list, puis tools/call ;
- conserver l'identifiant de session renvoyé dans l'en-tête Mcp-Session-Id et le renvoyer sur les appels suivants ;
- accepter aussi bien une réponse JSON qu'un flux d'événements, en extrayant les lignes data: ;
- délai maximum 15 secondes, messages d'erreur lisibles (injoignable, non autorisé, délai dépassé).
4. Écran d'administration des connecteurs : une carte par produit avec son logo et sa couleur d'accent, champ URL, choix d'authentification, bouton « Tester la connexion », pastille de statut et nombre d'outils découverts.
5. L'URL de chaque serveur MCP est saisie dans cet écran. N'invente jamais une adresse et n'en code aucune en dur.
OUTILS DÉCOUVERTS À L'EXÉCUTION
1. Après chaque connexion réussie, appelle tools/list et enregistre pour chaque outil : nom, titre, description, schéma d'entrée, serveur d'origine et indicateur « lecture seule / modifiant / destructif ».
2. Construis un registre unifié en mémoire, indexé par nom normalisé, fusionnant les outils de tous les serveurs connectés. En cas de doublon, préfixe par la clé du serveur.
3. Expose une recherche d'outil par intention en français (mots-clés sur le nom, le titre et la description) afin que l'assistant choisie l'outil pertinent sans liste figée.
4. N'écris jamais un nom d'outil MCP en dur dans le code ni dans l'interface : tout part du registre. Si un outil attendu est absent, affiche-le honnêtement plutôt que de simuler.
5. Valide systématiquement les paramètres contre le schéma d'entrée réel avant tout appel, et affiche les erreurs de validation à l'utilisateur.
6. Prévois un rafraîchissement manuel du registre et un affichage « N outils disponibles sur M serveurs ».
SÉCURITÉ — RÈGLES NON NÉGOCIABLES
1. Aucun jeton, clé ou identifiant MCP dans le navigateur, dans le code source, dans une variable publique ou dans un journal.
2. Seules les URL HTTPS sont acceptées. Refuse les adresses locales, les réseaux privés et les redirections automatiques.
3. Tout appel MCP part du serveur. Le navigateur n'envoie qu'une intention et des paramètres validés.
4. Chaque appel est journalisé sans secret : utilisateur, serveur, outil, statut, durée.
5. Les actions destructrices exigent une confirmation humaine explicite et sont toujours réversibles ou tracées.
6. Les données affichées respectent les droits du compte connecté : jamais d'élévation de privilèges pour « faire fonctionner » une fonctionnalité.
7. Aucune donnée client réelle en démonstration : jeu de données fictif crédible.
TESTS ET LIVRABLES
1. Tests automatiques : validation des paramètres, refus d'une action sensible non confirmée, épuisement du quota, serveur MCP injoignable, outil absent du registre.
2. Tests manuels documentés : connexion d'un serveur, découverte des outils, exécution d'une action lecture, exécution d'une action sensible confirmée, consultation du journal.
3. États d'interface à couvrir : vide, chargement, erreur, résultat, confirmation.
4. Rapport de tests exportable, avec date, périmètre et résultats.
5. Livrables : dépôt public, serveur MCP de l'extension documenté et joignable, déclaration dans Plan'It, plugin publié sur plugin.braindcode.com, validation par un modèle tiers (Claude, Mistral ou OpenAI).
6. Vérifie le rendu sur ordinateur et sur téléphone avant de considérer le projet terminé.
Ajoute à ce projet la couche d'accès au serveur MCP RapidoCMS, hébergé par une application Laravel.\n\nRÈGLE NON NÉGOCIABLE\nAucun jeton, aucune clé, aucun identifiant MCP ne doit exister côté navigateur. Tout appel passe par une fonction serveur qui joue le rôle de proxy.\n\nÀ CONSTRUIRE\n1. Une fonction serveur mcp-proxy qui reçoit une action et ses paramètres, ajoute l'authentification depuis les secrets du projet, appelle le serveur MCP, et renvoie la réponse. Les secrets ne sont jamais journalisés.\n2. Une authentification par jeton porteur émis par Laravel, avec rafraîchissement et gestion de l'expiration. Sur 401, demander une reconnexion sans réessayer en boucle.\n3. Une découverte dynamique des outils au démarrage : lister les outils exposés, les mettre en cache pour la session, ne jamais coder une liste en dur.\n4. Une isolation stricte par établissement ou compte client ; refuser tout appel sans périmètre.\n5. Une distinction lecture / écriture avec confirmation explicite avant toute écriture.\n6. Un journal des appels : horodatage, outil, périmètre, statut, durée.\n7. Des erreurs lisibles en français avec comportement de repli.\n\nÀ NE PAS FAIRE\nN'invente aucun nom d'outil : construis le code autour de la liste découverte à l'exécution. N'implémente aucune écriture avant que la lecture ne fonctionne de bout en bout.
Les skills, routines et plugins publiables se trouvent sur https://plugin.braindcode.com. Cette marketplace complète le MCP BraindCode mais ne remplace pas son adresse de connexion.
ROUTINE & LOOP-ENGINEERING
Une extension livrée ne vaut que par ce qu'elle fait tourner. Connecte-toi au serveur MCP de la marketplace de prompts et de routines : https://plugin.braindcode.com/mcp (catalogue public sur https://plugin.braindcode.com).
Outils de routine disponibles côté marketplace : chercher_prompts, prompts_pour_agent, lister_routines, obtenir_routine, proposer_routine, mettre_a_jour_routine, planifier_routine, installer_routine, enregistrer_execution_routine, journal_routine, auditer_routines, rendre_verdict_routine, promouvoir_routine, lister_boucles, obtenir_boucle, definir_kpi, enregistrer_kpi, serie_kpi, rattacher_kpi_routine, alertes_kpi, tableau_de_bord, ma_semaine, lister_mcp, routines_pour_mcp. Découvre-les à l'exécution, n'en code aucun en dur.
Avant d'écrire du code, cherche s'il existe déjà une routine ou un prompt éprouvé pour RapidoCMS et repars de là.
Quand le projet est livré, écris sa routine par défaut avec les six champs obligatoires — objectif chiffré et échéance, déclencheur, outils MCP autorisés, garde-fous chiffrés, point d'arrêt humain, mesure (KPI et sa source) — fais-la auditer avec auditer_routines, puis propose-la avec proposer_routine. Elle s'exécutera ensuite dans Plan'It.
Points d'arrêt humains non négociables : dépenser de l'argent, publier publiquement, écrire à un client, signer. L'agent prépare, l'humain valide. Aucune clé d'API ni jeton dans un prompt ou dans le navigateur.
ÉCRANS À CONSTRUIRE
- tableau éditorial
- liste des contenus
- éditeur et prévisualisation
- paramètres de marque
ÉTATS À GÉRER
- chargement
- aucun contenu
- contenu incomplet
- validation requise
- publication confirmée
ACTIONS SENSIBLES — CONFIRMATION HUMAINE OBLIGATOIRE
- publier ou dépublier un contenu
- modifier un média ou une page en production
- répondre publiquement ou lancer une campagne
NOTES DE CADRAGE
Commencer sur des contenus et statistiques de démonstration en lecture seule. Montrer la provenance de chaque recommandation éditoriale. Toute publication reste une étape distincte avec confirmation humaine.
SUIVI BRAINDCODE
Enregistre l'avancement avec save_project_progress, utilise check_project_readiness avant la publication, puis publish_project pour créer la vitrine publique sur build.braindcode.com.
Devenir une routine
Une extension livrée ne vaut que par ce qu’elle fait tourner.
Une fois le projet livré, écrivez sa routine : objectif chiffré, déclencheur, outils du MCP RapidoCMS autorisés, garde-fous, point d’arrêt humain et mesure. Faites-la auditer dans Claude Code via le MCP de la marketplace de prompts, puis mettez-la en production dans Plan’It.
Valeurs indicatives à régler vous-même : les prix et le taux de commission réels se fixent avec BraindCode.
Encaissé tout de suite
1 800 €
Chaque mois, tant que le client reste
184 €
117 € d’abonnement + 67 € de commission
Première année
4 005 €
ÉQUIPE D’AGENTS
Qui fait tourner « Heure et format optimaux ».
Chaque agent a un métier, une mission sur ce projet et des compétences. L’agent référent dépend du logiciel concerné (RapidoCMS) ; les coéquipiers sont choisis selon ce que le projet manipule.
Théo
Le Créatif — agent référent
Fait tourner « Heure et format optimaux » au quotidien sur RapidoCMS : Permettre aux utilisateurs de RapidoCMS de piloter quand et comment publier depuis un espace cohérent, avec sources, variantes et validations clairement visibles.
tableau de synthèse de quand et comment publier
liste des contenus et variantes
éditeur ou prévisualisation
contrôles de conformité visibles
L'Orchestrateur
Chef d'orchestre
Déclenche la routine de « Heure et format optimaux », arbitre les conflits entre agents et s'arrête devant chaque validation humaine.
Déclenchement
Arbitrage
Journalisation
Compte rendu
Marc
Le Directeur — verdict hebdomadaire
Relit chaque vendredi les chiffres de « Heure et format optimaux » et rend le verdict : on garde, on corrige, on arrête.
Lecture des KPI
Verdict
Trois priorités
Jules
Le concepteur-rédacteur — pôle Création
Apporte au projet le métier « le concepteur-rédacteur » : il relit ce que produit Théo et signale ce qui ne tient pas sur le terrain.
Création
contenu
Ali
Le passeur de commandes — pôle Salle
Apporte au projet le métier « le passeur de commandes » : il relit ce que produit Théo et signale ce qui ne tient pas sur le terrain.
Salle
contenu
Diane
La stratège d'audience — pôle Marketing
Apporte au projet le métier « la stratège d'audience » : il relit ce que produit Théo et signale ce qui ne tient pas sur le terrain.
Marketing
contenu
MESURE
Les indicateurs connectés à Plan’It.
Indicateur
Unité
Source
Cible
Alerte
Temps gagné sur « Heure et format optimaux »
minutes par jour
Journal d'exécution de la routine (MCP RapidoCMS)
30 minutes par jour au bout de 3 semaines
en dessous de 10 minutes par jour
Exécutions réussies sans reprise humaine
pourcentage
journal_routine
90 % des exécutions
en dessous de 70 %
Publications programmées et validées
nombre par mois
MCP RapidoCMS
12 par mois
en dessous de 6 par mois
Personnes au-dessus de leur capacité
nombre
MCP RapidoCMS
zéro deux semaines de suite
au-dessus de 1
PROMPTS
Routine, boucle et plugin, prêts à coller.
ROUTINE — Heure et format optimaux
Agent référent : Théo (Le Créatif — agent référent)
Équipe : Théo, L'Orchestrateur, Marc, Jules, Ali, Diane
Connecte-toi au MCP de la marketplace de routines (https://plugin.braindcode.com/mcp), au MCP BraindCode Build (https://build.braindcode.com/api/mcp) et au MCP du logiciel — RapidoCMS : adresse MCP à confirmer avec l'équipe. Découvre les outils à l'exécution, n'en code aucun en dur.
1. OBJECTIF CHIFFRÉ
Permettre aux utilisateurs de RapidoCMS de piloter quand et comment publier depuis un espace cohérent, avec sources, variantes et validations clairement visibles.
Cible retenue : 30 minutes par jour au bout de 3 semaines.
2. DÉCLENCHEUR
Tous les jours à 7 h, et à chaque événement qui touche contenu, version, canal.
3. OUTILS MCP AUTORISÉS
- lire les contenus et leurs versions
- consulter calendriers et performances
- filtrer par canal, marque et période
- obtenir les statuts de validation
Rien d'autre. Un outil non listé n'est pas appelé, même en cas d'imprévu.
4. GARDE-FOUS
- Maximum une exécution par déclencheur, dans la plage 7 h – 20 h.
- Aucune donnée personnelle sortie du logiciel source.
- Aucune écriture tant que la lecture n'a pas été vérifiée.
5. POINT D'ARRÊT HUMAIN
- publier ou dépublier un contenu : l'agent prépare, l'humain valide.
- modifier un média ou une page en production : l'agent prépare, l'humain valide.
- répondre publiquement ou lancer une campagne : l'agent prépare, l'humain valide.
6. MESURE
- Temps gagné sur « Heure et format optimaux » (minutes par jour) — source : Journal d'exécution de la routine (MCP RapidoCMS) — cible : 30 minutes par jour au bout de 3 semaines
- Exécutions réussies sans reprise humaine (pourcentage) — source : journal_routine — cible : 90 % des exécutions
- Publications programmées et validées (nombre par mois) — source : MCP RapidoCMS — cible : 12 par mois
- Personnes au-dessus de leur capacité (nombre) — source : MCP RapidoCMS — cible : zéro deux semaines de suite
À la fin de chaque exécution : enregistre_execution_routine, puis enregistrer_kpi pour chaque mesure ci-dessus. Aucune clé d'API ni jeton dans ce prompt.
Les équipes de contenu gèrent quand et comment publier entre brouillons, calendriers, médias et statistiques de plusieurs canaux. Le contexte de marque se perd pendant les reprises et les performances sont rarement réinjectées dans le travail suivant. La validation finale devient longue et difficile à tracer. Heure et format optimaux doit structurer la préparation sans publier ni modifier un contenu sans accord explicite.
Ce qu’il faut construire
Permettre aux utilisateurs de RapidoCMS de piloter quand et comment publier depuis un espace cohérent, avec sources, variantes et validations clairement visibles.
MVP
— tableau de synthèse de quand et comment publier
— liste des contenus et variantes
— éditeur ou prévisualisation
— contrôles de conformité visibles
— circuit de validation
Bonus
— comparaison de performances
— bibliothèque de modèles
— rapport exportable
Données du produit concernées
Familles de données
— contenus et versions
— canaux, campagnes et calendriers
— médias et règles de marque
— performances et commentaires
Capacités MCP concernées
Familles de capacités
— lire les contenus et leurs versions
— consulter calendriers et performances
— filtrer par canal, marque et période
— obtenir les statuts de validation
Découvrez la liste d’outils à l’exécution. Ne codez aucun nom d’outil en dur.