monappamoi

Host AI-generated single-file HTML apps with JSON persistence. No signup.

Should I use this

Quality & Safety

B
Description quality
88%
Schema completeness
80%
Naming quality
98%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (6)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'publish_app' description contains placeholder textin publish_app
  • LOWTool 'get_app' description lacks action verbin get_app
  • LOWTool 'get_app_data' description lacks action verbin get_app_data
  • LOWTool 'set_app_data' description lacks action verbin set_app_data
  • INFOTool description contains placeholder or incomplete textin publish_app

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,707Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.33% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "apps": {
      "url": "https://monappamoi.fr/mcp"
    }
  }
}

Remote endpoints

https://monappamoi.fr/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡get_publishing_guide

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡publish_app(html, title, slug, data)

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. CONFIDENTIALITÉ : l'app publiée est accessible à quiconque a son adresse, mais elle PEUT être verrouillée (page et données réservées au compte de l'utilisateur, après lien envoyé par email). Cet outil renvoie le lien qui rattache et verrouille en un clic : proposez-le à l'utilisateur juste après la publication dès que l'app enregistre des données personnelles.

Input Schema

{
  "type": "object",
  "properties": {
    "html": {
      "type": "string",
      "description": "Le fichier HTML complet de l'app (CSS et JS inclus dedans). Maximum 2 Mo."
    },
    "title": {
      "description": "Titre lisible de l'app.",
      "type": "string",
      "maxLength": 200
    },
    "slug": {
      "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.",
      "type": "string"
    },
    "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."
    }
  },
  "required": [
    "html"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_app(slug, secret_token, html, title, data)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Le sous-domaine de l'app à mettre à jour."
    },
    "secret_token": {
      "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.",
      "type": "string"
    },
    "html": {
      "type": "string",
      "description": "Le fichier HTML complet de l'app (CSS et JS inclus dedans). Maximum 2 Mo."
    },
    "title": {
      "type": "string",
      "maxLength": 200
    },
    "data": {
      "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.",
      "type": "string"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_app(slug, secret_token)

Renvoie les métadonnées d'une app publiée (URL, titre, taille, dates de création et de mise à jour).

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "secret_token": {
      "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.",
      "type": "string"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_app(slug, secret_token)

Retire définitivement une app de la plateforme. Son URL cessera de fonctionner. Demandez confirmation à l'utilisateur avant d'appeler cet outil.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "secret_token": {
      "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.",
      "type": "string"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_app_data(slug, secret_token)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "secret_token": {
      "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.",
      "type": "string"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡set_app_data(slug, secret_token, data)

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

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "secret_token": {
      "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.",
      "type": "string"
    },
    "data": {
      "type": "string",
      "description": "Le nouveau document complet, en JSON sérialisé."
    }
  },
  "required": [
    "slug",
    "data"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_my_apps

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢claim_app(secret_token)

Rattache au compte de l'utilisateur une app publiée anonymement, à partir de son jeton secret. Elle apparaîtra ensuite dans list_my_apps et pourra être gérée sans jeton. Appelez cet outil quand l'utilisateur veut « récupérer » ou « rattacher » une app publiée sans compte.

Input Schema

{
  "type": "object",
  "properties": {
    "secret_token": {
      "type": "string",
      "description": "Le jeton secret (maam_app_…) de l'app à rattacher."
    }
  },
  "required": [
    "secret_token"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools