Fulfiller — print catalogue & quotes
Server Details
Print catalogue and live quotes from Fulfiller, a French online printer shipping across the EU.
- Status
- Healthy
- Uptime
- 100.0% over 25 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 11 tools
Chaque outil a une portée explicite et non chevauchante, et les descriptions précisent activement les frontières (search_products vs resolve_product, quote_product vs quote_by_quantity, quote_product vs validate_selection). Des consignes comme « n'appelez pas get_cart juste après create_cart » éliminent les ambiguïtés résiduelles.
Tous les noms suivent le schéma snake_case verbe_nom (create/get/update/delete_cart, get_product_*, quote_*, resolve_product, validate_selection). Aucune convention mixte ni incohérence.
11 outils couvrent de façon proportionnée les trois sous-domaines (catalogue, devis, panier) sans redondance ni outil superflu. C'est dans la plage idéale.
La couverture du cycle de vie est bonne : recherche/résolution/détails/configuration produit, devis unitaire et multi-paliers, validation, et CRUD complet du panier. Il manque toutefois la transformation d'un panier en commande (checkout) et un moyen de lister plusieurs paniers, ce qui constitue un léger trou.
Available Tools
11 toolscreate_cartCréer un panierAInspect
Crée un panier anonyme, éventuellement avec ses premières lignes (cotées à l’ajout, prix FIGÉ). Un panier n’est PAS une commande : rien n’est engagé, et le total est HT — hors TVA et hors port. Chaque ligne exige un productId ET son sku, tous deux rendus par search_products. Renvoie le panier complet : n’appelez pas get_cart juste après.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | Lignes initiales (0 à 5). Un panier vide est légitime. | |
| idempotencyKey | No | UUID optionnel. Rejouer le MÊME appel avec la même clé renvoie le panier déjà créé au lieu d’en créer un second : à utiliser si vous devez réessayer après une erreur. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), the description discloses meaningful behavior: nothing is committed, the total is pre-tax (hors TVA et port), prices are frozen at add time, and the full cart is returned. It adds real context on side-effect semantics and pricing, though it does not cover auth/rate-limit specifics beyond implying anonymity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, front-loaded with the core action and immediately followed by the highest-value caveats (not an order, frozen prices, required inputs, return behavior). No filler; every clause carries an operational instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by stating the return value ("Renvoie le panier complet") and warning against a redundant follow-up call. Combined with the annotations and 100%-covered schema, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds cross-parameter meaning: each line requires productId AND sku, both sourced from search_products, which is a dependency the schema alone does not state. It reinforces rather than replaces the already rich per-field schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Crée un panier anonyme"), adds scope (anonymous) and optional initial lines, and explicitly distinguishes the artifact from a sibling concept ("Un panier n'est PAS une commande"). An agent knows exactly what is produced and how it differs from an order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: use it to start a cart, optionally seeded with lines, and it names the anti-pattern to avoid ("n'appelez pas get_cart juste après") plus the prerequisite source for inputs (search_products). It does not, however, contrast with update_cart for the case of adding lines to an existing cart, so no explicit alternative routing for that decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_cartSupprimer un panierADestructiveInspect
Supprime DÉFINITIVEMENT un panier et toutes ses lignes. Irréversible. Pour retirer une seule ligne, utilisez update_cart avec remove.
| Name | Required | Description | Default |
|---|---|---|---|
| cartId | Yes | Identifiant du panier (UUID) rendu par create_cart. C’est une CAPACITÉ : qui le détient accède au panier — ne le publiez pas hors de la conversation qui l’a créé. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive behavior, and this description adds the specific scope of destruction ('toutes ses lignes' – all its lines) and reinforces irreversibility. This goes beyond the annotation flags by clarifying exactly what gets destroyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences. The first sentence front-loads the action and consequence; the second directs to the alternative without extraneous detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single well-documented parameter, destructive annotations, and explicit guidance to an alternative, the description covers all necessary selection and invocation context. No output schema exists, but return values are not essential for this destructive action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the cartId parameter is already documented in detail in the schema (UUID, source, capability warning). The tool description itself does not add parameter information, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action verb ('Supprime DÉFINITIVEMENT' – permanently deletes) and a clear object ('un panier et toutes ses lignes' – a cart and all its lines). It distinguishes itself from update_cart by noting that single-line removal belongs there.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when not to use this tool: to remove only one line, use update_cart with `remove`. This creates a clear decision rule between siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cartLire un panierARead-onlyInspect
Renvoie le panier tel que FIGÉ à l’ajout : aucune re-cotation à la lecture. pricedAt par ligne et expiresAt donnent l’âge des prix — au-delà, re-cotez avec quote_product. Sert à RELIRE un panier existant (plus tard dans la conversation, ou quand l’utilisateur demande à le revoir) : inutile juste après create_cart ou update_cart, qui renvoient déjà le panier complet.
| Name | Required | Description | Default |
|---|---|---|---|
| cartId | Yes | Identifiant du panier (UUID) rendu par create_cart. C’est une CAPACITÉ : qui le détient accède au panier — ne le publiez pas hors de la conversation qui l’a créé. | |
| display | No | Afficher la carte du panier à l’utilisateur, dans les clients qui affichent les interfaces MCP Apps. `false` pour un appel intermédiaire qu’il n’a pas besoin de voir (vérifier avant de répondre) ; omis ou `true` dès qu’il doit voir le résultat. Sans effet sur le résultat lui-même. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint; the description adds substantial context beyond them — prices are frozen, pricedAt/expiresAt reveal price age and the point at which re-quoting is required, plus the security trait that cartId is a capability not to be published outside the originating conversation. It also explains the display flag's side effect on the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core behavior (frozen cart, no re-pricing) before the routing guidance, and every sentence carries distinct, load-bearing information — the freeze semantics, the price-age cue, the when-to-use trigger, and the sibling exclusion. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by explaining the returned shape at a high level (frozen prices, per-line pricedAt, expiresAt) and the freshness workflow. Combined with the annotations and fully-covered schema, an agent has everything needed to call and interpret this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already documented in-schema, including the cartId capability warning and the display card behavior. The description's pricedAt/expiresAt discussion concerns returned fields rather than parameters, so it adds little parameter-level meaning beyond the schema; the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Renvoie le panier') and immediately names the defining scope: the cart as frozen at add-time with no re-pricing on read. It explicitly distinguishes itself from create_cart and update_cart, which 'renvoient déjà le panier complet', so an agent can route without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (re-reading a cart later in the conversation, or when the user asks to see it again) and an explicit when-NOT-to-use (right after create_cart or update_cart). It also names the alternative for stale prices (quote_product), so both the trigger and the competing tool are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_configurationLire l’espace de configuration d’un produitARead-onlyInspect
Renvoie les options configurables d’un produit (quantités, délais, valeurs, tailles) et leurs valeurs disponibles. À appeler AVANT validate_selection ou quote_product : chez Fulfiller, un produit n’est pas un SKU à prix figé mais un espace de configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Identifiant rendu par search_products. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, and the description aligns with these by describing a read operation. It adds the key behavioral insight that products are configuration spaces rather than fixed SKUs, which explains why this tool exists and what to expect, though it doesn't detail aspects like pagination or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with the core purpose stated in the first sentence and essential usage guidance in the second. Every sentence contributes value, and the length is appropriate for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool, the description is complete. It clearly explains what the tool does, when to use it, and how it relates to subsequent steps, making it sufficient for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 100%, the schema fully documents the productId parameter. The description adds context that productId is obtained from search_products via the schema, and reinforces that the tool returns configuration options for that product, providing a slight enhancement over the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns configurable options (quantities, delays, values, sizes) and their available values for a product. It distinctly differentiates it from sibling tools by explaining that a product is a configuration space, not a fixed-price SKU, so agents can understand its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call this tool BEFORE validate_selection or quote_product, giving a clear temporal ordering. The explanation that products are configuration spaces rather than fixed SKUs provides strong contextual guidance for when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_detailsLire la fiche d’un produitARead-onlyInspect
Fiche PIM d’un produit : descriptions, points clés, questions fréquentes, contraintes de fichier (fond perdu, résolution, marges, mode colorimétrique) et ressources (visuels, gabarits, consignes techniques). À utiliser pour DÉCRIRE un produit ou aider à préparer un fichier. Ne renvoie aucun prix — pour coter, passez par quote_product. Fournissez exactement un argument. Les champs absents ne sont pas renseignés au PIM ; la FAQ est rare.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | SKU exact, tel que rendu par search_products ou resolve_product. | |
| url | No | URL de la page produit sur www.fulfiller.com. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description adds valuable behavioral context: it returns no price, missing fields are simply absent from the PIM, and the FAQ is rarely populated. This helps an agent set expectations about the response without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: the resource type and content are front-loaded, the price exclusion and alternative tool are stated clearly, and the argument cardinality and data-availability caveats are concise. The structure makes the most important information immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description adequately covers what the agent can expect: product descriptions, constraints, resources, and the absence of pricing. Usage intent, parameter cardinality, and missing-field semantics are all addressed, making the definition sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both sku and url in full, so the baseline is 3. The description adds the important constraint 'Provide exactly one argument', which clarifies that the agent should choose one of the two optional parameters rather than passing both or neither.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it retrieves the PIM sheet for a product, listing descriptions, key points, FAQ, file constraints, and resources. It also distinguishes itself from quote_product by explicitly stating it returns no price, making it easy for an agent to select the right tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use the tool: to describe a product or help prepare a file. It also gives an exclusion, directing pricing workflows to quote_product, and instructs the agent to provide exactly one argument, which is actionable guidance for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_by_quantityComparer les prix par quantitéARead-onlyInspect
Grille de devis pour plusieurs paliers de quantité en UN appel — la bonne façon de répondre à « combien pour 100, 250, 500 ? ». Un palier hors plage ressort en erreur localisée sans invalider les autres.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | ||
| selection | Yes | 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`. | |
| quantities | Yes | Paliers de quantité à coter (1 à 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavior beyond the readOnlyHint/openWorldHint annotations: one call handles multiple tiers, and an out-of-range tier produces a localized error without invalidating the other tiers. This is valuable runtime context that the annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first front-loads the core capability and the second adds a key behavioral detail. No filler, no redundancy, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description gives a reasonable picture of the return concept ('Grille de devis') and a key edge-case behavior. It could be more explicit about the exact response shape or how it compares to quote_product, but it is sufficiently complete for tool selection and basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with quantities and selection already well described. The description reinforces the quantity-tier concept and error behavior, but it does not add much meaning beyond the schema for productId or the selection object. Moderate added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: produce a quote grid for multiple quantity tiers in a single call. It clearly differentiates from sibling quote_product by emphasizing 'plusieurs paliers de quantité' and 'en UN appel', so an agent can tell when this tool is intended.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit context: this is 'la bonne façon' to answer quantity-tier questions like 'combien pour 100, 250, 500 ?'. It does not explicitly name alternatives or state when not to use it, so it misses the full when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_productCoter une sélectionARead-onlyInspect
Devis RÉEL pour une sélection : prix HT calculé par le moteur de tarification (jamais lu dans une table de SKU), devise, délai, promotion. C’est le seul prix ferme. Si requiresReview vaut true, le prix porte sur resolvedSelection, pas sur la demande.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | ||
| selection | Yes | 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`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description reveals important behavior: the price is computed by the pricing engine rather than read from stored SKU data, it is the only firm price, and when `requiresReview` is true the quotation applies to `resolvedSelection` rather than the original request. This is valuable, non-obvious behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every clause earns its place. The conditional warning is placed at the end without cluttering the main message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with nested input objects and no output schema, the description covers the most critical conceptual output fields and the `requiresReview` caveat. It could be more complete by explaining how to obtain or construct `productId`, but the essential pricing behavior and review semantics are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description does not compensate for the undocumented `productId` parameter. It mentions 'selection' in general terms but adds little meaning beyond the input schema, and the `requiresReview` remark refers to output behavior rather than input parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is explicit: it produces a real quote for a selected product configuration, with HT price computed by the pricing engine, currency, lead time, and promotion. It also distinguishes itself from alternatives by emphasizing that this is the only firm price and that it is never read from a SKU table.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when a firm, real price for a selection is needed, and it warns about the `requiresReview` case. However, it does not explicitly name sibling alternatives like `quote_by_quantity` or state when not to use them, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_productRésoudre un produit par SKU ou URLARead-onlyInspect
Convertit une identité EXACTE en productId : sku (lisible dans le JSON-LD d’une page produit) ou url de la page. À PRÉFÉRER à search_products dès que vous tenez l’un des deux — la recherche est approximative, celle-ci ne l’est pas. Fournissez exactement un argument.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | SKU exact (ex. « POSTER_PHOTO_SUR_MESURE »). | |
| url | No | URL de la page produit sur www.fulfiller.com. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only safety and open-world semantics. The description adds exact-match behavior, the JSON-LD source for SKUs, and the one-argument constraint, which go beyond annotations. It does not describe error behavior when no match is found, but that is minor for a read-only resolver.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, each earning its place: purpose first, usage guidance second, operational constraint last. There is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter resolver with no required fields and no output schema, the description gives everything an agent needs: exact input identity, the result (productId), the preferred scenario over search_products, and the mutual-exclusivity constraint. Missing error details are negligible here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema descriptions cover both parameters, the schema has required: [] and would not convey mutual exclusivity. The description's 'Provide exactly one argument' clarifies that sku and url are alternatives, and it adds useful source context for extracting the SKU from JSON-LD. This is critical semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: converting an exact SKU or URL into a productId. It also differentiates itself from search_products by emphasizing exactness, so an agent can distinguish the tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to prefer this tool over search_products whenever an exact SKU or URL is available, and explains why: search is approximate, this is not. It also mandates exactly one argument, removing ambiguity about invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsRechercher des produitsARead-onlyInspect
Recherche plein-texte dans le catalogue Fulfiller et renvoie des produits COTABLES (productId, sku, url, prix d’appel). Point d’entrée obligatoire : les autres outils travaillent sur le productId renvoyé ici. startingPrice est un PLANCHER dont la base (TOTAL, UNIT, PER_SQUARE_METER) change d’un produit à l’autre — ne comparez jamais deux bases différentes et n’annoncez pas ce prix comme ferme : seul quote_product l’est.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Mots-clés en français (ex. « carte de visite », « bâche publicitaire »). | |
| limit | No | Nombre de résultats souhaité (1 à 24). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description explains that startingPrice is a floor whose unit basis varies by product and must not be compared or quoted as firm, with quote_product being the only authoritative source. This is valuable behavioral context absent from the schema, though it does not cover result ordering 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The two-sentence description is dense but every clause carries meaning: the resource, the returned fields, the entry-point obligation, and the critical price caveat. It front-loads the core purpose before the warning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with only two simple parameters and no output schema, the description covers the essential usage contract: what is returned, how to interpret the price, and how the tool fits into the workflow. No critical information is missing for a competent agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both q and limit are already described in the input schema. The description adds no additional parameter semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: full-text search in the Fulfiller catalog returning quotable products with a defined field list (productId, sku, url, prix d'appel). It distinguishes itself by declaring it the mandatory entry point on which all other tools rely, making it easy to separate from siblings like get_product_details or quote_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs that this tool must be used first, because other tools operate on the productId returned here. This is clear when-to-use guidance even without a direct search alternative among siblings, and it warns against treating startingPrice as final.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_cartModifier un panierADestructiveInspect
Applique, DANS CET ORDRE : retraits (remove), changements de quantité (update, sans re-cotation), puis ajouts (add, cotés). Renvoie le panier complet après application : n’appelez pas get_cart juste après.
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | Nouvelles lignes, cotées à l’ajout. | |
| cartId | Yes | Identifiant du panier (UUID) rendu par create_cart. C’est une CAPACITÉ : qui le détient accède au panier — ne le publiez pas hors de la conversation qui l’a créé. | |
| remove | No | `lineId` des lignes à retirer. | |
| update | No | Nouveau nombre de LOTS pour des lignes existantes (prix unitaire figé inchangé). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive=true and openWorld=true, so the safety profile is partly covered. The description adds genuinely non-obvious behavior: the fixed execution order, that `update` avoids re-quoting while `add` is quoted, and that the full cart is returned — context the annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with zero filler; the ordering constraint and the return-then-don't-call-get_cart rule are both front-loaded where an agent will read them.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-param mutating tool with no output schema, the description covers execution order, quoting behavior, and the return value shape, plus the anti-pattern (don't call get_cart). It omits nothing critical, though it could note that cartId is a bearer capability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description earns a bump by explaining the operation ORDER of the `remove`/`update`/`add` parameters — semantic information a JSON schema cannot convey — plus the no-re-quote vs quoted distinction, though it does not restate cartId's capability warning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (applies mutations) and resource (the cart), and uniquely conveys the atomic ordering semantics: remove → update → add. It implicitly differentiates from get_cart by telling the agent not to call it afterward, but does not explicitly contrast with create_cart/delete_cart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage direction: apply operations in a fixed order, expect a fully-updated cart back, and do not follow with get_cart. It stops short of stating prerequisites (e.g., cart must exist / come from create_cart) or when to prefer delete_cart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_selectionValider une sélectionARead-onlyInspect
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. Lisez alerts et requiresReview : true signifie que la sélection retenue diffère de celle demandée.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | ||
| selection | Yes | 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`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Les annotations readOnlyHint et openWorldHint couvrent déjà la sécurité de lecture, et la description ajoute des comportements utiles : résolution tolérante, vérification de la commandabilité, absence de prix renvoyé, et signification de alerts/requiresReview. Cela aide l'agent à interpréter la réponse sans schéma de sortie.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Deux phrases denses, sans répétition du schéma, avec l'information essentielle placée en tête. Chaque phrase apporte un élément distinct : comportement, usage, et clés de lecture de la réponse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
En l'absence de schéma de sortie, la description précise les points clés du résultat (pas de prix, alerts, requiresReview) et le moment d'utilisation. Elle reste un peu elliptique sur la forme exacte de la réponse et sur le rôle précis de productId, mais l'ensemble est suffisant pour une invocation correcte.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Le schéma décrit déjà la tolérance de la sélection, et la description réutilise ce concept sans apporter de détail supplémentaire sur productId ou sur les paramètres individuels. La couverture de schéma est de 50 %, et productId reste non documenté, mais la description donne un contexte général utile.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
La description énonce un verbe précis (« résout »), une ressource claire (« une sélection ») et un objectif identifiable (« vérifie sa commandabilité »). Elle mentionne explicitement l'absence de prix, ce qui la distingue immédiatement des outils de cotation comme quote_product ou quote_by_quantity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
« Sert à corriger une sélection avant de la coter » donne un contexte d'utilisation temporel et fonctionnel clair. Toutefois, elle ne nomme pas explicitement d'alternatives ni de cas où il ne faut pas utiliser cet outil.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
get_cart1 field changed- added
Input schema / properties / displayAdded value: +{ + "description": "Afficher la carte du panier à l’utilisateur, dans les clients qui affichent les interfaces MCP Apps. `false` pour un appel intermédiaire qu’il n’a pas besoin de voir (vérifier avant de répondre) ; omis ou `true` dès qu’il doit voir le résultat. Sans effet sur le résultat lui-même.", + "type": "boolean" +}
11 tool updates
- First observed
create_cart - First observed
delete_cart - First observed
get_cart - First observed
get_product_configuration - First observed
get_product_details - First observed
quote_by_quantity - First observed
quote_product - First observed
resolve_product - First observed
search_products - First observed
update_cart - First observed
validate_selection
Related MCP Connectors
Print shop in Spain: products, exact prices, quote requests and order status for AI assistants
81Live prices in USD, options and shipping quotes for custom-printed promotional products.
Live prices, options and shipping quotes in GBP for custom-printed promotional products.
Live prices, options and shipping quotes for custom-printed promotional products.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables AI agents to browse products, upload designs, place print orders, track shipments, and manage account balance via natural language.14 npmMIT- AlicenseBqualityCmaintenanceCompare parcel and letter delivery prices across 60+ carriers in 27 European countries.1MIT
- FlicenseNot gradedqualityDmaintenanceCalculate empty shipping container delivery costs in France. Automatically selects the optimal depot and returns real prices (without and with VAT).-
- AlicenseNot gradedqualityAmaintenanceProvides comprehensive print production and color management tools (Pantone lookup, CMYK/RGB conversion, ink estimation, preflight checks, etc.) that work 100% offline without API keys.1,840 PyPI16MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.