Supplementenscanner
Server Details
Cheapest supplements by normalized price per kg, serving or capsule, across Dutch stores.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: category discovery, category-level price comparison, catalog search, and product detail lookup. The descriptions explicitly cross-reference when to use find_cheapest versus search_products, removing ambiguity.
All tool names follow a consistent lowercase snake_case verb-first pattern: find_cheapest, get_product, list_categories, search_products. The naming style is uniform and predictable.
Four tools is a lean but well-scoped set for a supplement price-comparison domain. Each tool covers a necessary part of the workflow: discover categories, find cheapest options, search, and retrieve product details.
For a read-only scanning and comparison service, the surface is complete: category discovery, product search, cheapest-price lookup, and detailed product information with price history and purchase links. There are no obvious dead ends in the described workflow.
Available Tools
4 toolsfind_cheapestFind Cheapest ToolARead-onlyIdempotentInspect
Find the cheapest supplements by normalized price-per-unit within a category (and all its subcategories). This is the primary tool for "what is the cheapest X?" questions. Use list_categories first to pick a valid category_slug.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of products to return (1-50). | |
| market | No | Optional country market to query: nl. Defaults to the market of the requested domain. Any other value is rejected. | |
| category_slug | Yes | The category to search within, e.g. "whey-protein" or "creatine". Products in every subcategory are included, so a parent slug like "protein-powder" works too. Get valid slugs from list_categories. | |
| in_stock_only | No | When true, only return products currently in stock. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and idempotent; the description adds meaningful behavioral context about normalized price-per-unit comparison and recursive category/subcategory scope. It does not cover edge cases or return shape, but those are less critical with readOnly/idempotent hints present.
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?
Three tight sentences: the core behavior, the primary use case, and the prerequisite. Nothing is wasted and the key scoping detail is front-loaded.
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 read-only list tool with a fully described input schema, the description is complete enough: it identifies the query intent, the search scope, and how to obtain the required category_slug. No output schema exists, but the tool's output shape is inferable for this kind of listing operation.
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 schema already documents limit, market, category_slug, and in_stock_only. The description's mention of valid slugs and subcategory inclusion reinforces category_slug semantics but does not add meaning beyond it, matching the baseline.
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 exactly what it does: finds cheapest supplements by normalized price-per-unit within a category and its subcategories. This verb+resource+scoping is precise and distinguishes it from siblings like get_product and search_products.
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?
Clear context is provided: it is the primary tool for cheapest-X questions, and the prerequisite call to list_categories is stated. It does not explicitly describe when to prefer search_products or when not to use this tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productGet Product ToolARead-onlyIdempotentInspect
Get full detail for one product by its id: price, normalized unit price, size, bulk/staffel tiers, buy link, and recent price history. Use the id returned by find_cheapest or search_products.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Optional country market to query: nl. Defaults to the market of the requested domain. Any other value is rejected. | |
| product_id | Yes | The numeric product id, as returned in the `id` field by find_cheapest or search_products. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering the safety profile. The description adds value by disclosing the exact scope of data returned (price, size, tiers, etc.) and implies no side effects. It doesn't describe error behavior, but for a read-only get-by-id, the annotations plus field list are sufficient.
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?
A single, well-structured sentence front-loads the purpose and enumerates the returned fields compactly. No redundant wording or filler; every element 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?
The description lists the key return fields, which compensates for the lack of an output schema. It names the source tools for the id, giving the agent enough context to call it correctly. Missing error-handling or pagination details are minor for a simple read-only get, so it is nearly complete.
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 both parameters (product_id and market) are fully documented in the schema. The description reinforces the origin of product_id (from find_cheapest or search_products), which adds a small semantic nuance beyond the schema, but does not materially extend parameter meaning. Baseline 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 states the verb (Get), the resource (a single product by its id), and enumerates the specific fields returned (price, unit price, size, tiers, buy link, price history). It distinguishes itself from siblings like search_products (which searches) and find_cheapest (which finds the cheapest), making its purpose unambiguous.
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 the agent to use the id returned by find_cheapest or search_products, which tells when to use this tool (after obtaining an id) and implicitly when not to (when you don't yet have an id). This is direct usage guidance that reduces ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList Categories ToolARead-onlyIdempotentInspect
List the supplement categories that currently hold priced products, each with a live product count, store count, lowest normalized unit price, and its comparison basis (per_kg / per_serving / per_capsule). Use this to discover a valid category_slug for find_cheapest.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Optional country market to query: nl. Defaults to the market of the requested domain. Any other value is rejected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=true, idempotentHint=true), lowering the bar. The description adds behavioral context beyond the annotations: it is a live view filtered to priced products only, and it deliberately omits empty categories. This dynamic-world nuance complements openWorldHint.
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 sentences with zero waste. The core purpose and return payload are front-loaded, and the usage directive is deferred to the second sentence. Every clause earns its place; no redundant qualifiers or restatement of the title.
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 correctly enumerates the return fields (counts, lowest normalized price, comparison basis), which is essential for an agent expecting a structured response. With only one optional parameter, strong safety annotations, and a clear sibling relationship, nothing required for correct invocation is missing.
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%; the lone 'market' parameter is fully documented in the schema with its default (domain market) and rejection rule. The description adds nothing about this parameter, so baseline 3 applies. No compensation needed since the schema does the heavy lifting.
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 (List), resource (supplement categories), and the exact data returned (product count, store count, lowest normalized unit price, comparison basis). The 'currently hold priced products' qualifier adds precision beyond a generic category list. It clearly differentiates its purpose against find_cheapest, which it exists to feed.
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?
Provides an explicit usage directive: 'Use this to discover a valid category_slug for find_cheapest.' This names the consuming sibling and the condition that selects this tool. It lacks an explicit when-not-to-use statement, but the discovery role is unambiguous enough that an agent can route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch Products ToolARead-onlyIdempotentInspect
Search the whole supplement catalog by product name or brand. Typo-tolerant (e.g. "kreatine", "theanin" still match). Results are ordered by relevance, then cheapest normalized price-per-unit. Use find_cheapest instead when you already know the category.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of products to return (1-50). | |
| query | Yes | The product name or brand to search for, e.g. "whey isolaat" or "magnesium bisglycinaat". | |
| market | No | Optional country market to query: nl. Defaults to the market of the requested domain. Any other value is rejected. | |
| category_slug | No | Optional: restrict results to this category and all of its subcategories, e.g. "protein-powder". Must be a slug from list_categories; an unknown slug is rejected. | |
| in_stock_only | No | When true, only return products currently in stock. | |
| max_unit_price_cents | No | Optional: only return products whose normalized unit price is at or below this many cents. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety and mutability profile is covered. The description adds meaningful behavioral detail: typo tolerance and the result ordering rule (relevance, then cheapest normalized unit price), which are not inferable from annotations or schema.
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?
Three sentences with no filler. The action and scope are front-loaded, followed by behavioral details and a sibling alternative. 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?
Given the rich schema and annotations, the description provides the key decision-making context: matching behavior, ordering, and alternative routing. No output schema exists, so return details are not required. Minor omissions like pagination are not critical for this search tool.
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 baseline is 3. The description adds value by explaining result ordering and typo tolerance, which clarifies how query and max_unit_price_cents affect outputs. This goes beyond the parameter descriptions 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?
States a specific action ('Search'), resource ('whole supplement catalog'), and search dimensions ('product name or brand'). It also distinguishes itself by naming the sibling find_cheapest, making the tool's scope clear.
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 use find_cheapest instead when the category is already known, giving an actionable routing rule. The search-by-name-or-brand context is also clear, so an agent knows when this tool is the right choice.
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.
4 tool updates
- First observed
find_cheapest - First observed
get_product - First observed
list_categories - First observed
search_products
Related MCP Connectors
Supplement prices, price history, SupplementScore ratings & verified discount codes (NL/BE/DE/FR/ES)
Live Dutch supermarket prices and promotions (Albert Heijn, Jumbo, Lidl, Aldi and more) for AI.
Evidence-ranked supplement data: search, compare, price history, goal recs. No API key.
Search sports nutrition in Russia, compare live prices and create Capital Health cart links.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for Dutch supermarkets and drugstores, enabling product search, price comparison, promotions, shopping lists, meal planning, price alerts, and budget tracking via natural language.MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to compare prices, track budgets, and find promotional deals across major Dutch supermarkets and drugstores. It supports automated shopping list optimization, meal planning, and price history alerts for stores like Albert Heijn, Jumbo, and Kruidvat.14MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server for real-time Swiss grocery shopping that searches and compares products across 8 major Swiss retailers (Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, Otto’s), normalizes per-unit prices, surfaces promotions, computes optimal multi-store shopping plans, and works with any MCP-compatible client without API keys or accounts.786 npm30AGPL 3.0
- AlicenseAqualityCmaintenanceEnables searching and retrieving product information, reviews, and details from the Decathlon Netherlands website, including suggestions, pricing, stock, and customer ratings.4GPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.