Fulfiller — print catalogue & quotes
Server Details
Print catalogue and live quotes from Fulfiller, a French online printer shipping across the EU.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 11 tools
Most tools map cleanly to distinct resources and actions: cart lifecycle, product lookup, configuration, validation, and quotation. The only possible confusion is between quote_product and quote_by_quantity, and between search_products and resolve_product, but the descriptions clearly differentiate their purposes.
All tool names follow a consistent lowercase snake_case verb_noun pattern: create_cart, delete_cart, get_cart, update_cart, search_products, resolve_product, quote_product. Even quote_by_quantity fits naturally alongside quote_product, and there is no mixing of camelCase or inconsistent verb styles.
With 11 tools, the server is well-scoped for a print catalogue and quoting workflow. Each tool covers a distinct step in the journey from product discovery to configuration, validation, pricing, and cart management, without unnecessary redundancy.
The tool set covers the full intended workflow: searching and resolving products, retrieving details and configurations, validating selections, requesting firm quotes or quantity grids, and creating/reading/updating/deleting carts. There is no obvious missing lifecycle step for the stated purpose of catalogue browsing and quotation.
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.
| 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?
Annotations already indicate this is a non-read-only, non-destructive operation. The description adds meaningful behavioral context beyond annotations: the cart is anonymous, prices are frozen at addition, nothing is committed, and totals are excluding VAT and shipping. This is valuable and not contradicted by 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?
The description is compact and front-loaded: it states what the tool does, the key pricing/commitment caveats, and the essential prerequisite. Every sentence earns its place with no fluff or repetition.
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?
The input schema is exhaustive and the description covers the conceptual model well. The main gap is that there is no output schema and the description does not explicitly state what the created cart returns (e.g., cart id), which could matter for subsequent update_cart or get_cart calls.
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%, so the input schema already documents all parameters thoroughly. The description reinforces the requirement for productId and sku, but does not add significant meaning beyond the schema's own parameter descriptions.
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 verb ('Crée') and resource ('panier anonyme'), and clearly states it can include initial lines priced at addition with frozen prices. It also distinguishes a cart from an order, which prevents confusion with quote or order tools among the siblings.
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 provides clear context: create a cart, optionally with lines, and each line requires productId and sku from search_products. It does not explicitly name alternatives like update_cart or quote_by_quantity, but it gives enough context for when creation is appropriate.
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.
| 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 provide readOnlyHint=true, so the read-only safety is covered. The description adds behavioral nuance: results are returned as frozen at addition, price age can be assessed via `pricedAt` and `expiresAt`, and stale data should be re-quoted. This goes beyond the annotations without contradicting them.
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 compact sentences with no wasted words. The first sentence states purpose and core behavior; the second adds freshness indicators and routes to an alternative. Information is front-loaded and immediately usable.
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 with no output schema, the description explains the return semantics (frozen cart, `pricedAt`, `expiresAt`) and provides a fallback action. It omits error behavior and full response shape, but the key facts an agent needs 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?
The input schema already covers the single parameter `cartId` with a detailed capability warning, so schema coverage is 100%. The tool description adds no information about the parameter itself; it only refers to output fields, which matches the baseline 3 for fully documented schemas.
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 ('Renvoie') and resource ('le panier'), and adds the key scoping constraint 'tel que FIGÉ à l’ajout' (frozen at addition). This clearly differentiates it from quote_product and other sibling tools by highlighting that reading does not re-quote.
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 when to use an alternative: 'au-delà, re-cotez avec quote_product' (beyond the expiry, re-quote with quote_product). It also establishes the tool's role as a frozen read with no re-quotation, giving the agent a clear decision rule.
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.
| 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 mark the tool as destructive and not read-only. The description adds meaningful behavioral context: operations are applied in a strict order, quantity updates do not trigger re-quoting, additions are quoted, and the complete cart is returned. This goes beyond the annotations without contradicting them.
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 a single, compact sentence that front-loads the critical information: operation order, quoting behavior, and return value. Every part earns its place, and there is no redundant or vague wording.
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-operation mutation tool with no output schema, the description provides the essential behavioral contract: what operations are applied, in what order, and what is returned. It could be slightly more explicit about destructive side effects, but the annotations and schema cover the remaining details.
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 schema already provides detailed explanations for each parameter, including line IDs, quantities, and selection structures. The description contributes operation-level semantics but does not need to restate parameter details, so the baseline score 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 clearly identifies the tool as a cart-modification operation, enumerates the three operation types (remove, update, add), specifies their execution order, and states the return value. This makes it easy to distinguish from sibling cart tools like create_cart, get_cart, and 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?
The description establishes when this tool is appropriate: modifying an existing cart with removals, quantity changes, or additions. It also adds important usage caveats about quoting behavior (update without re-quoting, add with quoting). It does not explicitly name alternatives or exclusion cases, but the context and sibling list make the intended usage sufficiently clear.
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.
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-on-demand fulfillment: manage orders, catalog and account from AI clients. Writes ask first.
Read shops, catalog blueprints, print providers, products and orders; create and publish products.
BARWA print shop (barwa.pl): catalog, product advisor, real-price quotes, shipping, file specs.
Print-on-demand catalog, listings, and fulfillment for AI agents.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables AI agents to browse products, upload designs, place print orders, track shipments, and manage account balance via natural language.8MIT- 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.11MIT