Skip to main content
Glama

Bilan mensuel

bilan_mensuel
Read-onlyIdempotent

L'officine mois par mois (les N derniers mois pleins, le mois en cours à part, ou du/au), avec le total des mois pleins : unités, chiffre d'affaires TTC et HT, marge en euros (marge_eur = quantité × (prix de vente HT − PAMP)) et en pourcentage du prix de vente HT, références vendues. Filtrable par laboratoire, famille, groupe (parapharmacie, médicaments, LPP…) ou mots du nom des produits (produit : « solaire, spf »). comparer=an_dernier met chaque mois face au même mois un an avant, écarts calculés ; avec produit, les produits retenus sont rendus pour vérification. À utiliser quand le pharmacien demande l'évolution de ses ventes ou de sa marge, compare un mois ou une saison à l'an dernier. Pas pour une question médicale, une posologie, un dossier patient ni un prix du marché. Month-by-month sales, revenue and margin of the pharmacy, filterable.

Input Schema

NameRequiredDescriptionDefault
auNoDernier mois compris, AAAA-MM.
duNoPremier mois compris, AAAA-MM. Avec au, remplace mois (« cet été » : du 2026-06 au 2026-08).
moisNoLes N derniers mois pleins ; le mois en cours est rendu à part (ignoré avec du/au).
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 ».
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) »).
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.
produitNoNe compter que les produits dont le nom ou le laboratoire contient ces mots (abréviations du logiciel comprises), comme q dans top_ventes ; plusieurs possibilités séparées par des virgules (« solaire, spf »). 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.
comparerNoChaque mois face au même mois un an avant (champs *_avant, evolution_ca_pct), total compris.
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.
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.
associationsNoexclure : la substance seule (paracétamol sans codéine) ; seules : les associations.inclure

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 / mois / description
      Previous value: -"Les N derniers mois, le mois en cours compris (ignoré avec du/au)."New value: +"Les N derniers mois pleins ; le mois en cours est rendu à part (ignoré avec du/au)."
  3. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive. The description adds real behavioral context beyond them: how margin is computed (quantité × (prix de vente HT − PAMP)), that comparer=an_dernier produces écarts and *_avant fields, that the current month is returned separately, and that selected products are surfaced for verification. It does not disclose broader limits such as data freshness or row caps.

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?

The main purpose and metric definitions are front-loaded and every sentence carries information about scope, formulas, or filters. It is dense and somewhat long for a single paragraph, but appropriately sized for a 15-parameter analytical tool.

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?

Given the complexity and the absence of an output schema, the description explains the main return values (units, revenue HT/TTC, margin in euros and percent, references sold) and the comparison fields. It leaves some gaps around the exact shape of the separate current-month block and the full comparison output, but covers enough for an agent to call it 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 coverage is 100%, so every parameter is already documented in the schema. The description synthesizes the filter set (laboratoire, famille, groupe, produit) and the comparer behavior, but this largely repeats schema content rather than adding new semantics. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource: month-by-month pharmacy sales, revenue and margin, with explicit metrics (unités, CA TTC/HT, marge_eur, références vendues) and filter options. The intended scope is clear, but differentiation from siblings like ventes_mois or palmares is only implicit; the only sibling named is top_ventes as an analogy, not as an alternative to choose between.

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

Usage Guidelines4/5

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

Gives an explicit trigger ('À utiliser quand le pharmacien demande l'évolution de ses ventes ou de sa marge, compare un mois ou une saison à l'an dernier') and clear exclusions (medical questions, posology, patient records, market prices). Alternatives among sibling tools are not named, so it stops short of full routing guidance.

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