product-intelligence

Compare prices across Swiss and European shops — barcode (GTIN) lookup and daily price history.

Should I use this

Quality & Safety

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

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,266Tokens (tool definitions)
~3.9 KBTypical response size
Moderate attention impact (0.99% 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": {
    "product-intelligence": {
      "url": "https://www.ponito.com/mcp"
    }
  }
}

Remote endpoints

https://www.ponito.com/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools