Server definition
- Hash
- sha256:d65990ff721ae04e8901bc12aaa559cb78b2eb55ff6a2ee4eba4a689526115b2
- What it is
- What a remote MCP server returned when asked what it offers: 7 tools
The blob, as servednamed by its sha256
{
"instructions": "Bikefuchs is a price comparison engine for bicycle parts, components, clothing, and accessories across German/Austrian online bike shops. It covers over 100,000 products from brands like Shimano, SRAM, Magura, Schwalbe, Continental, and more.\n\nWORKFLOW GUIDE:\n- Single product search: Use search_product with keywords → returns products with EANs and prices\n- Best price for a known product: Use get_best_price with an EAN → returns the product price at each shop (sorted cheapest-first). Shipping is NOT included here — use optimize_cart or get_shipping_breakdown for totals including shipping\n- Multiple products to buy together: Use search_product for each item to get EANs, then call optimize_cart with all EANs → this calculates the cheapest combination of shops factoring in shipping costs and free-shipping thresholds. This is the key feature of Bikefuchs.\n- Product URL from a shop: Use resolve_product to extract EAN and product info from a shop URL\n- Shop overview: Use get_shop_info for a list of supported shops and their shipping costs\n- Shipping details: Use get_shipping_breakdown for exact shipping costs per shop and country\n- Same product cheaper elsewhere, or out of stock: Use find_alternatives_for_product with the EAN → returns every shop that carries it with prices and availability.\n\nIMPORTANT RULES:\n- Always use the tools to get real prices. Never guess or estimate prices from memory.\n- For cart optimization (buying multiple items), ALWAYS use optimize_cart after collecting EANs. Do NOT manually calculate shipping — optimize_cart handles this automatically.\n- Results contain affiliate links. Always pass these links to the user as provided.\n- Answer product, price, availability, or shipping questions ONLY after a tool call has returned data. Never answer from the tool schema/description, and never reconstruct results from memory.\n- Supported countries: Germany (DE) and Austria (AT).\n\nWorkflow for cart optimization: When the user wants to optimize a cart, first call get_best_price for each product, then call optimize_cart with all EANs. If optimize_cart returns missing_eans, call get_best_price for those EANs and retry optimize_cart.",
"tools": [
{
"description": "Given a product's EAN barcode, return every shop that carries it with prices and availability, sorted cheapest-first.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"country": {
"default": "DE",
"description": "Country for pricing (DE or AT, default DE)",
"enum": [
"DE",
"AT"
],
"type": "string"
},
"ean": {
"description": "EAN barcode (8–14 digits, e.g. '4524667749493')",
"pattern": "^\\d{8,14}$",
"type": "string"
}
},
"required": [
"ean"
],
"type": "object"
},
"name": "find_alternatives_for_product",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"alternatives": {
"items": {
"additionalProperties": false,
"properties": {
"affiliate_url": {
"description": "Direct link to buy at this shop.",
"type": "string"
},
"availability": {
"type": "string"
},
"currency": {
"type": "string"
},
"price": {
"type": "number"
},
"shop": {
"type": "string"
}
},
"required": [
"shop",
"price",
"currency",
"affiliate_url"
],
"type": "object"
},
"type": "array"
},
"disclosure": {
"type": "string"
},
"ean": {
"type": "string"
},
"product_name": {
"type": "string"
}
},
"required": [
"ean",
"product_name",
"alternatives"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"country": {
"default": "DE",
"description": "Country for pricing (DE or AT, default DE)",
"enum": [
"DE",
"AT"
],
"type": "string"
},
"ean": {
"description": "EAN barcode (8–14 digits, e.g. '4524667749493')",
"pattern": "^\\d{8,14}$",
"type": "string"
},
"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"
],
"type": "object"
},
"name": "get_best_price",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cheapest_price": {
"type": "number"
},
"cheapest_shop": {
"type": "string"
},
"disclosure": {
"type": "string"
},
"ean": {
"type": "string"
},
"next_step": {
"additionalProperties": false,
"properties": {
"eans": {
"items": {
"type": "string"
},
"type": "array"
},
"hint": {
"type": "string"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"hint"
],
"type": "object"
},
"prices": {
"items": {
"additionalProperties": false,
"properties": {
"affiliate_url": {
"description": "Direct link to buy at this shop. Always show this URL to the user.",
"type": "string"
},
"availability": {
"type": "string"
},
"currency": {
"type": "string"
},
"price": {
"type": "number"
},
"shop": {
"type": "string"
}
},
"required": [
"shop",
"price",
"currency",
"affiliate_url"
],
"type": "object"
},
"type": "array"
},
"product_name": {
"type": "string"
},
"reference_comparison": {
"additionalProperties": false,
"properties": {
"reference_price": {
"type": "number"
},
"reference_shop": {
"type": "string"
},
"saving": {
"type": "number"
},
"saving_percent": {
"type": "number"
}
},
"required": [
"reference_shop",
"reference_price",
"saving"
],
"type": "object"
}
},
"required": [
"ean",
"product_name",
"prices",
"cheapest_shop",
"cheapest_price"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"cart_value": {
"description": "Total cart value in EUR (e.g. 49.99)",
"minimum": 0,
"type": "number"
},
"country": {
"description": "Country (DE or AT)",
"enum": [
"DE",
"AT"
],
"type": "string"
},
"shop": {
"description": "Shop name or ID (e.g. 'rosebikes', 'boc24', 'bike24', 'fahrradteile', 'Rose Bikes')",
"type": "string"
}
},
"required": [
"shop",
"country",
"cart_value"
],
"type": "object"
},
"name": "get_shipping_breakdown",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cart_value": {
"type": "number"
},
"country": {
"type": "string"
},
"currency": {
"type": "string"
},
"free_shipping_threshold": {
"type": "number"
},
"shipping_cost": {
"type": "number"
},
"shop": {
"type": "string"
}
},
"required": [
"shop",
"country",
"cart_value",
"shipping_cost",
"currency"
],
"type": "object"
}
},
{
"description": "Return an overview of the supported shops, including their shipping cost tiers, free-shipping thresholds, and supported countries (DE and AT).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"country": {
"description": "Filter output to a specific country (optional — omit for both DE and AT)",
"enum": [
"DE",
"AT"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_shop_info",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"shops": {
"items": {
"additionalProperties": false,
"properties": {
"categories": {
"items": {
"type": "string"
},
"type": "array"
},
"country": {
"type": "string"
},
"free_shipping_threshold_at": {
"type": "number"
},
"free_shipping_threshold_de": {
"type": "number"
},
"name": {
"type": "string"
},
"shipping_at": {
"type": "string"
},
"shipping_de": {
"type": "string"
}
},
"required": [
"name",
"country"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"shops"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"country": {
"default": "DE",
"description": "Country for pricing and shipping (DE or AT, default DE)",
"enum": [
"DE",
"AT"
],
"type": "string"
},
"eans": {
"description": "Array of EAN barcodes (8–14 digit numbers as strings, e.g. '4524667749493'). NOT URLs.",
"items": {
"pattern": "^\\d{8,14}$",
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
}
},
"required": [
"eans"
],
"type": "object"
},
"name": "optimize_cart",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"disclosure": {
"type": "string"
},
"optimization": {
"additionalProperties": false,
"properties": {
"currency": {
"type": "string"
},
"grand_total": {
"type": "number"
},
"shops_used": {
"items": {
"additionalProperties": false,
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"affiliate_url": {
"description": "Direct link to buy this item. Always show this URL to the user.",
"type": "string"
},
"ean": {
"type": "string"
},
"name": {
"type": "string"
},
"price": {
"type": "number"
}
},
"required": [
"name",
"price",
"affiliate_url"
],
"type": "object"
},
"type": "array"
},
"shipping": {
"type": "number"
},
"shop": {
"type": "string"
},
"subtotal": {
"type": "number"
}
},
"required": [
"shop",
"subtotal",
"shipping",
"items"
],
"type": "object"
},
"type": "array"
},
"total_cost": {
"type": "number"
},
"total_shipping": {
"type": "number"
}
},
"required": [
"total_cost",
"total_shipping",
"grand_total",
"currency",
"shops_used"
],
"type": "object"
},
"savings_info": {
"type": "string"
},
"stale_cache_warning": {
"additionalProperties": false,
"properties": {
"eans_to_refresh": {
"items": {
"type": "string"
},
"type": "array"
},
"suggestion": {
"type": "string"
}
},
"required": [
"eans_to_refresh",
"suggestion"
],
"type": "object"
}
},
"required": [
"optimization"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"country": {
"default": "DE",
"description": "Country for pricing (DE or AT, default DE)",
"enum": [
"DE",
"AT"
],
"type": "string"
},
"url": {
"description": "Product page URL from a supported shop (e.g. 'https://www.rosebikes.de/p/<product-name>-<id>')",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "resolve_product",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"affiliate_url": {
"description": "Affiliate link for this product.",
"type": "string"
},
"axis": {
"description": "Variant axis of the options: 'size', 'colour', 'mixed', 'size_name' or 'name'.",
"type": "string"
},
"brand": {
"type": "string"
},
"disclosure": {
"type": "string"
},
"ean": {
"type": "string"
},
"family_url": {
"description": "Branded /go/ link to the product family page so the user can pick the variant.",
"type": "string"
},
"message": {
"type": "string"
},
"min_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"options": {
"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"
}
]
},
"donor_label": {
"description": "Verbatim variant/product name; use as the choice label when present.",
"type": "string"
},
"ean": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "EAN of this exact variant; null when the shop has no barcode for this size — then there is no price comparison, use product_url."
},
"in_stock": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Stock at the input shop; null when unknown per variant."
},
"price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Price at the input shop; null when only a family-level page price exists."
},
"product_name": {
"description": "Verbatim product name for a flat name-axis option; use as the choice label when present.",
"type": "string"
},
"product_url": {
"description": "Direct /go/ link to this exact size at the input shop.",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"ean"
],
"type": "object"
},
"type": "array"
},
"price": {
"type": "number"
},
"product_name": {
"type": "string"
},
"resolved": {
"type": "boolean"
},
"shop": {
"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"
}
},
"required": [
"product_name",
"shop"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"category": {
"description": "Filter by merchant category (partial match, e.g. 'Fahrräder' or 'Bremsen')",
"type": "string"
},
"country": {
"default": "DE",
"description": "Country for pricing (DE or AT, default DE)",
"enum": [
"DE",
"AT"
],
"type": "string"
},
"in_stock": {
"default": true,
"description": "Only return in-stock products (default true)",
"type": "boolean"
},
"max_price": {
"description": "Upper price bound in EUR (inclusive)",
"exclusiveMinimum": 0,
"type": "number"
},
"max_results": {
"default": 10,
"description": "Max results (1–20, default 10)",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"q": {
"description": "Search keyword, min 2 chars. Multi-word queries use AND logic across product name, description, and specifications (e.g. 'shimano xt bremsbeläge')",
"minLength": 2,
"type": "string"
},
"shop": {
"description": "Restrict results to a single supported shop (by id or name)",
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"name": "search_product",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"disclosure": {
"type": "string"
},
"next_steps": {
"items": {
"additionalProperties": false,
"properties": {
"eans": {
"items": {
"type": "string"
},
"type": "array"
},
"hint": {
"type": "string"
},
"tool": {
"type": "string"
}
},
"required": [
"tool",
"hint"
],
"type": "object"
},
"type": "array"
},
"query": {
"type": "string"
},
"results": {
"items": {
"additionalProperties": false,
"properties": {
"affiliate_url": {
"description": "Direct link to buy this product. Always show this URL to the user.",
"type": "string"
},
"availability": {
"type": "string"
},
"brand": {
"type": "string"
},
"currency": {
"type": "string"
},
"ean": {
"type": "string"
},
"name": {
"type": "string"
},
"price": {
"type": "number"
},
"shop": {
"type": "string"
}
},
"required": [
"name",
"ean",
"price",
"currency",
"shop",
"affiliate_url"
],
"type": "object"
},
"type": "array"
},
"total_results": {
"type": "number"
}
},
"required": [
"query",
"results",
"total_results"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:d65990ff721ae04e8901bc12aaa559cb78b2eb55ff6a2ee4eba4a689526115b2 | sha256sum