MCP-Server

Prezzinvista - Radar dei Volantini

it.prezzinvista/radar-volantini
Commerce & Retail Daten & Analytik Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Searches Italian retail flyers for current offers, store flyer validity, product prices, discounts, and weekly price trends.

fetch
Leggi un risultato
Use this to read one of the documents returned by search, given its id. Returns the full text and the URL to cite. For an offer: price, previous price, pack size, price per kg or litre, chain, validity, and the same product in the other chains' current flyers. For a flyer: validity, number of offers and biggest discounts. For a product: this week's typical and lowest flyer price, the trend and each chain. Ids come only from search. Covers Italy only.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 400, 'description': 'The id of a document returned by search.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['id', 'title', 'text', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'description': 'The page to cite, on prezzinvista.it'}, 'text': {'type': 'string', 'description': 'The document, in Italian'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'description': 'Type of document and its key facts'}}}
get_price_trend
Andamento del prezzo di un prodotto
Use this when the user asks how much a common grocery or household product costs in Italy this week, whether it is getting cheaper or more expensive, or which chain has it cheapest: e.g. "how much does pasta cost this week", "is coffee more expensive than last week". Returns the typical (median) and lowest flyer price this week, the previous weeks and each chain this week, with the link to the product page on prezzinvista.it. Covers Italy only, and about two hundred staple products (pasta, caffè, olio di oliva, latte, detersivo, pannolini, …), named in Italian; specific brands and models are what search_flyer_offers looks up. In hosts that support MCP Apps the results are also shown to the user as a card with the weekly trend.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['product'], 'properties': {'product': {'type': 'string', 'maxLength': 60, 'description': 'The product, in Italian: e.g. "pasta", "caffè", "olio di oliva", "detersivo lavatrice".'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['product', 'prices_are', 'weeks', 'stores_this_week', 'url'], 'properties': {'url': {'type': 'string', 'description': 'The product page on prezzinvista.it'}, 'weeks': {'type': 'array', 'items': {'type': 'object', 'required': ['week_start'], 'properties': {'offers': {'type': 'integer'}, 'week_start': {'type': 'string', 'description': 'Monday, YYYY-MM-DD'}, 'lowest_price_eur': {'type': 'number'}, 'typical_price_eur': {'type': 'number'}}}, 'description': 'Most recent last'}, 'offers': {'type': 'integer', 'description': 'Offers this week'}, 'source': {'type': 'string', 'description': 'Who to credit for the data'}, 'product': {'type': 'string'}, 'prices_are': {'type': 'string', 'description': 'per kg, per l, per pack (groceries) or per item (appliances)'}, 'updated_at': {'type': 'string', 'description': 'When the flyers were last read (ISO 8601). They are read again every three hours'}, 'change_note': {'type': 'string', 'description': 'When there is no percentage: how this week compares with the week before'}, 'change_percent': {'type': 'number', 'description': 'This week against the week before, only when the change is clear'}, 'stores_this_week': {'type': 'array', 'items': {'type': 'object', 'required': ['store', 'lowest_price_eur', 'offers'], 'properties': {'store': {'type': 'string'}, 'offers': {'type': 'integer'}, 'lowest_price_eur': {'type': 'number'}, 'typical_price_eur': {'type': 'number'}}}, 'description': 'Lowest first'}, 'typical_price_eur': {'type': 'number', 'description': 'Median flyer price this week'}, 'previous_typical_price_eur': {'type': 'number', 'description': 'Median the week before, when comparable'}}}
list_current_flyers
Volantini in corso
Use this when the user asks which store flyers (volantini) are valid right now in Italy, whether a chain has a flyer this week, or until when a flyer is valid, optionally only for chains with a store near a city. Returns chain, validity dates, number of offers, distance of the nearest store and the link to the flyer on prezzinvista.it. Covers Italy only. Products inside the flyers are what search_flyer_offers looks up. In hosts that support MCP Apps the results are also shown to the user as cards with logo, validity and link.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'city': {'type': 'string', 'maxLength': 60, 'description': 'Italian municipality (comune) to search around, e.g. "Milano", "Reggio Emilia", "Sesto San Giovanni". Only flyers valid in stores within 15 km are returned. Omit for all of Italy.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Flyers to return (default 30). Nearest first with a city, largest first otherwise.'}, 'store': {'type': 'string', 'maxLength': 40, 'description': 'Only the flyers of this chain, by name: e.g. "Lidl".'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['total_flyers', 'total_offers', 'flyers'], 'properties': {'city': {'type': 'string'}, 'flyers': {'type': 'array', 'items': {'type': 'object', 'required': ['store', 'offers', 'url'], 'properties': {'url': {'type': 'string', 'description': 'The flyer on prezzinvista.it'}, 'store': {'type': 'string'}, 'offers': {'type': 'integer'}, 'valid_from': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'distance_km': {'type': 'number'}, 'valid_until': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'nearest_store': {'type': 'object', 'required': ['store', 'address'], 'properties': {'name': {'type': 'string', 'description': 'Name of the store'}, 'store': {'type': 'string', 'description': 'Retail chain'}, 'address': {'type': 'string', 'description': 'Street, postcode, town and province'}, 'open_now': {'type': 'boolean', 'description': 'Open at the time of the answer (Italian time), when the hours are known'}, 'distance_km': {'type': 'number', 'description': 'From the centre of the city'}, 'opening_hours': {'type': 'string', 'description': 'Weekly hours in Italian day abbreviations, when the chain publishes them: "lun-sab 8:30–20:00 · dom 9:00–13:00"'}}, 'description': 'With a city: the nearest store of the chain'}, 'stores_nearby': {'type': 'integer', 'description': 'Stores of the chain within 15 km of the city'}}}}, 'source': {'type': 'string', 'description': 'Who to credit for the data'}, 'updated_at': {'type': 'string', 'description': 'When the flyers were last read (ISO 8601). They are read again every three hours'}, 'total_flyers': {'type': 'integer'}, 'total_offers': {'type': 'integer'}}}
search
Cerca nei volantini
Use this when you need citable sources for a free-text question about what is on offer in Italian store flyers (volantini) right now, and no filters or sorting are needed. Covers Italy only. Takes one query in Italian that may name a product, a chain and a city ("caffè Lavazza a Milano", "volantino Lidl", "prezzo pasta"). Returns matching documents — current offers, store flyers and weekly product price pages — each with an id, a title stating price, chain and validity, and its URL on prezzinvista.it. The full text of a document is what fetch returns for its id. Sorting by price, a price cap and a choice of chains belong to search_flyer_offers.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 200, 'description': 'What to look for, in Italian: a product, optionally with a chain and "a <city>".'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string', 'description': 'Pass it to fetch'}, 'url': {'type': 'string', 'description': 'The page to cite, on prezzinvista.it'}, 'title': {'type': 'string'}}}}}}
search_flyer_offers
Cerca offerte nei volantini
Use this when the user wants to know where a product is on offer in Italy this week, at what price, at which chain and until when, and you need filters or sorting: a city, specific chains, a price cap, lowest price or lowest price per kg first. Searches the offers currently valid in the flyers (volantini) of Italian supermarkets, discount stores and electronics chains. Product names are in Italian: pass Italian words in `query` ("caffè", "pasta barilla", "lavatrice"). Returns price, previous price, pack size, price per kg or litre, department, chain, expiry date and the link to the offer on prezzinvista.it. Covers Italy only: not for other countries, not for online-shop prices. Flyer prices are indicative; the price displayed in store prevails. In hosts that support MCP Apps the results are also shown to the user as cards with photo, price and link.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'city': {'type': 'string', 'maxLength': 60, 'description': 'Italian municipality (comune) to search around, e.g. "Milano", "Reggio Emilia", "Sesto San Giovanni". Only flyers valid in stores within 15 km are returned. Omit for all of Italy.'}, 'page': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Page of results (default 1).'}, 'sort': {'enum': ['relevance', 'price', 'unit_price', 'discount', 'nearest'], 'type': 'string', 'description': 'relevance (default with a query), price (lowest first), unit_price (lowest price per kg or litre first; only offers that state it), discount (biggest first; default without a query), nearest (closest chain first; needs city).'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Offers per page (default 10).'}, 'query': {'type': 'string', 'maxLength': 80, 'description': 'Product to look for, in Italian. Brand and product words are combined ("olio extravergine monini"). Omit to browse the biggest discounts.'}, 'stores': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'description': 'Only these chains, by name: e.g. ["Lidl", "Esselunga"].'}, 'max_price_eur': {'type': 'number', 'minimum': 0, 'description': 'Only offers at or below this price.'}, 'discounted_only': {'type': 'boolean', 'description': 'Only offers whose flyer states a higher previous price.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['total', 'page', 'pages', 'offers', 'search_url'], 'properties': {'city': {'type': 'string', 'description': 'The municipality the search was limited to'}, 'note': {'type': 'string'}, 'page': {'type': 'integer'}, 'pages': {'type': 'integer'}, 'query': {'type': 'string'}, 'total': {'type': 'integer', 'description': 'Offers matching, across all pages'}, 'offers': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'price_eur', 'store', 'url'], 'properties': {'url': {'type': 'string', 'description': 'The offer on its flyer page at prezzinvista.it'}, 'name': {'type': 'string', 'description': 'Product name as printed on the flyer'}, 'size': {'type': 'string', 'description': 'Pack size as printed, e.g. "2x250 g"'}, 'brand': {'type': 'string', 'description': 'Brand, written the same way across chains; absent when the name does not state one'}, 'store': {'type': 'string', 'description': 'Retail chain'}, 'category': {'type': 'string', 'description': 'Store department, in Italian: tells pasta from "Pasta del Capitano" toothpaste'}, 'quantity': {'type': 'number', 'description': 'Pack content as a number, in quantity_unit: "2x250 g" is 0.5'}, 'price_eur': {'type': 'number'}, 'distance_km': {'type': 'number', 'description': 'Distance of the nearest store of the chain from the centre of the city'}, 'valid_until': {'type': 'string', 'description': 'Last day of the offer, YYYY-MM-DD'}, 'quantity_unit': {'type': 'string', 'description': 'kg, l or pieces'}, 'unit_price_eur': {'type': 'number', 'description': 'Price per unit_price_per'}, 'unit_price_per': {'type': 'string', 'description': 'kg, l, or another unit'}, 'discount_percent': {'type': 'integer'}, 'previous_price_eur': {'type': 'number', 'description': 'Price before the offer, when the flyer states it'}}}}, 'source': {'type': 'string', 'description': 'Who to credit for the data'}, 'search_url': {'type': 'string', 'description': 'The same search on prezzinvista.it'}, 'updated_at': {'type': 'string', 'description': 'When the flyers were last read (ISO 8601). They are read again every three hours'}, 'typical_price': {'type': 'object', 'required': ['product', 'price_eur', 'per'], 'properties': {'per': {'type': 'string', 'description': 'kg, l, pack or item'}, 'url': {'type': 'string', 'description': 'The price trend page on prezzinvista.it'}, 'product': {'type': 'string'}, 'price_eur': {'type': 'number'}, 'change_note': {'type': 'string', 'description': 'When there is no percentage: how this week compares with the week before'}, 'change_percent': {'type': 'number', 'description': 'This week against the week before, only when the change is clear'}, 'previous_week_eur': {'type': 'number'}}, 'description': 'For everyday products: the typical (median) price in all Italian flyers this week, to judge the offers against'}, 'nearest_stores': {'type': 'array', 'items': {'type': 'object', 'required': ['store', 'address'], 'properties': {'name': {'type': 'string', 'description': 'Name of the store'}, 'store': {'type': 'string', 'description': 'Retail chain'}, 'address': {'type': 'string', 'description': 'Street, postcode, town and province'}, 'open_now': {'type': 'boolean', 'description': 'Open at the time of the answer (Italian time), when the hours are known'}, 'distance_km': {'type': 'number', 'description': 'From the centre of the city'}, 'opening_hours': {'type': 'string', 'description': 'Weekly hours in Italian day abbreviations, when the chain publishes them: "lun-sab 8:30–20:00 · dom 9:00–13:00"'}}}, 'description': 'With a city: for each chain in the offers, its nearest store, closest first'}}}
Hinzugefügt
get_price_trend
5. October 2026 02:40
Hinzugefügt
list_current_flyers
5. October 2026 02:40
Hinzugefügt
search_flyer_offers
5. October 2026 02:40
Hinzugefügt
fetch
5. October 2026 02:40
Hinzugefügt
search
5. October 2026 02:40