Skip to main content
Glama

Meilleures ventes

top_ventes
Read-onlyIdempotent

Les produits sur une période (les N derniers mois pleins, ou du/au), classés par unités, chiffre d'affaires, marge, taux de marge ou progression : unités, chiffre d'affaires TTC et HT, marge en euros et en pourcentage, prix catalogue et prix moyen encaissé, PAMP, stock, et le total de tout ce que les filtres retiennent. Filtres : mots du nom (plusieurs au choix), laboratoire, famille, groupe (parapharmacie, médicaments, LPP…), rayon et sous-rayon SyderaAI (« mon rayon solaire » : rayon=Solaire). comparer=an_dernier ou periode_precedente ajoute la période comparée et l'évolution. Au plus 100 lignes. Les ventes ponctuelles (un seul mois fait l'essentiel, puis rien) sont marquées vente_ponctuelle (ponctuelles=exclure les écarte, seules ne garde qu'elles) ; avec comparer, chaque produit porte aussi l'évolution de son prix d'achat ; le total donne aussi le stock actuel des produits retenus. stock_max=0 ne garde que ce qui n'est plus en stock ; saisonniers=seules ne garde que les produits dont la période fait l'essentiel de l'année (préparer une saison : du/au sur la même saison l'an dernier). À utiliser pour « ce qui se vend le mieux », « ce qui me rapporte le plus » (tri=marge), « ce qui a le plus progressé ou baissé » (comparer + tri=progression_eur, ordre croissant pour les baisses), « quels prix d'achat ont monté » (comparer + tri=progression_pamp), « prépare-moi l'hiver » (du 2025-10 au 2025-12, saisonniers=seules), « ce qui se vendait et que je n'ai plus » (stock_max=0), « les coups ponctuels » (ponctuelles=seules), « ce que je vends à perte » (marge_pct_max=0), dans un rayon, un groupe ou chez un laboratoire. Pas pour une question médicale, une posologie, un dossier patient ni un prix du marché. Prix de l'officine seulement. Un prix proposé au pharmacien n'est pas conseillé par Artemis ni par SyderaAI : prix de sa zone et effet sur ses ventes inconnus ici ; une décision fiable demande un outil de pricing qui suit sa zone (sans en citer). Products of the pharmacy over any period, sorted by units, revenue, margin or growth, with totals and comparison.

Input Schema

NameRequiredDescriptionDefault
qNoMots du nom ou du laboratoire (abréviations du logiciel comprises) ; plusieurs possibilités séparées par des virgules (« solaire, spf, écran »). Pour une molécule, essayez d'abord le paramètre molecule (base publique des médicaments) ; si la réponse dit que la composition n'est pas chargée, ou pour une classe (vitamine D, magnésium, probiotiques…), donnez vous-même la molécule et les marques que vous connaissez (vitamine D : « vitamine d, cholecalciferol, uvedose, zymad, adrigyl »), puis vérifiez les produits retenus et reformulez si l'un n'en est pas.
auNoDernier mois compris, AAAA-MM.
duNoPremier mois compris, AAAA-MM. Avec au, remplace mois (« cet été » : du 2026-06 au 2026-08).
triNounites (défaut), ca (chiffre d'affaires), marge (en euros), marge_pct (taux de marge) ; avec comparer : progression_eur, progression_pct, ou progression_pamp (les prix d'achat qui ont le plus monté). Avec saisonniers=seules : ecart (ce qui manque le plus pour la saison).unites
moisNoLes N derniers mois pleins (ignoré avec du/au).
pageNoPage suivante de la liste (même tri, même limite).
ordreNocroissant : du plus petit au plus grand (les plus faibles marges, les plus fortes baisses).decroissant
rayonNoRayon SyderaAI (Solaire, Compléments alimentaires, Cheveux, Contention, Homéopathie…), nom exact (lister quoi=rayons) ; plusieurs au choix, séparés par des virgules. Pour « mon rayon solaire », « mes compléments ».
ca_minNoÉcarter de la liste les lignes sous ce chiffre d'affaires TTC (dans la période ou la période comparée), utile avec un tri par taux ou par progression ; le total porte toujours sur tout.
groupeNoLe statut des produits, classement SyderaAI (pas une famille du logiciel) : parapharmacie = ni médicament, ni LPP, ni lait infantile ; medicaments_conseil = sans ordonnance, non remboursés ; medicaments_ordonnance_non_rembourses = sur ordonnance, non remboursés ; medicaments_non_rembourses = les deux ; a_verifier = les produits rangés dans aucun groupe (la ligne « (à vérifier) »).
limiteNo
exclureNoÉcarter les produits dont le nom contient l'un de ces mots, séparés par des virgules (« rivastigmine, firmagon ») : pour retirer ce qu'un filtre de mots attrape à tort.
familleNoFamille du logiciel (son propre rangement), nom exact (lister le donne) ; plusieurs au choix, séparées par des virgules ; « (sans famille) » retient les produits qui n'en ont aucune.
comparerNoAjoute, par ligne et au total, la période comparée (champs *_avant) et evolution_ca_pct : an_dernier = les mêmes mois un an avant ; periode_precedente = autant de mois juste avant.
moleculeNoSubstance active, d'après la base publique des médicaments (« paracetamol », « amoxicilline ») ; plusieurs séparées par des virgules. Retient tous les médicaments qui la contiennent, associations comprises ; la parapharmacie n'a pas de molécule. Si la réponse dit que la composition n'est pas chargée, donnez les marques dans q ou produit.
stock_maxNoNe garder que les produits dont le stock actuel est au plus ce nombre (0 = plus en stock), total compris.
type_soinNoLe type de matériel de soin : gamme_blanche (pansements, compresses, bandes, sparadraps et sets), ou un type précis (sets_pansement, contention, glycemie…).
generiquesNoseules : les génériques ; exclure : princeps et médicaments hors groupe générique.inclure
sous_rayonNoSous-rayon SyderaAI (Protection solaire, Sommeil, Anti-Poux, Anti-moustiques & insectes…), nom exact (lister quoi=sous_rayons) ; plusieurs au choix. Pour « mes anti-poux », « mes compléments sommeil ».
laboratoireNoNom exact du laboratoire (lister le donne) ; plusieurs au choix, séparés par des virgules ; « (laboratoire non identifié) » retient les produits sans laboratoire.
ponctuellesNoLes ventes ponctuelles : exclure les écarte (une tendance sans les coups isolés), seules ne garde qu'elles.inclure
saisonniersNoseules : les produits dont la période fait l'essentiel de l'année, au moins 1,6 fois la part d'une période ordinaire (40 % sur 3 mois, 80 % sur 6 mois ; part_de_l_annee_pct), confirmés l'année d'avant, avec leur stock actuel et l'écart entre les ventes de la saison et ce stock.inclure
associationsNoexclure : la substance seule (paracétamol sans codéine) ; seules : les associations.inclure
marge_pct_maxNoNe garder que les produits dont la marge des ventes de la période est au plus ce pourcentage : 0 = vendus à perte (d'après le PAMP du logiciel).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / groupe / description
      Previous value: -"Le statut des produits, classement SyderaAI (pas une famille du logiciel) : parapharmacie = ni médicament, ni LPP, ni lait infantile ; medicaments_conseil = sans ordonnance, non remboursés ; medicaments_ordonnance_non_rembourses = sur ordonnance, non remboursés ; medicaments_non_rembourses = les deux."New value: +"Le statut des produits, classement SyderaAI (pas une famille du logiciel) : parapharmacie = ni médicament, ni LPP, ni lait infantile ; medicaments_conseil = sans ordonnance, non remboursés ; medicaments_ordonnance_non_rembourses = sur ordonnance, non remboursés ; medicaments_non_rembourses = les deux ; a_verifier = les produits rangés dans aucun groupe (la ligne « (à vérifier) »)."
    • changedInput schema / properties / groupe / enum
      Previous value: -[
      -  "parapharmacie",
      -  "medicaments",
      -  "medicaments_rembourses",
      -  "medicaments_non_rembourses",
      -  "medicaments_conseil",
      -  "medicaments_ordonnance_non_rembourses",
      -  "medicaments_prix_fixe",
      -  "lpp",
      -  "laits_infantiles"
      -]New value: +[
      +  "parapharmacie",
      +  "medicaments",
      +  "medicaments_rembourses",
      +  "medicaments_non_rembourses",
      +  "medicaments_conseil",
      +  "medicaments_ordonnance_non_rembourses",
      +  "medicaments_prix_fixe",
      +  "lpp",
      +  "laits_infantiles",
      +  "a_verifier"
      +]
  2. Changed3 schema fields changed
    • changedInput schema / properties / groupe / description
      Previous value: -"Le statut des produits, classement SyderaAI (pas une famille du logiciel) : parapharmacie = ni médicament, ni LPP, ni lait infantile."New value: +"Le statut des produits, classement SyderaAI (pas une famille du logiciel) : parapharmacie = ni médicament, ni LPP, ni lait infantile ; medicaments_conseil = sans ordonnance, non remboursés ; medicaments_ordonnance_non_rembourses = sur ordonnance, non remboursés ; medicaments_non_rembourses = les deux."
    • changedInput schema / properties / groupe / enum
      Previous value: -[
      -  "parapharmacie",
      -  "medicaments",
      -  "medicaments_rembourses",
      -  "medicaments_non_rembourses",
      -  "medicaments_prix_fixe",
      -  "lpp",
      -  "laits_infantiles"
      -]New value: +[
      +  "parapharmacie",
      +  "medicaments",
      +  "medicaments_rembourses",
      +  "medicaments_non_rembourses",
      +  "medicaments_conseil",
      +  "medicaments_ordonnance_non_rembourses",
      +  "medicaments_prix_fixe",
      +  "lpp",
      +  "laits_infantiles"
      +]
    • changedInput schema / properties / saisonniers / description
      Previous value: -"seules : les produits dont la période fait au moins 40 % des ventes de l'année (part_de_l_annee_pct), avec leur stock actuel et l'écart entre les ventes de la saison et ce stock."New value: +"seules : les produits dont la période fait l'essentiel de l'année, au moins 1,6 fois la part d'une période ordinaire (40 % sur 3 mois, 80 % sur 6 mois ; part_de_l_annee_pct), confirmés l'année d'avant, avec leur stock actuel et l'écart entre les ventes de la saison et ce stock."
  3. First observed

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent and non-destructive, so safety is covered. The description adds useful behavior beyond that: the 100-row cap, that totals always cover everything filters retain even when rows are trimmed, that comparer adds *_avant fields and evolution_ca_pct, and a pricing-scope disclaimer (pharmacy prices only, no market pricing, no advice). However, it does not describe pagination interaction with totals or the vente_ponctuelle/saisonnier detection heuristics in enough precision for the agent to anticipate row-level flags; solid but not fully transparent – a 3.

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

Conciseness3/5

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

Front-loaded with scope and outputs, which is good, but the paragraph is very dense: the return columns are effectively listed twice ('classés par…' then 'unités, chiffre d'affaires TTC et HT…'), and the closing pricing-scope caveat plus the English echo sentence add length without new decision-relevant content. Justified by 24 parameters, but tighten-able.

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

Completeness5/5

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

With 24 optional parameters, 96% schema coverage, no output schema and no nested objects, the description supplies the missing pieces: what the totals mean, the row cap and page behavior, the comparison fields, and the domain limits (officine prices only). An agent can call this correctly without further context.

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

Parameters4/5

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

Schema coverage is 96%, so the schema carries parameter semantics and the baseline is 3. The description nevertheless adds meaning beyond it: it explains what comparer produces (comparison period and evolution), what stock_max=0 signals, how ponctuelles/saisonniers behave, and how tri options pair with comparer. Marginal but real added value over the schema.

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?

Opens with a specific verb+resource+scope: products over a period, ranked by units, revenue, margin, margin rate or growth. It enumerates the exact return columns (TTC/HT, marge, PAMP, stock) so an agent can separate it from siblings like ventes_mois or palmares without opening a 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?

Provides an explicit mapping of natural-language questions to parameter combinations ('ce qui me rapporte le plus' → tri=marge; 'prépare-moi l'hiver' → du/saisonniers; 'ce que je vends à perte' → marge_pct_max=0) and explicitly excludes medical/prescription/patient/market-price questions. Nothing is left to inference about when to select this vs alternatives.

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