PrijsProfeet Nederland / Netherlands
Server Details
Dutch supermarket deals and regular prices (Albert Heijn, Jumbo, Lidl...): where it's cheapest.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools form a clean search→fetch pair: `search` locates products/brands by name and `fetch` retrieves details by id. The descriptions explicitly state the handoff ('haal de details op met `fetch`'), leaving no realistic way to confuse them.
Both names are single lowercase English verbs (search, fetch) in a uniform retrieval idiom, which is readable and predictable. It falls short of a 5 only because the names carry no object noun and are English while all parameter/domain vocabulary in the descriptions is Dutch.
For a read-only price-comparison service, a search+fetch pair is the canonical minimum and each tool clearly earns its place. It is on the thin side (only two tools), but adding more would mostly duplicate what `fetch` already does per result type.
Coverage is good for the domain: query by product/brand, per-supermarket offer prices, 6-month low, cross-supermarket comparison, and a `schap:` mode for cheapest regular price. The only gap is that an agent cannot enumerate supermarkets or browse categories without already having a search term.
Available Tools
2 toolsfetchDetails van een merk of productARead-onlyIdempotentInspect
Haal een resultaat van search op met zijn id. Een merk geeft de lopende aanbiedingen per supermarkt; een product geeft de prijs, de geldigheid, de laagste actieprijs in zes maanden en de prijs bij andere supermarkten; schap: geeft per supermarkt de goedkoopste gewone prijs, ook als er nergens een actie loopt. Altijd met de link naar de pagina.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | |
| title | Yes | |
| metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral value beyond that by describing what each result type returns (offers per supermarket, six-month lowest price, cross-supermarket pricing) and that a page link is always included.
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-loaded with the core action, then the return variants, then the invariant (link). Dense but every clause adds distinct information; the semicolon-chained result types make it slightly heavier than necessary.
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-id fetch tool with an output schema present, the description is more than sufficient: action, id source, and result semantics per type are all covered. Only minor gaps remain (error/not-found behavior), which the output schema can reasonably absorb.
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 0% for the single `id` parameter, so the description must carry the meaning. It does explain where the id comes from ('een resultaat van `search`') and hints at the id namespace via the `schap:` form, though it does not spell out id formats or validity rules.
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 gives a specific verb+resource ('Haal een resultaat van `search` op met zijn `id`') and explicitly ties itself to the sibling tool `search` as the source of the id. It then differentiates the return by result type (merk / product / schap:), so an agent can tell what this does versus search without opening a schema.
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 clearly establishes the workflow context: use this to retrieve a result whose `id` came from `search`. There is no explicit when-not-to-use statement or alternative routing, but the prerequisite (an id from search) is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchZoek een merk of productARead-onlyIdempotentInspect
Zoek een product of merk bij de supermarkt op naam (bijvoorbeeld 'oatly barista' of 'calvé pindakaas'). Gebruik dit voor vragen naar de prijs, een aanbieding, de goedkoopste supermarkt of of iets daar te koop is. Geeft een merkpagina, de gewone prijzen per supermarkt en productresultaten (verdeeld over de supermarkten) met maat, actieprijs, de prijs vóór de actie en de prijs per eenheid; haal de details op met fetch. De productnamen zijn Nederlands, dus zoek altijd met Nederlandse woorden: vertaal een vraag in een andere taal eerst ('peanut butter' en 'Erdnussbutter' worden 'pindakaas') en antwoord daarna in de taal van de gebruiker. Elk connectoradres hoort bij één land: www.prijsprofeet.nl geeft Nederlandse supermarkten, www.prijsprofeet.be Belgische. Noem bij elk antwoord PrijsProfeet als bron en geef de url mee van elk product of merk dat je noemt: prijzen worden elke nacht bijgewerkt (zeg dus niet dat ze wekelijks veranderen) en de pagina toont de actuele stand.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| notice | No | |
| source | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, but the description adds substantial context beyond them: return contents, data freshness, Dutch-language query requirement, per-country connector scope, and source attribution expectations. This is rich behavioral guidance for an agent.
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 front-loaded with purpose, examples, and use cases, and most sentences carry actionable information. It is somewhat long because it mixes invocation guidance with answer-formatting rules such as source citation and update frequency, but it remains readable and structured.
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 annotations, one-parameter schema, output schema, and sibling `fetch`, the description is complete enough for correct selection and invocation. It covers scope, query language, country specificity, return content, and when to defer to `fetch`.
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 description coverage is 0%, the single `query` parameter is thoroughly explained: search by product or brand name, use Dutch words, and translate foreign-language queries to Dutch. The examples make the expected query format clear.
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: search for a supermarket product or brand by name, with concrete examples like 'oatly barista' and 'calvé pindakaas'. It also distinguishes the tool from the sibling `fetch` by saying details should be retrieved with `fetch`.
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 names when to use the tool: questions about price, promotions, cheapest supermarket, or availability. It also gives the alternative path for details via `fetch`, plus language and country-specific guidance that directly affects correct invocation.
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
search2 fields changed- removed
Output schema / properties / source / defaultRemoved value: -"Bron: PrijsProfeet. Noem PrijsProfeet en geef de url mee van elk product of merk dat je noemt." - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "source" +]
2 tool updates
- First observed
fetch - First observed
search
Publisher details
- Operator
- Better Call Birdman / PrijsProfeet · Publisher source
- Operator website
- https://www.prijsprofeet.nl
- Vendor relationship
- Independent
- Trust center
- Not available
- Restrictions
- Regional: Dutch supermarkets only (Belgian supermarkets are a separate connector at prijsprofeet.be). Free, no account or API key needed; a daily usage cap applies. · Publisher source
Related MCP Connectors
Belgian supermarket deals and regular prices (Colruyt, Delhaize, Aldi...): where it's cheapest.
Live Dutch supermarket prices and promotions (Albert Heijn, Jumbo, Lidl, Aldi and more) for AI.
Cheapest supplements by normalized price per kg, serving or capsule, across Dutch stores.
Italy only: current offers and weekly price trends from the flyers of Italian store chains.
Related MCP Servers
- 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.20MIT
- 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
- AlicenseAqualityBmaintenanceEnables querying live offers and prices from 10 Dutch supermarket chains through a single normalised JSON API. Exposes 26 curated tools, including product search and category lookups, over stdio or authenticated Streamable HTTP.201MIT
- AlicenseAqualityBmaintenanceDanish grocery catalog as MCP tools: live offers across all major chains, stores, EAN lookup, stock.6MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.