Bikefuchs — Bike Parts Price Comparison
Server Details
Price comparison & cart optimizer for bike parts across German & Austrian shops
- Status
- Healthy
- Uptime
- 100.0% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- bikefuchs/bikefuchs-mcp-stub
- GitHub Stars
- 0
- Server Listing
- bikefuchs-mcp-stub
TDQS
Scored across 7 tools
Most tools are clearly distinct, but get_best_price and find_alternatives_for_product are functionally identical: both take an EAN and return every shop carrying it with prices and stock. An agent could easily select either without knowing the difference.
All tool names follow a consistent imperative verb_object pattern using lowercase snake_case, such as search_product, get_shop_info, and optimize_cart. The naming clearly signals what each action does.
Seven tools is a well-scoped size for a bike parts price comparison server. Each tool maps to a meaningful step in discovery, price lookup, shipping calculation, or cart optimization.
The tool surface covers the full comparison workflow: search by name, resolve URL to EAN, look up prices per shop, evaluate shipping costs, and optimize multi-item carts across shops. No major dead ends or missing operations are apparent.
Available Tools
7 toolsfind_alternatives_for_productFind Alternative ShopsARead-onlyIdempotentInspect
Given a product's EAN barcode, return every shop that carries it with prices and availability, sorted cheapest-first.
| Name | Required | Description | Default |
|---|---|---|---|
| ean | Yes | EAN barcode (8–14 digits, e.g. '4524667749493') | |
| country | No | Country for pricing (DE or AT, default DE) | DE |
Output Schema
| Name | Required | Description |
|---|---|---|
| ean | Yes | |
| disclosure | No | |
| alternatives | Yes | |
| product_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the behavior of sorted output and availability inclusion, which is helpful but does not disclose potential rate limits or pagination. It does not contradict annotations, and adds some value beyond 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 sentence with zero waste. It front-loads the main action (given EAN, return shops) and includes key details (prices, availability, sorting) compactly. Every word adds value.
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 presence of an output schema and annotations that cover safety, the description is fairly complete. It explains the main behavior and sorting. It does not mention edge cases like no shops found or errors, but for a read-only tool with schema coverage, it covers the essential information an agent needs.
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 'ean' and 'country' are already documented with patterns, defaults, and enums. The description does not add additional parameter semantics beyond what the schema provides, so a 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 states the tool's purpose: given a product EAN, return shops with prices and availability sorted cheapest-first. It uses a specific verb and resource, and differentiates from siblings by focusing on alternatives and sorting, though it doesn't explicitly name sibling tools for contrast.
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 implies usage when a user wants to find alternative shops for a product, but does not explicitly state when to use this tool instead of alternatives like get_best_price or search_product. It provides context for the sort order but lacks explicit when-not or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_best_priceGet Best Price by EANARead-onlyIdempotentInspect
Look up a single product by its EAN barcode and return the price at every shop that carries it, sorted cheapest-first, with stock status and direct purchase links.
| Name | Required | Description | Default |
|---|---|---|---|
| ean | Yes | EAN barcode (8–14 digits, e.g. '4524667749493') | |
| country | No | Country for pricing (DE or AT, default DE) | DE |
| reference_shop | No | Shop id or display name to compare against. When set, the response states how much cheaper the cheapest shop is vs. this shop. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ean | Yes | |
| prices | Yes | |
| next_step | No | |
| disclosure | No | |
| product_name | Yes | |
| cheapest_shop | Yes | |
| cheapest_price | Yes | |
| reference_comparison | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral detail: results cover every shop that carries the product, are sorted cheapest-first, and include stock status and purchase links. No contradiction with the annotations exists.
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 sentence front-loads the core action ('Look up a single product by its EAN barcode') and then packs the output details into a compact list: price at every shop, cheapest-first, stock status, and purchase links. Every phrase earns its place and there is 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?
With an output schema present and annotations covering read-only/idempotent behavior, the description supplies exactly the remaining selection-level context: single-product EAN lookup, cross-shop price comparison, ordering, stock, and links. Nothing an agent needs to choose or invoke this tool correctly appears to be 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%: ean has a pattern and example, country has an enum and default, and reference_shop is explained. The description adds no extra parameter meaning beyond saying 'by its EAN barcode,' but it doesn't need to because the schema fully handles semantics. 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 uses a specific verb ('Look up') and resource ('single product by its EAN barcode'), and it names the exact output: price at every shop, sorted cheapest-first, with stock status and direct purchase links. This clearly distinguishes it from siblings like search_product or find_alternatives_for_product. The 'single product' qualifier removes ambiguity about scope.
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 when you have one EAN barcode and need prices across shops. The word 'single' and the focus on price comparison imply when this tool is appropriate. It stops short of explicitly naming alternatives or stating when not to use it, but the context is unambiguous enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shipping_breakdownGet Shipping CostARead-onlyIdempotentInspect
Return the exact shipping cost for a specific shop, country, and cart value, including all shipping tiers and how much more is needed to reach the next free-shipping threshold.
| Name | Required | Description | Default |
|---|---|---|---|
| shop | Yes | Shop name or ID (e.g. 'rosebikes', 'boc24', 'bike24', 'fahrradteile', 'Rose Bikes') | |
| country | Yes | Country (DE or AT) | |
| cart_value | Yes | Total cart value in EUR (e.g. 49.99) |
Output Schema
| Name | Required | Description |
|---|---|---|
| shop | Yes | |
| country | Yes | |
| currency | Yes | |
| cart_value | Yes | |
| shipping_cost | Yes | |
| free_shipping_threshold | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds no further side-effect or operational context such as costs, errors, or special cases. The mention of tiers and the free-shipping threshold describes output content rather than a behavioral trait, so no significant extra value beyond the safety annotations is added.
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, front-loaded sentence starts with the action ('Return the exact shipping cost') and packs the required parameters and outputs into one efficient clause. There is no filler, repetition, or tangential information.
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 three-parameter read-only tool with a full input schema, complete annotations, and an output schema available, the description supplies all context an agent needs to decide and invoke correctly. It explains the key derived output, the free-shipping threshold gap, that a caller would otherwise not anticipate.
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% with detailed descriptions for all three parameters, so the schema carries the meaning. The description restates the parameter concepts but adds no new format, unit, or edge-case 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 names a precise action (return exact shipping cost), a clear resource (a specific shop, country, and cart value), and the distinct outputs (all shipping tiers and the gap to free-shipping). This differentiates it from sibling tools such as get_best_price, which concern product pricing rather than shipping cost.
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 implies when to use the tool: whenever the agent needs the shipping cost for a known shop, country, and cart value. It doesn't explicitly list alternatives or exclusion conditions, but the strong context makes the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shop_infoGet Shop OverviewARead-onlyIdempotentInspect
Return an overview of the supported shops, including their shipping cost tiers, free-shipping thresholds, and supported countries (DE and AT).
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Filter output to a specific country (optional — omit for both DE and AT) |
Output Schema
| Name | Required | Description |
|---|---|---|
| shops | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds content-level context but no additional behavioral traits such as rate limits, required permissions, or data-source caveats. This is acceptable given the strong annotation coverage.
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 front-loaded sentence with no filler or redundant information. Every clause adds value: the resource, the nature of the output, and the specific countries covered are all stated efficiently.
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?
This is a simple read-only tool with one optional parameter, a rich schema, an output schema, and strong annotations. The description provides enough detail about the returned content and the supported countries for an agent to invoke it correctly without further clarification.
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%, with the schema already documenting the optional country parameter and its DE/AT restriction. The tool description reinforces that DE and AT are the supported countries but does not add new meaning beyond the schema, 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 states a specific verb and resource ('Return an overview of the supported shops') and enumerates concrete contents: shipping cost tiers, free-shipping thresholds, and countries DE/AT. This clearly differentiates it from siblings like get_shipping_breakdown or get_best_price, which focus on transactional or pricing details rather than shop-level overviews.
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 says what the tool returns but gives no guidance on when to prefer it over alternatives or when not to use it. It does not mention any sibling tools or conditions that would route an agent to get_shipping_breakdown, get_best_price, or optimize_cart instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_cartOptimize Shopping CartARead-onlyIdempotentInspect
Find the cheapest way to buy multiple products together: computes the optimal split across shops — which items to order from which shop — accounting for each shop's shipping costs and free-shipping thresholds, and returns the lowest achievable total including shipping. Takes an array of EAN barcodes. For accurate results, call get_best_price for each EAN first, then call optimize_cart.
| Name | Required | Description | Default |
|---|---|---|---|
| eans | Yes | Array of EAN barcodes (8–14 digit numbers as strings, e.g. '4524667749493'). NOT URLs. | |
| country | No | Country for pricing and shipping (DE or AT, default DE) | DE |
Output Schema
| Name | Required | Description |
|---|---|---|
| disclosure | No | |
| optimization | Yes | |
| savings_info | No | |
| stale_cache_warning | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds meaningful behavior: it computes an optimal split, accounts for shipping costs and free-shipping thresholds, and returns the lowest total including shipping. It also surfaces the dependency on prior get_best_price calls, which is useful operational context beyond the annotations. No contradiction exists.
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 sentences, front-loaded with the core purpose and followed by a short prerequisite. The only mild redundancy is 'Takes an array of EAN barcodes,' which is already in the schema, but it is brief and does not obscure the useful content.
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 output schema covers return values, the input schema covers parameters and constraints, and the description covers purpose, algorithm, and prerequisite workflow. For an optimizer tool with a documented output schema, nothing essential 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%, with both eans and country fully documented including format, pattern, default, and enum values. The description only restates that the tool takes an array of EAN barcodes, adding little beyond the schema, though it does imply these should come from prior get_best_price lookups.
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 opens with a specific verb and resource ('Find the cheapest way to buy multiple products together') and explains the exact computation: the optimal split across shops, including shipping costs and free-shipping thresholds. This clearly distinguishes optimize_cart from sibling tools like get_best_price, which handles individual 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?
The description gives explicit workflow guidance: 'For accurate results, call get_best_price for each EAN first, then call optimize_cart.' This tells an agent when in a sequence to use the tool, but it does not explicitly state when not to use it or name alternative cart-level approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_productResolve Product URLARead-onlyIdempotentInspect
Turn a product page URL from a supported shop into structured product data — EAN barcode, price, stock status, and a purchase link — so the EAN can then be used with get_best_price or optimize_cart. Multi-variant product families return a labeled candidate list (size/colour, price, EAN per variant): ask the user to pick a variant, then use that exact variant's EAN with the other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Product page URL from a supported shop (e.g. 'https://www.rosebikes.de/p/<product-name>-<id>') | |
| country | No | Country for pricing (DE or AT, default DE) | DE |
Output Schema
| Name | Required | Description |
|---|---|---|
| ean | No | |
| axis | No | Variant axis of the options: 'size', 'colour', 'mixed', 'size_name' or 'name'. |
| shop | Yes | |
| brand | No | |
| price | No | |
| status | No | 'not_resolved' when the exact variant could not be determined; 'pick_variant' when labeled variant options are returned to choose from. |
| message | No | |
| options | No | Variants of ONE product. Ask the user to pick one, then use that variant's EAN. |
| resolved | No | |
| disclosure | No | |
| family_url | No | Branded /go/ link to the product family page so the user can pick the variant. |
| product_name | Yes | |
| affiliate_url | No | Affiliate link for this product. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: the multi-variant candidate list and the instruction to ask the user for a variant selection. It also notes the limitation to 'supported shops'. This adds meaningful transparency without contradicting any annotation.
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 two sentences, front-loaded with the primary action and output, then adding essential multi-variant handling. Every clause contributes to understanding the tool's behavior or downstream use. No redundant or filler phrases. It is concise yet comprehensive.
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 tool's moderate complexity (URL resolution with possible variants), the description covers all necessary operational aspects: inputs, outputs, variant handling, user interaction, and downstream tool integration. An output schema exists (per context signals), so the description need not enumerate return values. It is complete for an agent to call the tool 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?
The input schema provides full descriptions for both parameters (url and country), including an example and enum/default values, so schema coverage is 100%. The tool description does not add additional parameter-specific meaning beyond what the schema already states. It mentions the overall purpose but not parameter-specific nuances, so the baseline of 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 ("Turn"), a clear resource (product page URL), and a precise output (structured product data with EAN, price, stock status, purchase link). It also names downstream tools (get_best_price, optimize_cart) and distinguishes multi-variant behavior, making it unambiguous and distinct from siblings like search_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?
The description clearly implies the workflow: resolve a URL to get an EAN, then use that EAN with get_best_price or optimize_cart. It also gives explicit guidance for multi-variant families (ask user to pick a variant). However, it does not explicitly state when not to use this tool or name alternatives for cases where a URL is unavailable, so it stops short of full exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productSearch Bike ProductsARead-onlyIdempotentInspect
Search for bicycle parts, components, accessories, and cycling clothing by name, brand, or model number. Returns matching products sorted cheapest-first, each with its price, stock status, EAN barcode, and a direct purchase link. Supports DE and AT pricing. If you already have a product's EAN, use get_best_price instead.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search keyword, min 2 chars. Multi-word queries use AND logic across product name, description, and specifications (e.g. 'shimano xt bremsbeläge') | |
| shop | No | Restrict results to a single supported shop (by id or name) | |
| country | No | Country for pricing (DE or AT, default DE) | DE |
| category | No | Filter by merchant category (partial match, e.g. 'Fahrräder' or 'Bremsen') | |
| in_stock | No | Only return in-stock products (default true) | |
| max_price | No | Upper price bound in EUR (inclusive) | |
| max_results | No | Max results (1–20, default 10) |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| results | Yes | |
| disclosure | No | |
| next_steps | No | |
| total_results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: results are sorted cheapest-first, each result includes price, stock status, EAN, and a direct purchase link, and pricing supports DE and AT. This gives the agent a clear picture of what the call will return and how output is ordered.
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 sentences with no filler: it states the scope, the output behavior, and the key routing exception. The most important orientation information is front-loaded, and every sentence contributes something useful.
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 input schema, the output schema, and the annotations, the description covers all essential context an agent needs to decide when to use the tool and what to expect. It explains scope, ordering, result contents, pricing countries, and the alternative for EAN lookups, leaving no significant gap.
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 adds extra semantic value by clarifying that the query parameter searches by name, brand, or model number, and that country-specific pricing applies to DE and AT. These details complement the schema rather than merely repeating it.
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 identifies a specific verb ('Search'), a concrete resource ('bicycle parts, components, accessories, and cycling clothing'), and the search dimensions (name, brand, model number). It also differentiates itself from get_best_price by explicitly stating that EAN-based lookup should go to that sibling instead.
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 for when search_product is appropriate and provides an explicit exclusion: if the agent already has a product's EAN, it should use get_best_price instead. This is direct routing guidance rather than leaving tool selection to inference.
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.
5 tool updates
- Changed
find_alternatives_for_product1 field changed- added
Output schema / properties / disclosureAdded value: +{ + "type": "string" +}
- Changed
get_best_price1 field changed- added
Output schema / properties / disclosureAdded value: +{ + "type": "string" +}
- Changed
optimize_cart1 field changed- added
Output schema / properties / disclosureAdded value: +{ + "type": "string" +}
- Changed
resolve_product1 field changed- added
Output schema / properties / disclosureAdded value: +{ + "type": "string" +}
- Changed
search_product1 field changed- added
Output schema / properties / disclosureAdded value: +{ + "type": "string" +}
1 tool update
- Changed
resolve_product1 field changed- changed
Input schema / properties / url / descriptionPrevious value: -"Product page URL from a supported shop (e.g. 'https://www.rosebikes.de/p/sram-pc-951-9-fach-kette-159128')"New value: +"Product page URL from a supported shop (e.g. 'https://www.rosebikes.de/p/<product-name>-<id>')"
1 tool update
- Changed
resolve_product1 field changed- changed
Input schema / properties / url / descriptionPrevious value: -"Product page URL from a supported shop (e.g. 'https://www.bike24.de/p2462871.html')"New value: +"Product page URL from a supported shop (e.g. 'https://www.rosebikes.de/p/sram-pc-951-9-fach-kette-159128')"
1 tool update
- Changed
resolve_product2 fields changed- changed
Output schema / properties / axis / descriptionPrevious value: -"Variant axis of the options: 'size', 'colour', 'mixed' or 'size_name'."New value: +"Variant axis of the options: 'size', 'colour', 'mixed', 'size_name' or 'name'." - added
Output schema / properties / options / items / properties / product_nameAdded value: +{ + "description": "Verbatim product name for a flat name-axis option; use as the choice label when present.", + "type": "string" +}
1 tool update
- Changed
resolve_product7 fields changed- added
Output schema / properties / options / items / properties / in_stock / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - added
Output schema / properties / options / items / properties / in_stock / descriptionAdded value: +"Stock at the input shop; null when unknown per variant." - removed
Output schema / properties / options / items / properties / in_stock / typeRemoved value: -"boolean" - added
Output schema / properties / options / items / properties / price / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - added
Output schema / properties / options / items / properties / price / descriptionAdded value: +"Price at the input shop; null when only a family-level page price exists." - removed
Output schema / properties / options / items / properties / price / typeRemoved value: -"number" - changed
Output schema / properties / options / items / requiredPrevious value: -[ - "ean", - "price", - "in_stock" -]New value: +[ + "ean" +]
1 tool update
- Changed
resolve_product2 fields changed- changed
Output schema / properties / axis / descriptionPrevious value: -"Variant axis of the options: 'size', 'colour' or 'mixed'."New value: +"Variant axis of the options: 'size', 'colour', 'mixed' or 'size_name'." - added
Output schema / properties / options / items / properties / donor_labelAdded value: +{ + "description": "Verbatim variant/product name; use as the choice label when present.", + "type": "string" +}
1 tool update
- Changed
resolve_product3 fields changed- added
Output schema / properties / axisAdded value: +{ + "description": "Variant axis of the options: 'size', 'colour' or 'mixed'.", + "type": "string" +} - added
Output schema / properties / optionsAdded value: +{ + "description": "Variants of ONE product. Ask the user to pick one, then use that variant's EAN.", + "items": { + "additionalProperties": false, + "properties": { + "colour": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ean": { + "description": "EAN of this exact variant — use it with get_best_price / optimize_cart.", + "type": "string" + }, + "in_stock": { + "type": "boolean" + }, + "price": { + "type": "number" + }, + "size": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "ean", + "price", + "in_stock" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / status / descriptionPrevious value: -"'not_resolved' when the exact variant could not be determined."New value: +"'not_resolved' when the exact variant could not be determined; 'pick_variant' when labeled variant options are returned to choose from."
1 tool update
- Changed
resolve_product4 fields changed- added
Output schema / properties / family_urlAdded value: +{ + "description": "Branded /go/ link to the product family page so the user can pick the variant.", + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / resolvedAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / statusAdded value: +{ + "description": "'not_resolved' when the exact variant could not be determined.", + "type": "string" +}
7 tool updates
- First observed
find_alternatives_for_product - First observed
get_best_price - First observed
get_shipping_breakdown - First observed
get_shop_info - First observed
optimize_cart - First observed
resolve_product - First observed
search_product
Related MCP Connectors
Live prices, deals & optimal multi-stop shopping routes for German grocery & drug stores.
Track prices & price history on any online shop, with alerts and an API
Deutscher Preisvergleich für E-Bikes – Bestpreis-Suche (read-only).
Compare prices across Swiss and European shops — barcode (GTIN) lookup and daily price history.
Related MCP Servers
AlicenseNot gradedqualityFmaintenanceEnables product search, price comparison, and price history analysis across 6 European marketplaces (DE, AT, GB, FR, IT, ES).19MIT- AlicenseNot gradedqualityBmaintenanceEnables AI to search Geizhals price-comparison data, including products, best prices, price history, ratings, categories, and deals.4MIT
- FlicenseBqualityDmaintenanceEnables cross-store price comparison and recipe-driven cart automation for Israeli grocery stores Shufersal and Tiv Taam, with an extensible architecture for additional stores.14-
- AlicenseAqualityAmaintenanceEnables price comparison across 7 major Taiwanese e-commerce platforms (momo, PChome, Coupang, ETMall, Rakuten, Yahoo Shopping, Yahoo Auction) with advanced filtering for finding the lowest prices on products.116MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.