Servidor MCP

Plendio price comparison

com.plendio/plendio
Comercio y retail Público y accesible MCP 2025-11-25

Qué hace este MCP

Searches products and compares shop prices, shipping, availability, and price history across several European markets.

compare_prices
Compare prices
Returns the shops selling one product, one offer per shop (its best, with a count of its other offers), cheapest first by total price including shipping (price alone where a shop's shipping is unknown), with each amount also converted to the market's currency. Offers that are in stock come first. Out-of-stock offers are left out unless include_out_of_stock is true, and only shops that ship to the market are listed unless include_other_markets is true. The result includes the url of the product's Plendio page.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['product_id'], 'properties': {'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market the shopper is in: dk, se, de or no. Default: the market of the site you connected to.'}, 'product_id': {'type': 'integer', 'minimum': 1, 'description': 'Plendio product id (the id field of a search result, or the number at the end of a Plendio product URL).'}, 'include_out_of_stock': {'type': 'boolean', 'description': 'Also list offers that are out of stock or discontinued. Default false: only offers a shopper can order now.'}, 'include_other_markets': {'type': 'boolean', 'description': 'Also list shops not known to ship to the market. Default false.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['id', 'title', 'url', 'market', 'currency', 'offers', 'offers_omitted', 'out_of_stock_omitted'], 'properties': {'id': {'type': 'integer'}, 'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'market': {'type': 'string'}, 'offers': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['shop', 'shop_host', 'price', 'currency', 'availability', 'ships_to_market'], 'properties': {'shop': {'type': 'string', 'description': "The shop's name."}, 'price': {'type': 'number', 'description': 'Item price in major units of currency, including VAT.'}, 'total': {'type': ['null', 'number'], 'description': 'Price plus shipping; absent when shipping is unknown (then compare on price alone).'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency the shop prices in.'}, 'shipping': {'type': ['null', 'number'], 'description': 'Shipping cost to the market in major units; 0 is free shipping; absent when unknown.'}, 'condition': {'type': 'string', 'description': 'new, refurbished or used, when the shop says.'}, 'last_seen': {'type': 'string', 'description': 'When Plendio last saw this price (RFC 3339).'}, 'shop_host': {'type': 'string', 'description': "The shop's domain."}, 'more_offers': {'type': 'integer', 'description': "How many further offers this shop has for the product (other colours or variants, dearer or out of stock); only this shop's best one is listed."}, 'price_stale': {'type': 'boolean', 'description': 'True when the price was not confirmed recently; check it at the shop.'}, 'availability': {'type': 'string', 'description': 'in_stock, out_of_stock, preorder, backorder, discontinued or unknown.'}, 'price_market': {'type': ['null', 'number'], 'description': 'price converted to market_currency (equal to price when the shop prices in that currency); absent when no exchange rate is available.'}, 'shop_country': {'type': 'string', 'description': 'ISO 3166 country the shop is in.'}, 'total_market': {'type': ['null', 'number'], 'description': 'total converted to market_currency.'}, 'delivery_days': {'type': 'string', 'description': 'Estimated delivery, e.g. "1-3" days, when known.'}, 'market_currency': {'type': 'string', 'description': "The market's currency price_market and total_market are in."}, 'ships_to_market': {'type': 'string', 'description': 'Whether the shop delivers to the market: yes (the shop or its platform says so), probably, no, or unknown.'}}, 'additionalProperties': False}, 'description': 'Cheapest first, by total price including shipping (price alone where shipping is unknown).'}, 'currency': {'type': 'string', 'description': 'Currency of the market.'}, 'price_history': {'type': ['null', 'object'], 'required': ['currency', 'lowest', 'average', 'highest', 'since', 'days', 'scope'], 'properties': {'days': {'type': 'integer', 'description': 'Length of the recorded history in days (at most 365).'}, 'scope': {'type': 'string', 'description': 'What the history covers.'}, 'since': {'type': 'string', 'description': 'First day of the recorded history (YYYY-MM-DD).'}, 'lowest': {'type': 'number'}, 'average': {'type': 'number'}, 'current': {'type': ['null', 'number'], 'description': 'Cheapest price now; absent when nobody sells it.'}, 'highest': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': False}, 'offers_omitted': {'type': 'integer', 'description': 'Offers left out because their shop does not ship to the market.'}, 'out_of_stock_omitted': {'type': 'integer', 'description': 'Offers left out because they are out of stock or discontinued (set include_out_of_stock to list them).'}}, 'additionalProperties': False}
get_product
Get product details
Returns one product by its Plendio id: specifications, one offer per shop (its best) with price, shipping, total, the same amounts in the market's currency, availability, condition and whether the shop ships to the market, a summary of the product's price history over the last year, and the url of its Plendio page. A product that was merged into another resolves to the current one.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['product_id'], 'properties': {'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market the shopper is in: dk, se, de or no. Default: the market of the site you connected to.'}, 'product_id': {'type': 'integer', 'minimum': 1, 'description': 'Plendio product id (the id field of a search result, or the number at the end of a Plendio product URL).'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['id', 'title', 'url', 'market', 'currency', 'in_stock', 'offer_count', 'offers'], 'properties': {'id': {'type': 'integer'}, 'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'brand': {'type': 'string'}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'specs': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['key', 'label', 'value'], 'properties': {'key': {'type': 'string', 'description': 'Machine name, e.g. ram_gb.'}, 'label': {'type': 'string', 'description': 'Human label (Danish).'}, 'value': {'type': 'string', 'description': "Value worded in the market's language."}}, 'additionalProperties': False}}, 'title': {'type': 'string'}, 'images': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'market': {'type': 'string'}, 'offers': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['shop', 'shop_host', 'price', 'currency', 'availability', 'ships_to_market'], 'properties': {'shop': {'type': 'string', 'description': "The shop's name."}, 'price': {'type': 'number', 'description': 'Item price in major units of currency, including VAT.'}, 'total': {'type': ['null', 'number'], 'description': 'Price plus shipping; absent when shipping is unknown (then compare on price alone).'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency the shop prices in.'}, 'shipping': {'type': ['null', 'number'], 'description': 'Shipping cost to the market in major units; 0 is free shipping; absent when unknown.'}, 'condition': {'type': 'string', 'description': 'new, refurbished or used, when the shop says.'}, 'last_seen': {'type': 'string', 'description': 'When Plendio last saw this price (RFC 3339).'}, 'shop_host': {'type': 'string', 'description': "The shop's domain."}, 'more_offers': {'type': 'integer', 'description': "How many further offers this shop has for the product (other colours or variants, dearer or out of stock); only this shop's best one is listed."}, 'price_stale': {'type': 'boolean', 'description': 'True when the price was not confirmed recently; check it at the shop.'}, 'availability': {'type': 'string', 'description': 'in_stock, out_of_stock, preorder, backorder, discontinued or unknown.'}, 'price_market': {'type': ['null', 'number'], 'description': 'price converted to market_currency (equal to price when the shop prices in that currency); absent when no exchange rate is available.'}, 'shop_country': {'type': 'string', 'description': 'ISO 3166 country the shop is in.'}, 'total_market': {'type': ['null', 'number'], 'description': 'total converted to market_currency.'}, 'delivery_days': {'type': 'string', 'description': 'Estimated delivery, e.g. "1-3" days, when known.'}, 'market_currency': {'type': 'string', 'description': "The market's currency price_market and total_market are in."}, 'ships_to_market': {'type': 'string', 'description': 'Whether the shop delivers to the market: yes (the shop or its platform says so), probably, no, or unknown.'}}, 'additionalProperties': False}, 'description': 'Cheapest first.'}, 'category': {'type': 'string'}, 'currency': {'type': 'string', 'description': 'Currency of the market.'}, 'in_stock': {'type': 'boolean'}, 'description': {'type': 'string'}, 'merged_from': {'type': 'integer', 'description': 'Set when product_id was merged into this product.'}, 'offer_count': {'type': 'integer', 'description': 'Number of offers listed (shops that ship to the market, unless the tool was asked otherwise).'}, 'price_history': {'type': ['null', 'object'], 'required': ['currency', 'lowest', 'average', 'highest', 'since', 'days', 'scope'], 'properties': {'days': {'type': 'integer', 'description': 'Length of the recorded history in days (at most 365).'}, 'scope': {'type': 'string', 'description': 'What the history covers.'}, 'since': {'type': 'string', 'description': 'First day of the recorded history (YYYY-MM-DD).'}, 'lowest': {'type': 'number'}, 'average': {'type': 'number'}, 'current': {'type': ['null', 'number'], 'description': 'Cheapest price now; absent when nobody sells it.'}, 'highest': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
list_categories
List categories
Returns Plendio's product categories with localized names, slugs and product counts: the top level, or the subcategories of parent. The counts are products available in the market.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market: dk, se, de or no. Default: the market of the site you connected to.'}, 'parent': {'type': 'string', 'description': 'Category path or slug whose subcategories to return. Omit for the top level.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['market', 'language', 'categories'], 'properties': {'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'market': {'type': 'string'}, 'parent': {'type': 'string', 'description': 'Path of the category whose children these are; absent for the top level.'}, 'language': {'type': 'string', 'description': 'Language the names are in.'}, 'categories': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['slug', 'path', 'name', 'products', 'has_children', 'url'], 'properties': {'url': {'type': 'string', 'description': "The category's Plendio page."}, 'name': {'type': 'string', 'description': "The category's name in the market's language."}, 'path': {'type': 'string', 'description': 'Category path, e.g. elektronik/computere.'}, 'slug': {'type': 'string', 'description': 'Category slug, e.g. computere.'}, 'products': {'type': 'integer', 'description': 'Products in it and below it that are available in the market.'}, 'has_children': {'type': 'boolean'}}, 'additionalProperties': False}}, 'parent_name': {'type': 'string'}}, 'additionalProperties': False}
search_products
Search products
Search Plendio's product catalogue: free text in Danish, Swedish, German, Norwegian or English ("laptop 32 GB RAM under 12000", "Sony WH-1000XM5", "running shoes women") plus optional filters. Spec words in the query (RAM, storage, screen size, price limits, in stock) are understood the way the Plendio website understands them. Each result has the cheapest current price, the number of shops selling it and the url of its Plendio page. Results are limited to shops that ship to the market unless include_other_markets is true. 24 results per page.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'page': {'type': 'integer', 'minimum': 1, 'description': 'Result page, 24 products per page. Default 1.'}, 'sort': {'enum': ['relevance', 'price_asc', 'price_desc'], 'type': 'string', 'description': 'relevance (default), price_asc or price_desc.'}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'What to look for, in any of the market languages or English: a product name, a type, or a description with specs and limits ("laptop 32 GB RAM under 12000"). Required unless category is given.'}, 'shops': {'type': ['null', 'array'], 'items': {'type': 'string'}, 'description': 'Only offers from these shops, by domain, e.g. ["elgiganten.dk"].'}, 'brands': {'type': ['null', 'array'], 'items': {'type': 'string'}, 'description': 'Only these brands (up to 25), e.g. ["Sony","Bose"].'}, 'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market to search: dk, se, de or no. Default: the market of the site you connected to (plendio.dk is dk).'}, 'category': {'type': 'string', 'description': 'Category slug to narrow the search to, e.g. computere.'}, 'in_stock': {'type': 'boolean', 'description': 'Only products that at least one shop has in stock.'}, 'max_price': {'type': 'number', 'minimum': 0, 'description': "Highest price, in the market's currency (major units)."}, 'min_price': {'type': 'number', 'minimum': 0, 'description': "Lowest price, in the market's currency (major units, e.g. 500 means 500 kr.)."}, 'include_other_markets': {'type': 'boolean', 'description': "Also include products no shop ships to the market. Default false: only products the market's shoppers can have delivered."}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['query', 'market', 'currency', 'total', 'total_exact', 'page', 'page_size', 'total_pages', 'products', 'search_url'], 'properties': {'page': {'type': 'integer'}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'query': {'type': 'string'}, 'total': {'type': 'integer', 'description': 'Number of matching products.'}, 'market': {'type': 'string'}, 'applied': {'type': ['null', 'object'], 'properties': {'sort': {'type': 'string'}, 'specs': {'type': ['null', 'array'], 'items': {'type': 'string'}, 'description': 'Spec constraints read from the query, e.g. "ram_gb >= 32".'}, 'brands': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'category': {'type': 'string', 'description': 'Category slug applied.'}, 'in_stock': {'type': 'boolean'}, 'max_price': {'type': ['null', 'number']}, 'min_price': {'type': ['null', 'number']}}, 'description': 'Filters the search applied, including ones it read from the query text.', 'additionalProperties': False}, 'currency': {'type': 'string', 'description': 'Currency of the market.'}, 'products': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['id', 'title', 'offer_count', 'in_stock', 'url'], 'properties': {'id': {'type': 'integer', 'description': 'Plendio product id.'}, 'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'brand': {'type': 'string'}, 'image': {'type': 'string', 'description': 'Product photo URL.'}, 'title': {'type': 'string'}, 'category': {'type': 'string', 'description': "The product's category, named in the market's language."}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency of price_from.'}, 'in_stock': {'type': 'boolean'}, 'price_from': {'type': ['null', 'number'], 'description': 'Cheapest current price, in major units of currency; absent when no shop lists a price.'}, 'offer_count': {'type': 'integer', 'description': 'How many shops sell it (to the market, unless include_other_markets).'}}, 'additionalProperties': False}}, 'page_size': {'type': 'integer'}, 'search_url': {'type': 'string', 'description': 'The same search on the Plendio website.'}, 'total_exact': {'type': 'boolean', 'description': 'False when total is a lower bound ("at least").'}, 'total_pages': {'type': 'integer'}, 'did_you_mean': {'type': 'string', 'description': 'Set when the results answer a corrected spelling of the query.'}, 'understood_as': {'type': ['null', 'array'], 'items': {'type': 'string'}, 'description': 'Set when the query was a sentence: the product searches it was read as, which the results answer.'}}, 'additionalProperties': False}
Añadido
search_products
1 de October de 2026 a las 02:40
Añadido
list_categories
1 de October de 2026 a las 02:40
Añadido
get_product
1 de October de 2026 a las 02:40
Añadido
compare_prices
1 de October de 2026 a las 02:40