Bikefuchs — Bike Parts Price Comparison
Price comparison & cart optimizer for bike parts across German & Austrian shops
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"bikefuchs": {
"url": "https://mcp.bikefuchs.com/mcp"
}
}
}원격 엔드포인트
https://mcp.bikefuchs.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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#"
}출력 스키마
{
"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.
입력 스키마
{
"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#"
}출력 스키마
{
"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.
입력 스키마
{
"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#"
}출력 스키마
{
"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).
입력 스키마
{
"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#"
}출력 스키마
{
"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.
입력 스키마
{
"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#"
}출력 스키마
{
"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.
입력 스키마
{
"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#"
}출력 스키마
{
"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.
입력 스키마
{
"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#"
}출력 스키마
{
"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
}커뮤니티
증거