Skip to main content
Glama

Fulfiller — print catalogue & quotes

Valider une sélection

validate_selection
Read-only

Résout une sélection tolérante en codes canoniques et vérifie sa COMMANDABILITÉ, sans renvoyer de prix. Sert à corriger une sélection avant de la coter. summary décrit en clair la sélection retenue, et son status dit pour chaque option si la valeur est celle demandée, un défaut, ou un changement. requiresReview à true : la sélection retenue diffère de celle demandée, alerts dit pourquoi. enabledOptions liste, pour chaque option, les valeurs activables AVEC cette sélection : c’est là que se lisent les dépendances entre options.

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

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

A4.3/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, non-destructive, closed-world); the description adds substantial non-obvious behavior: it does not return prices, and it explains the meaning of requiresReview=true, alerts, status per option, and enabledOptions as the place where cross-option dependencies are read. With no output schema, this disclosure is exactly what the agent needs.

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 purpose and the price exclusion come first, then the return-field semantics. Every sentence carries information, though the back half is somewhat packed with field names in a single breath.

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?

For a nested-input tool with no output schema, the description explains the key return fields (summary, status, requiresReview, alerts, enabledOptions) and the cross-option dependency concept, which is strong. It does not fully enumerate the response shape, so not quite complete, but adequate.

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%, including a description tying `selection` to quote_product's shape, so the schema already carries the parameter burden. The description adds conceptual framing (a tolerant selection to be corrected) but no syntax or format detail beyond the schema, matching the 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 compound action (resolve a tolerant selection into canonical codes and verify its orderability) and explicitly scopes it against the sibling quote_product by stating it returns no price and is meant to precede quoting. An agent can distinguish this validation step from quoting 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 Guidelines4/5

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

Names the context of use clearly ('to correct a selection before quoting it'), which implicitly routes the agent to run this before quote_product. There is no explicit when-not-to-use or named exclusion, so it stops short of a full 5.

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