Prezzinvista - Radar dei Volantini

Italy only: current offers and weekly price trends from the flyers of Italian store chains.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
96%
Naming quality
100%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (1)

  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,319Tokens (tool definitions)
~5.8 KBTypical response size
Significant attention impact (2.59% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "radar-volantini": {
      "url": "https://www.prezzinvista.it/mcp"
    }
  }
}

Remote endpoints

https://www.prezzinvista.it/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search(query)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "What to look for, in Italian: a product, optionally with a chain and \"a <city>\"."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Pass it to fetch"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "description": "The page to cite, on prezzinvista.it"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ]
      }
    }
  },
  "required": [
    "results"
  ]
}
🟢fetch(id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 400,
      "description": "The id of a document returned by search."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string",
      "description": "The document, in Italian"
    },
    "url": {
      "type": "string",
      "description": "The page to cite, on prezzinvista.it"
    },
    "metadata": {
      "type": "object",
      "description": "Type of document and its key facts"
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url"
  ]
}
🟢search_flyer_offers(query, city, sort, discounted_only, stores, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "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."
    },
    "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."
    },
    "sort": {
      "type": "string",
      "enum": [
        "relevance",
        "price",
        "unit_price",
        "discount",
        "nearest"
      ],
      "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)."
    },
    "discounted_only": {
      "type": "boolean",
      "description": "Only offers whose flyer states a higher previous price."
    },
    "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."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "description": "Offers per page (default 10)."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Page of results (default 1)."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "city": {
      "type": "string",
      "description": "The municipality the search was limited to"
    },
    "total": {
      "type": "integer",
      "description": "Offers matching, across all pages"
    },
    "page": {
      "type": "integer"
    },
    "pages": {
      "type": "integer"
    },
    "offers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Product name as printed on the flyer"
          },
          "brand": {
            "type": "string",
            "description": "Brand, written the same way across chains; absent when the name does not state one"
          },
          "price_eur": {
            "type": "number"
          },
          "previous_price_eur": {
            "type": "number",
            "description": "Price before the offer, when the flyer states it"
          },
          "discount_percent": {
            "type": "integer"
          },
          "size": {
            "type": "string",
            "description": "Pack size as printed, e.g. \"2x250 g\""
          },
          "quantity": {
            "type": "number",
            "description": "Pack content as a number, in quantity_unit: \"2x250 g\" is 0.5"
          },
          "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"
          },
          "category": {
            "type": "string",
            "description": "Store department, in Italian: tells pasta from \"Pasta del Capitano\" toothpaste"
          },
          "store": {
            "type": "string",
            "description": "Retail chain"
          },
          "valid_until": {
            "type": "string",
            "description": "Last day of the offer, YYYY-MM-DD"
          },
          "distance_km": {
            "type": "number",
            "description": "Distance of the nearest store of the chain from the centre of the city"
          },
          "url": {
            "type": "string",
            "description": "The offer on its flyer page at prezzinvista.it"
          }
        },
        "required": [
          "name",
          "price_eur",
          "store",
          "url"
        ]
      }
    },
    "nearest_stores": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "store": {
            "type": "string",
            "description": "Retail chain"
          },
          "name": {
            "type": "string",
            "description": "Name of the store"
          },
          "address": {
            "type": "string",
            "description": "Street, postcode, town and province"
          },
          "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\""
          },
          "open_now": {
            "type": "boolean",
            "description": "Open at the time of the answer (Italian time), when the hours are known"
          }
        },
        "required": [
          "store",
          "address"
        ]
      },
      "description": "With a city: for each chain in the offers, its nearest store, closest first"
    },
    "typical_price": {
      "type": "object",
      "description": "For everyday products: the typical (median) price in all Italian flyers this week, to judge the offers against",
      "properties": {
        "product": {
          "type": "string"
        },
        "price_eur": {
          "type": "number"
        },
        "per": {
          "type": "string",
          "description": "kg, l, pack or item"
        },
        "previous_week_eur": {
          "type": "number"
        },
        "change_percent": {
          "type": "number",
          "description": "This week against the week before, only when the change is clear"
        },
        "change_note": {
          "type": "string",
          "description": "When there is no percentage: how this week compares with the week before"
        },
        "url": {
          "type": "string",
          "description": "The price trend page on prezzinvista.it"
        }
      },
      "required": [
        "product",
        "price_eur",
        "per"
      ]
    },
    "search_url": {
      "type": "string",
      "description": "The same search on prezzinvista.it"
    },
    "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"
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "total",
    "page",
    "pages",
    "offers",
    "search_url"
  ]
}
🟢list_current_flyers(city, store, limit)

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.

Input Schema

{
  "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."
    },
    "store": {
      "type": "string",
      "maxLength": 40,
      "description": "Only the flyers of this chain, by name: e.g. \"Lidl\"."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Flyers to return (default 30). Nearest first with a city, largest first otherwise."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "source": {
      "type": "string",
      "description": "Who to credit for the data"
    },
    "source_url": {
      "type": "string",
      "description": "The page on prezzinvista.it with these flyers and their offers: the URL to cite"
    },
    "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"
    },
    "flyers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "store": {
            "type": "string"
          },
          "valid_from": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "valid_until": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "offers": {
            "type": "integer"
          },
          "stores_nearby": {
            "type": "integer",
            "description": "Stores of the chain within 15 km of the city"
          },
          "distance_km": {
            "type": "number"
          },
          "nearest_store": {
            "type": "object",
            "properties": {
              "store": {
                "type": "string",
                "description": "Retail chain"
              },
              "name": {
                "type": "string",
                "description": "Name of the store"
              },
              "address": {
                "type": "string",
                "description": "Street, postcode, town and province"
              },
              "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\""
              },
              "open_now": {
                "type": "boolean",
                "description": "Open at the time of the answer (Italian time), when the hours are known"
              }
            },
            "required": [
              "store",
              "address"
            ],
            "description": "With a city: the nearest store of the chain"
          },
          "url": {
            "type": "string",
            "description": "The flyer on prezzinvista.it"
          }
        },
        "required": [
          "store",
          "offers",
          "url"
        ]
      }
    }
  },
  "required": [
    "total_flyers",
    "total_offers",
    "flyers"
  ]
}
🟢get_price_trend(product)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "maxLength": 60,
      "description": "The product, in Italian: e.g. \"pasta\", \"caffè\", \"olio di oliva\", \"detersivo lavatrice\"."
    }
  },
  "required": [
    "product"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "prices_are": {
      "type": "string",
      "description": "per kg, per l, per pack (groceries) or per item (appliances)"
    },
    "typical_price_eur": {
      "type": "number",
      "description": "Median flyer price this week"
    },
    "offers": {
      "type": "integer",
      "description": "Offers this week"
    },
    "previous_typical_price_eur": {
      "type": "number",
      "description": "Median the week before, when comparable"
    },
    "change_percent": {
      "type": "number",
      "description": "This week against the week before, only when the change is clear"
    },
    "change_note": {
      "type": "string",
      "description": "When there is no percentage: how this week compares with the week before"
    },
    "weeks": {
      "type": "array",
      "description": "Most recent last",
      "items": {
        "type": "object",
        "properties": {
          "week_start": {
            "type": "string",
            "description": "Monday, YYYY-MM-DD"
          },
          "typical_price_eur": {
            "type": "number"
          },
          "lowest_price_eur": {
            "type": "number"
          },
          "offers": {
            "type": "integer"
          }
        },
        "required": [
          "week_start"
        ]
      }
    },
    "stores_this_week": {
      "type": "array",
      "description": "Lowest first",
      "items": {
        "type": "object",
        "properties": {
          "store": {
            "type": "string"
          },
          "lowest_price_eur": {
            "type": "number"
          },
          "typical_price_eur": {
            "type": "number"
          },
          "offers": {
            "type": "integer"
          }
        },
        "required": [
          "store",
          "lowest_price_eur",
          "offers"
        ]
      }
    },
    "url": {
      "type": "string",
      "description": "The product page on prezzinvista.it"
    },
    "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"
    }
  },
  "required": [
    "product",
    "prices_are",
    "weeks",
    "stores_this_week",
    "url"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools