product-intelligence
Compare prices across Swiss and European shops — barcode (GTIN) lookup and daily price history.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"product-intelligence": {
"url": "https://www.ponito.com/mcp"
}
}
}Remote endpoints
https://www.ponito.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢search_products(query, country, language, sort, limit)
Search Ponito's product catalogue. Call this for any shopping query — finding products, comparing options, or checking who sells something in a given country. Returns GTIN-anchored products with their best offer (lowest price, integer minor units) and shop count.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "What the shopper is looking for, e.g. \"quiet robot vacuum\" or \"Bosch dishwasher 60cm\".",
"type": "string"
},
"country": {
"description": "The shopper's country (offers and prices are country-specific).",
"enum": [
"CH",
"DE",
"FR",
"GB",
"AT",
"ES",
"NL"
],
"type": "string"
},
"language": {
"description": "Language to search and label results in.",
"default": "en",
"enum": [
"de",
"fr",
"en",
"it",
"es",
"pt",
"nl"
],
"type": "string"
},
"sort": {
"description": "\"relevance\" (popularity-weighted, default) or \"cheapest\" (lowest price first).",
"default": "relevance",
"enum": [
"relevance",
"cheapest"
],
"type": "string"
},
"limit": {
"description": "Max results, 1-25.",
"default": 10,
"type": "integer"
}
},
"required": [
"query",
"country"
]
}Output Schema
{
"type": "object",
"properties": {
"products": {
"description": "Matching products, most relevant (or cheapest) first.",
"items": {
"properties": {
"id": {
"description": "Ponito product id.",
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"brand": {
"type": [
"string",
"null"
]
},
"gtins": {
"description": "GTIN (EAN/UPC) barcodes.",
"items": {
"type": "string"
},
"type": "array"
},
"rating": {
"description": "Average user rating, 0-5.",
"type": [
"number",
"null"
]
},
"best_offer": {
"properties": {
"price": {
"description": "Lowest current price in minor units (cents/rappen).",
"type": "integer"
},
"currency": {
"type": "string"
},
"shops_count": {
"description": "Number of shops currently offering the product.",
"type": "integer"
}
},
"type": [
"object",
"null"
],
"required": [
"price",
"currency",
"shops_count"
]
},
"url": {
"description": "Ponito product page listing all offers in the country.",
"type": "string"
}
},
"type": "object",
"required": [
"id",
"name",
"brand",
"gtins",
"rating",
"best_offer",
"url"
]
},
"type": "array"
}
},
"required": [
"products"
]
}🟢get_product(id, country, language)
Look up one product by GTIN (EAN/UPC barcode) or Ponito product id. Use this when you already know exactly which product you mean — e.g. from a barcode, a previous search result, or a product page. Returns the product with its best offer in the given country.
Input Schema
{
"type": "object",
"properties": {
"id": {
"description": "A GTIN (8-14 digit EAN/UPC barcode) or a Ponito product id.",
"type": "string"
},
"country": {
"description": "The shopper's country (offers and prices are country-specific).",
"enum": [
"CH",
"DE",
"FR",
"GB",
"AT",
"ES",
"NL"
],
"type": "string"
},
"language": {
"default": "en",
"enum": [
"de",
"fr",
"en",
"it",
"es",
"pt",
"nl"
],
"type": "string"
}
},
"required": [
"id",
"country"
]
}Output Schema
{
"type": "object",
"properties": {
"id": {
"description": "Ponito product id.",
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"brand": {
"type": [
"string",
"null"
]
},
"gtins": {
"description": "GTIN (EAN/UPC) barcodes.",
"items": {
"type": "string"
},
"type": "array"
},
"rating": {
"description": "Average user rating, 0-5.",
"type": [
"number",
"null"
]
},
"best_offer": {
"properties": {
"price": {
"description": "Lowest current price in minor units (cents/rappen).",
"type": "integer"
},
"currency": {
"type": "string"
},
"shops_count": {
"description": "Number of shops currently offering the product.",
"type": "integer"
}
},
"type": [
"object",
"null"
],
"required": [
"price",
"currency",
"shops_count"
]
},
"url": {
"description": "Ponito product page listing all offers in the country.",
"type": "string"
}
},
"required": [
"id",
"name",
"brand",
"gtins",
"rating",
"best_offer",
"url"
]
}🟢get_price_history(product_id, country)
Daily lowest observed price for a product over the last year, in one country. Use this to judge whether a current price or a claimed discount is actually good — compare today's price against the recent minimum. Recording started 2026-07-27, so earlier days are empty. Prices are integer minor units.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"description": "The Ponito product id (from search_products or get_product).",
"type": "string"
},
"country": {
"description": "Country whose prices to return.",
"enum": [
"CH",
"DE",
"FR",
"GB",
"AT",
"ES",
"NL"
],
"type": "string"
}
},
"required": [
"product_id",
"country"
]
}Output Schema
{
"type": "object",
"properties": {
"currency": {
"description": "ISO currency of all prices in the series.",
"type": "string"
},
"days": {
"description": "One entry per day; recording started 2026-07-27, earlier days are absent.",
"items": {
"properties": {
"date": {
"description": "Day, formatted yyyy-MM-dd.",
"type": "string"
},
"min": {
"description": "Lowest valid price that day in minor units (cents/rappen); null when no shop had a valid price.",
"type": [
"integer",
"null"
]
},
"shops": {
"description": "Shops with a valid price that day.",
"type": "integer"
},
"observed": {
"description": "True when a price was directly observed that day; false when carried forward from a previous observation.",
"type": "boolean"
}
},
"type": "object",
"required": [
"date",
"min",
"shops",
"observed"
]
},
"type": "array"
}
},
"required": [
"currency",
"days"
]
}Community
Evidence