Skip to main content
Glama

Fulfiller — print catalogue & quotes

Comparer les prix par quantité

quote_by_quantity
Read-only

Grille de devis pour plusieurs paliers de quantité en UN appel — la bonne façon de répondre à « combien pour 100, 250, 500 ? ». Prix de chaque palier : devis.finalPriceHt (promotion déduite). Même règle que quote_product, palier par palier : hors plage → erreur localisée sans invalider les autres ; hors du pas → coté au palier commandable le plus proche, que quotedQuantity indique (le prix porte sur cette quantité, pas sur le palier demandé).

Input Schema

NameRequiredDescriptionDefault
productIdYesIdentifiant rendu par search_products.
selectionYesSélection d’options : même forme et mêmes règles que `selection` de quote_product (codes ou libellés, défauts du produit, `preset`, tailles).
quantitiesYesPaliers de quantité à coter (1 à 20).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • addedInput schema / properties / productId / description
      Added value: +"Identifiant rendu par search_products."
    • changedInput schema / properties / selection / description
      Previous value: -"Sélection d’options. Une option non précisée prend la valeur de la préselection par défaut du produit (`preselections` de get_product_configuration), comme sur le site ; `{\"options\": []}` cote donc la configuration par défaut. La résolution est TOLÉRANTE : code ou libellé, sans souci de casse ni d’accents ; une valeur partielle est retenue si une SEULE valeur la contient (« vinyle » → « Impression sur vinyle adhésif contrecollé », « A5 » → « 14,8 x 21 cm (A5) »), ou par ses mesures (« 148x210 mm ») ; parmi plusieurs, la plus proche est retenue et signalée. Ce qui n’est pas retenu tel quel est signalé dans `alerts` et dans `summary`."New value: +"Sélection d’options : même forme et mêmes règles que `selection` de quote_product (codes ou libellés, défauts du produit, `preset`, tailles)."
    • removedInput schema / properties / selection / properties / options / items / properties / option / description
      Removed value: -"Code de l’option, tel que rendu par get_product_configuration. Un libellé (« Délai de livraison ») est rattaché à la seule option qui lui correspond, et c’est signalé."
    • removedInput schema / properties / selection / properties / options / items / properties / quantity / description
      Removed value: -"Quantité demandée (type QUANTITY). Hors des paliers du produit, l’alerte donne les quantités possibles et la plus proche."
    • removedInput schema / properties / selection / properties / options / items / properties / size / description
      Removed value: -"Gabarit de taille (option de type SIZE). Gabarit FIXE (bornes min = max) : le code suffit, ses dimensions sont complétées, et des dimensions données dans un sens ou dans l’autre (60×80 ou 80×60) désignent le même gabarit. Gabarit à SAISIE LIBRE (`allowsCustomInput`) : width et height sont requises, dans l’unité de l’option (`unit`, souvent cm : une bâche de 3 m × 1 m s’écrit width 300, height 100) et dans les bornes du gabarit."
    • removedInput schema / properties / selection / properties / options / items / properties / size / properties / code / description
      Removed value: -"Code ou libellé du gabarit, ou ses mesures (« 60x80 », « 148x210 mm ») : elles désignent le gabarit fixe de ces dimensions, sinon le gabarit sur mesure."
    • removedInput schema / properties / selection / properties / options / items / properties / type / description
      Removed value: -"Seuls ces 4 types sont SÉLECTIONNABLES. Un autre type déclaré par la configuration (LIST_OF_RANGES, QUANTITY_BY_VALUE) est décrit mais non sélectionnable : le défaut du produit s’applique."
    • removedInput schema / properties / selection / properties / options / items / properties / value / description
      Removed value: -"Code ou libellé de la valeur retenue (types LIST_OF_VALUES et DELIVERY_TIME)."
    • addedInput schema / properties / selection / properties / preset
      Added value: +{
      +  "maxLength": 128,
      +  "type": "string"
      +}
  2. Changed6 schema fields changed
    • changedInput schema / properties / selection / description
      Previous value: -"Sélection d’options. `{\"options\": []}` est valide et cote la configuration par défaut du produit. La résolution est TOLÉRANTE : un code approchant est résolu, et l’écart est signalé dans `alerts`."New value: +"Sélection d’options. Une option non précisée prend la valeur de la préselection par défaut du produit (`preselections` de get_product_configuration), comme sur le site ; `{\"options\": []}` cote donc la configuration par défaut. La résolution est TOLÉRANTE : code ou libellé, sans souci de casse ni d’accents ; une valeur partielle est retenue si une SEULE valeur la contient (« vinyle » → « Impression sur vinyle adhésif contrecollé », « A5 » → « 14,8 x 21 cm (A5) »), ou par ses mesures (« 148x210 mm ») ; parmi plusieurs, la plus proche est retenue et signalée. Ce qui n’est pas retenu tel quel est signalé dans `alerts` et dans `summary`."
    • changedInput schema / properties / selection / properties / options / items / properties / option / description
      Previous value: -"Code de l’option, tel que rendu par get_product_configuration."New value: +"Code de l’option, tel que rendu par get_product_configuration. Un libellé (« Délai de livraison ») est rattaché à la seule option qui lui correspond, et c’est signalé."
    • changedInput schema / properties / selection / properties / options / items / properties / quantity / description
      Previous value: -"Quantité demandée (type QUANTITY)."New value: +"Quantité demandée (type QUANTITY). Hors des paliers du produit, l’alerte donne les quantités possibles et la plus proche."
    • changedInput schema / properties / selection / properties / options / items / properties / size / description
      Previous value: -"Gabarit et dimensions personnalisées (option de type SIZE)."New value: +"Gabarit de taille (option de type SIZE). Gabarit FIXE (bornes min = max) : le code suffit, ses dimensions sont complétées, et des dimensions données dans un sens ou dans l’autre (60×80 ou 80×60) désignent le même gabarit. Gabarit à SAISIE LIBRE (`allowsCustomInput`) : width et height sont requises, dans l’unité de l’option (`unit`, souvent cm : une bâche de 3 m × 1 m s’écrit width 300, height 100) et dans les bornes du gabarit."
    • changedInput schema / properties / selection / properties / options / items / properties / size / properties / code / description
      Previous value: -"Code du gabarit de taille."New value: +"Code ou libellé du gabarit, ou ses mesures (« 60x80 », « 148x210 mm ») : elles désignent le gabarit fixe de ces dimensions, sinon le gabarit sur mesure."
    • changedInput schema / properties / selection / properties / options / items / properties / value / description
      Previous value: -"Code de la valeur retenue (types LIST_OF_VALUES et DELIVERY_TIME)."New value: +"Code ou libellé de la valeur retenue (types LIST_OF_VALUES et DELIVERY_TIME)."
  3. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/destructive/openWorld, so safety is covered; the description goes further by naming the returned price field (devis.finalPriceHt, discount included), the per-tier error isolation (out-of-range tier errors locally without invalidating others), and the rounding rule where an out-of-step tier is quoted at the nearest orderable tier with quotedQuantity indicating the actual quantity. This is substantive behavioral detail beyond annotations, though it doesn't cover rate limits or pagination.

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?

Dense but front-loaded: the core capability and the answering use case come first, then the return field, then the error/rounding semantics. Every sentence carries information, though the density makes it less scannable.

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 no output schema, the description usefully names the price path (devis.finalPriceHt) and explains quotedQuantity, covering the essentials of what comes back. The main uncovered area is the shape of the localized error response, but overall it is sufficient for correct invocation.

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%, so productId, selection and quantities are already documented in the schema, with selection explicitly cross-referencing quote_product's selection form. The description adds no syntax or format detail beyond that baseline; the quantity-tier semantics it discusses are behavioral rather than parameter-level.

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: a quote grid for multiple quantity tiers in a single call, with a concrete example question («combien pour 100, 250, 500 ?»). It references quote_product as sharing the same rule, which implies the distinction (single quote vs multi-tier grid) but doesn't state it directly, so differentiation from the sibling is by inference rather than explicit.

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

Usage Guidelines3/5

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

The example question implies the usage context (comparing several quantities at once) and 'Même règle que quote_product' gestures at the sibling, but there is no explicit 'use this instead of quote_product when…' or when-not guidance. Usage is implied, not prescribed.

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