{"serverId":"mcp-registry/fr.monappamoi/apps","tools":[{"name":"delete_app","fixed":{"name":"delete_app","description":"Retire définitivement une app de la plateforme. Son URL cessera de fonctionner. Demandez confirmation à l'utilisateur avant d'appeler cet outil.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string"},"secret_token":{"type":"string","description":"Le jeton secret (maam_app_…) renvoyé lors de la publication de cette app. Facultatif si l'app est rattachée au compte de la clé API configurée."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Supprimer une app"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"get_app","fixed":{"name":"get_app","description":"Renvoie les métadonnées d'une app publiée (URL, titre, taille, dates de création et de mise à jour).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string"},"secret_token":{"type":"string","description":"Le jeton secret (maam_app_…) renvoyé lors de la publication de cette app. Facultatif si l'app est rattachée au compte de la clé API configurée."}}},"annotations":{"readOnlyHint":true},"title":"Informations sur une app"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"get_app_data","fixed":{"name":"get_app_data","description":"Renvoie le document JSON enregistré par les utilisateurs de l'app. Appelez cet outil avant de faire évoluer une app qui enregistre des données, pour savoir quelle structure est réellement en place. Fonctionne aussi sur une app verrouillée : le jeton secret ou la clé API du propriétaire suffit, le verrou ne concerne que les visiteurs du sous-domaine.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string"},"secret_token":{"type":"string","description":"Le jeton secret (maam_app_…) renvoyé lors de la publication de cette app. Facultatif si l'app est rattachée au compte de la clé API configurée."}}},"annotations":{"readOnlyHint":true},"title":"Lire les données d'une app"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":203,"tokensAfter":203},{"name":"get_publishing_guide","fixed":{"name":"get_publishing_guide","description":"Explique comment écrire une app pour cette plateforme : où placer les données (HTML, localStorage ou API /api/data), le pattern de persistance recommandé, et comment faire évoluer une app sans casser les données de ses utilisateurs. À lire avant de publier une app qui enregistre quelque chose, et avant tout update_app qui change la structure des données.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true},"title":"Guide de publication"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"list_my_apps","fixed":{"name":"list_my_apps","description":"Liste les apps publiées rattachées au compte de l'utilisateur. Appelez cet outil quand il demande « quelles sont mes apps », veut retrouver l'adresse d'une app publiée précédemment, ou souhaite en modifier une sans avoir son jeton sous la main.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true},"title":"Lister mes apps"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"publish_app","fixed":{"name":"publish_app","description":"Met en ligne une app HTML mono-fichier et renvoie son URL publique. Appelez cet outil quand l'utilisateur veut héberger, publier, mettre en ligne ou partager une app HTML que vous venez de créer. Aucun compte n'est nécessaire. IMPORTANT : si l'app conserve des données que l'utilisateur s'attendra à retrouver plus tard (todo, notes, compteur, scores, favoris…), câblez-la sur GET/PUT /api/data AVANT de publier — localStorage seul ne survit pas au changement d'appareil. Voir get_publishing_guide. C","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["html"],"properties":{"data":{"type":"string","description":"Données initiales de l'app, en JSON sérialisé (ex. '{\"todos\":[]}'). N'écrase jamais des données existantes — utilisez set_app_data pour cela."},"html":{"type":"string","description":"Le fichier HTML complet de l'app (CSS et JS inclus dedans). Maximum 2 Mo."},"slug":{"type":"string","description":"Base du sous-domaine souhaitée (3–40 caractères : minuscules, chiffres, tirets), sinon dérivée du titre. Un suffixe aléatoire lui est TOUJOURS ajouté : l'adresse finale diffère du slug demandé. Utilisez l'URL renvoyée par cet outil, ne la reconstruisez jamais vous-même."},"title":{"type":"string","maxLength":200,"description":"Titre lisible de l'app."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Publier une app"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":376,"tokensAfter":376},{"name":"set_app_data","fixed":{"name":"set_app_data","description":"Écrase le document JSON de l'app. C'est la seule façon de remplacer des données existantes : utilisez-le pour migrer les données vers une nouvelle structure, ou pour repartir de zéro. Les données précédentes sont définitivement perdues — prévenez l'utilisateur.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug","data"],"properties":{"data":{"type":"string","description":"Le nouveau document complet, en JSON sérialisé."},"slug":{"type":"string"},"secret_token":{"type":"string","description":"Le jeton secret (maam_app_…) renvoyé lors de la publication de cette app. Facultatif si l'app est rattachée au compte de la clé API configurée."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Remplacer les données d'une app"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":204,"tokensAfter":204},{"name":"update_app","fixed":{"name":"update_app","description":"Remplace le HTML et/ou le titre d'une app déjà publiée. L'URL ne change pas. Les données déjà enregistrées par les utilisateurs ne sont jamais écrasées : si votre nouvelle version change la structure des données, lisez d'abord get_app_data puis migrez avec set_app_data.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"data":{"type":"string","description":"Données initiales, appliquées uniquement si l'app n'en a encore aucune. Pour remplacer des données existantes, utilisez set_app_data."},"html":{"type":"string","description":"Le fichier HTML complet de l'app (CSS et JS inclus dedans). Maximum 2 Mo."},"slug":{"type":"string","description":"Le sous-domaine de l'app à mettre à jour."},"title":{"type":"string","maxLength":200},"secret_token":{"type":"string","description":"Le jeton secret (maam_app_…) renvoyé lors de la publication de cette app. Facultatif si l'app est rattachée au compte de la clé API configurée."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Mettre à jour une app"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":288,"tokensAfter":288}],"toolsChanged":8,"tokensSaved":0,"todo":[{"tool":"delete_app","params":["slug"]},{"tool":"get_app","params":["slug"]},{"tool":"get_app_data","params":["slug"]},{"tool":"set_app_data","params":["slug"]},{"tool":"update_app","params":["title"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}