Skip to main content
Glama

StampyWallet

Messages automatiques

regler_automatismes
Destructive

Lit et règle les messages que StampyWallet envoie tout seul aux clients : la relance des habitués qui ne viennent plus (quand leur absence dépasse une fois et demie leur rythme habituel, ou, sans assez d’historique, le délai du commerce, proposé selon son métier et réglable), le message d’anniversaire, les rappels « plus qu’un tampon » et « récompense prête » (et leur délai), les heures calmes pendant lesquelles rien ne part ; montre aussi le bilan du lundi envoyé au commerçant. Sans paramètre de changement : rend l’état actuel, textes compris. Avec des changements : confirmer=false rend un aperçu avant → après sans rien modifier, confirmer=true enregistre. Seuls les champs fournis changent. Pour un message ponctuel, utiliser envoyer_message.

Input Schema

NameRequiredDescriptionDefault
effacerNoTextes à effacer. texte_relance revient au texte par défaut ; texte_anniversaire vide coupe de fait les envois d’anniversaire ; delai_relance revient au délai proposé pour le métier.
confirmerNofalse (défaut) : rend seulement un aperçu de ce qui serait fait, sans rien changer. true : exécute. Toujours montrer l’aperçu à la personne et attendre son accord avant de repasser avec true.
canal_avisNoCanal de « demande d’avis » : auto (recommandé : un message important part d’abord par SMS sauf aux clients qui répondent aux notifications, un petit en notification et par SMS seulement aux clients qui répondent mieux aux SMS), notif, secours (SMS si la notification ne porte pas), sms (SMS d’abord), email (e-mail si la notification ne porte pas).
reserve_smsNoPart du budget SMS mensuel gardée pour les messages importants, en % : 0, 25, 50, 75, 100.
canal_rappelsNoCanal de « rappels » : auto (recommandé : un message important part d’abord par SMS sauf aux clients qui répondent aux notifications, un petit en notification et par SMS seulement aux clients qui répondent mieux aux SMS), notif, secours (SMS si la notification ne porte pas), sms (SMS d’abord).
canal_relanceNoCanal de « relance » : auto (recommandé : un message important part d’abord par SMS sauf aux clients qui répondent aux notifications, un petit en notification et par SMS seulement aux clients qui répondent mieux aux SMS), notif, secours (SMS si la notification ne porte pas), sms (SMS d’abord).
texte_relanceNoTexte de la relance, 180 caractères au plus. Pour revenir au texte par défaut, mettre "texte_relance" dans effacer.
canal_messagesNoCanal de « messages du commerçant » : auto (recommandé : un message important part d’abord par SMS sauf aux clients qui répondent aux notifications, un petit en notification et par SMS seulement aux clients qui répondent mieux aux SMS), notif, secours (SMS si la notification ne porte pas), sms (SMS d’abord).
rappel_presqueNoRappel « plus qu’un tampon » quand il ne manque qu’un passage.
relance_activeNoActive ou coupe la relance automatique des perdus de vue (une par client et par absence).
importance_avisNoImportance de « demande d’avis » : importante (passe avant dans le budget SMS) ou petite.
heures_calmes_finNoFin des heures calmes (heure de 0 à 23) : les envois reprennent à partir de cette heure.
rappel_recompenseNoRappel « votre récompense vous attend » quand elle est gagnée.
canal_anniversaireNoCanal de « anniversaire » : auto (recommandé : un message important part d’abord par SMS sauf aux clients qui répondent aux notifications, un petit en notification et par SMS seulement aux clients qui répondent mieux aux SMS), notif, secours (SMS si la notification ne porte pas), sms (SMS d’abord), email (e-mail si la notification ne porte pas).
importance_rappelsNoImportance de « rappels » : importante (passe avant dans le budget SMS) ou petite.
importance_relanceNoImportance de « relance » : importante (passe avant dans le budget SMS) ou petite.
texte_anniversaireNoTexte du message d’anniversaire, 180 caractères au plus, idéalement avec le cadeau offert. Sans texte, rien ne part.
anniversaire_activeNoActive ou coupe le message d’anniversaire (il ne part que si un texte existe et si la carte demande la date d’anniversaire).
cadeau_anniversaireNoLe cadeau d’anniversaire, valable 30 jours à partir du jour J : message (le texte seul), pourcent (une réduction sur chaque achat), un_offert (« 1 acheté, 1 offert », une fois), choix (le client choisit au comptoir entre la réduction et « 1 acheté, 1 offert »). Les cadeaux déjà ouverts ne changent pas.
delai_relance_joursNoDélai du commerce avant qu’un habitué soit « perdu de vue », en jours calendaires : une valeur parmi 14, 21, 28, 35, 42, 60, 90. Il sert aux clients sans assez d’historique et borne le rythme des autres (de la moitié au double). Pour revenir au délai proposé pour le métier, mettre "delai_relance" dans effacer.
heures_calmes_debutNoDébut des heures calmes (heure de 0 à 23) : aucune notification automatique n’arrive après.
importance_messagesNoImportance de « messages du commerçant » : importante (passe avant dans le budget SMS) ou petite.
delai_rappel_minutesNoDélai entre le passage et le rappel, en minutes : une valeur parmi 0, 30, 60, 180, 1440 (1440 = le lendemain).
pourcent_anniversaireNoLe pourcentage de la réduction d’anniversaire (pourcent et choix), de 1 à 90.
importance_anniversaireNoImportance de « anniversaire » : importante (passe avant dans le budget SMS) ou petite.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety bar is lower; the description nonetheless adds the crucial dual-mode semantics (no-param call is a pure read returning texts) and the preview-before-commit workflow that the annotations cannot express. It does not spell out what effacer actually destroys or that some effects (already-opened birthday gifts) are irreversible — that detail lives only in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and scope, then the mode semantics, then the sibling pointer — the right ordering. It is dense with nested parentheticals explaining the relance threshold rule, so a few clauses could be trimmed, but every sentence carries information the agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 25 optional parameters and no output schema, the description correctly covers the highest-risk gaps: read vs write mode, preview vs commit, partial updates, and the default/effacer path. Return values are only summarized ('rend l'état actuel, textes compris'), which is thin given the absence of an output schema, but adequate for an agent to decide and call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 25 parameters, including enum explanations and default/effacer semantics, so the schema does the heavy lifting. The description adds domain grouping (relance, anniversaire, rappels, heures calmes) but no per-parameter syntax or format detail beyond it, which is the correct baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair and resource ('lit et règle les messages que StampyWallet envoie tout seul'), then enumerates the exact sub-domains covered: relance, anniversaire, rappels with delay, heures calmes, and the Monday summary. It explicitly routes the one-off case to the sibling `envoyer_message`, so the boundary is unambiguous without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit decision tree: no parameters → read current state; with changes → confirmer=false for a preview, confirmer=true to persist. It also states the partial-update rule ('seuls les champs fournis changent') and names the alternative tool for a one-off message, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources