Bikefuchs — Bike Parts Price Comparison
Price comparison & cart optimizer for bike parts across German & Austrian shops
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"bikefuchs": {
"url": "https://mcp.bikefuchs.com/mcp"
}
}
}Puntos de conexión remotos
https://mcp.bikefuchs.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (7)
🟢search_product(q, country, in_stock, max_results, shop, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 2,
"description": "Search keyword, min 2 chars. Multi-word queries use AND logic across product name, description, and specifications (e.g. 'shimano xt bremsbeläge')"
},
"country": {
"default": "DE",
"description": "Country for pricing (DE or AT, default DE)",
"type": "string",
"enum": [
"DE",
"AT"
]
},
"in_stock": {
"default": true,
"description": "Only return in-stock products (default true)",
"type": "boolean"
},
"max_results": {
"default": 10,
"description": "Max results (1–20, default 10)",
"type": "integer",
"minimum": 1,
"maximum": 20
},
"shop": {
"description": "Restrict results to a single supported shop (by id or name)",
"type": "string"
},
"max_price": {
"description": "Upper price bound in EUR (inclusive)",
"type": "number",
"exclusiveMinimum": 0
},
"category": {
"description": "Filter by merchant category (partial match, e.g. 'Fahrräder' or 'Bremsen')",
"type": "string"
}
},
"required": [
"q"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"ean": {
"type": "string"
},
"brand": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"shop": {
"type": "string"
},
"availability": {
"type": "string"
},
"affiliate_url": {
"type": "string",
"description": "Direct link to buy this product. Always show this URL to the user."
}
},
"required": [
"name",
"ean",
"price",
"currency",
"shop",
"affiliate_url"
],
"additionalProperties": false
}
},
"total_results": {
"type": "number"
},
"next_steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"hint": {
"type": "string"
},
"eans": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"tool",
"hint"
],
"additionalProperties": false
}
},
"disclosure": {
"type": "string"
}
},
"required": [
"query",
"results",
"total_results"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_best_price(ean, country, reference_shop)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"ean": {
"type": "string",
"pattern": "^\\d{8,14}$",
"description": "EAN barcode (8–14 digits, e.g. '4524667749493')"
},
"country": {
"default": "DE",
"description": "Country for pricing (DE or AT, default DE)",
"type": "string",
"enum": [
"DE",
"AT"
]
},
"reference_shop": {
"description": "Shop id or display name to compare against. When set, the response states how much cheaper the cheapest shop is vs. this shop.",
"type": "string"
}
},
"required": [
"ean"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"ean": {
"type": "string"
},
"product_name": {
"type": "string"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"shop": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"availability": {
"type": "string"
},
"affiliate_url": {
"type": "string",
"description": "Direct link to buy at this shop. Always show this URL to the user."
}
},
"required": [
"shop",
"price",
"currency",
"affiliate_url"
],
"additionalProperties": false
}
},
"cheapest_shop": {
"type": "string"
},
"cheapest_price": {
"type": "number"
},
"next_step": {
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"hint": {
"type": "string"
},
"eans": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"tool",
"hint"
],
"additionalProperties": false
},
"reference_comparison": {
"type": "object",
"properties": {
"reference_shop": {
"type": "string"
},
"reference_price": {
"type": "number"
},
"saving": {
"type": "number"
},
"saving_percent": {
"type": "number"
}
},
"required": [
"reference_shop",
"reference_price",
"saving"
],
"additionalProperties": false
},
"disclosure": {
"type": "string"
}
},
"required": [
"ean",
"product_name",
"prices",
"cheapest_shop",
"cheapest_price"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢optimize_cart(eans, country)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"eans": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{8,14}$"
},
"description": "Array of EAN barcodes (8–14 digit numbers as strings, e.g. '4524667749493'). NOT URLs."
},
"country": {
"default": "DE",
"description": "Country for pricing and shipping (DE or AT, default DE)",
"type": "string",
"enum": [
"DE",
"AT"
]
}
},
"required": [
"eans"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"optimization": {
"type": "object",
"properties": {
"total_cost": {
"type": "number"
},
"total_shipping": {
"type": "number"
},
"grand_total": {
"type": "number"
},
"currency": {
"type": "string"
},
"shops_used": {
"type": "array",
"items": {
"type": "object",
"properties": {
"shop": {
"type": "string"
},
"subtotal": {
"type": "number"
},
"shipping": {
"type": "number"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"ean": {
"type": "string"
},
"price": {
"type": "number"
},
"affiliate_url": {
"type": "string",
"description": "Direct link to buy this item. Always show this URL to the user."
}
},
"required": [
"name",
"price",
"affiliate_url"
],
"additionalProperties": false
}
}
},
"required": [
"shop",
"subtotal",
"shipping",
"items"
],
"additionalProperties": false
}
}
},
"required": [
"total_cost",
"total_shipping",
"grand_total",
"currency",
"shops_used"
],
"additionalProperties": false
},
"savings_info": {
"type": "string"
},
"stale_cache_warning": {
"type": "object",
"properties": {
"eans_to_refresh": {
"type": "array",
"items": {
"type": "string"
}
},
"suggestion": {
"type": "string"
}
},
"required": [
"eans_to_refresh",
"suggestion"
],
"additionalProperties": false
},
"disclosure": {
"type": "string"
}
},
"required": [
"optimization"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_shop_info(country)
Return an overview of the supported shops, including their shipping cost tiers, free-shipping thresholds, and supported countries (DE and AT).
Esquema de entrada
{
"type": "object",
"properties": {
"country": {
"description": "Filter output to a specific country (optional — omit for both DE and AT)",
"type": "string",
"enum": [
"DE",
"AT"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"shops": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"country": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"shipping_de": {
"type": "string"
},
"shipping_at": {
"type": "string"
},
"free_shipping_threshold_de": {
"type": "number"
},
"free_shipping_threshold_at": {
"type": "number"
}
},
"required": [
"name",
"country"
],
"additionalProperties": false
}
}
},
"required": [
"shops"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_shipping_breakdown(shop, country, cart_value)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"shop": {
"type": "string",
"description": "Shop name or ID (e.g. 'rosebikes', 'boc24', 'bike24', 'fahrradteile', 'Rose Bikes')"
},
"country": {
"type": "string",
"enum": [
"DE",
"AT"
],
"description": "Country (DE or AT)"
},
"cart_value": {
"type": "number",
"minimum": 0,
"description": "Total cart value in EUR (e.g. 49.99)"
}
},
"required": [
"shop",
"country",
"cart_value"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"shop": {
"type": "string"
},
"country": {
"type": "string"
},
"cart_value": {
"type": "number"
},
"shipping_cost": {
"type": "number"
},
"free_shipping_threshold": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"required": [
"shop",
"country",
"cart_value",
"shipping_cost",
"currency"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢find_alternatives_for_product(ean, country)
Given a product's EAN barcode, return every shop that carries it with prices and availability, sorted cheapest-first.
Esquema de entrada
{
"type": "object",
"properties": {
"ean": {
"type": "string",
"pattern": "^\\d{8,14}$",
"description": "EAN barcode (8–14 digits, e.g. '4524667749493')"
},
"country": {
"default": "DE",
"description": "Country for pricing (DE or AT, default DE)",
"type": "string",
"enum": [
"DE",
"AT"
]
}
},
"required": [
"ean"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"ean": {
"type": "string"
},
"product_name": {
"type": "string"
},
"alternatives": {
"type": "array",
"items": {
"type": "object",
"properties": {
"shop": {
"type": "string"
},
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"availability": {
"type": "string"
},
"affiliate_url": {
"type": "string",
"description": "Direct link to buy at this shop."
}
},
"required": [
"shop",
"price",
"currency",
"affiliate_url"
],
"additionalProperties": false
}
},
"disclosure": {
"type": "string"
}
},
"required": [
"ean",
"product_name",
"alternatives"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢resolve_product(url, country)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Product page URL from a supported shop (e.g. 'https://www.rosebikes.de/p/<product-name>-<id>')"
},
"country": {
"default": "DE",
"description": "Country for pricing (DE or AT, default DE)",
"type": "string",
"enum": [
"DE",
"AT"
]
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"product_name": {
"type": "string"
},
"ean": {
"type": "string"
},
"brand": {
"type": "string"
},
"price": {
"type": "number"
},
"shop": {
"type": "string"
},
"affiliate_url": {
"description": "Affiliate link for this product.",
"type": "string"
},
"status": {
"description": "'not_resolved' when the exact variant could not be determined; 'pick_variant' when labeled variant options are returned to choose from.",
"type": "string"
},
"resolved": {
"type": "boolean"
},
"family_url": {
"description": "Branded /go/ link to the product family page so the user can pick the variant.",
"type": "string"
},
"message": {
"type": "string"
},
"axis": {
"description": "Variant axis of the options: 'size', 'colour', 'mixed', 'size_name' or 'name'.",
"type": "string"
},
"options": {
"description": "Variants of ONE product. Ask the user to pick one, then use that variant's EAN.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ean": {
"type": "string",
"description": "EAN of this exact variant — use it with get_best_price / optimize_cart."
},
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"colour": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"donor_label": {
"description": "Verbatim variant/product name; use as the choice label when present.",
"type": "string"
},
"product_name": {
"description": "Verbatim product name for a flat name-axis option; use as the choice label when present.",
"type": "string"
},
"price": {
"description": "Price at the input shop; null when only a family-level page price exists.",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"in_stock": {
"description": "Stock at the input shop; null when unknown per variant.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"required": [
"ean"
],
"additionalProperties": false
}
},
"disclosure": {
"type": "string"
}
},
"required": [
"product_name",
"shop"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Comunidad
Evidencia