Skip to main content
Glama

product-intelligence

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
72.6% over 57 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct trigger: search_products for discovery, get_product for known-ID lookup, and get_price_history for historical price context. The descriptions explicitly state when to use each, leaving little overlap or ambiguity.

Naming Consistency5/5

All three tools follow a consistent snake_case verb_noun pattern: get_price_history, get_product, search_products. The convention is predictable and readable.

Tool Count4/5

Three tools provide a focused core for product lookup, discovery, and price history, but the set is slightly thin for broader product intelligence workflows. A small addition like multi-product comparison or offer listing would round it out without bloating.

Completeness4/5

The tools cover the main jobs: finding products, retrieving a known product with its best offer, and judging price quality over time. Minor gaps remain, such as comparing multiple products or retrieving all shop offers for a product, but core workflows are supported.

Available Tools

3 tools
get_price_historyGet Price History ToolA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry whose prices to return.
product_idYesThe Ponito product id (from search_products or get_product).

Output Schema

ParametersJSON Schema
NameRequiredDescription
daysYesOne entry per day; recording started 2026-07-27, earlier days are absent.
currencyYesISO currency of all prices in the series.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds valuable context beyond annotations, such as the recording start date (2026-07-27) meaning earlier days are empty, and that prices are integer minor units. This helps set expectations without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, with the core function first, followed by usage guidance and a data caveat. Every sentence adds value and there is no repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 required params), rich annotations, and presence of an output schema, the description is complete. It covers purpose, usage, and an important data availability detail, making it fully sufficient for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both product_id (from search_products or get_product) and country (enum with valid countries). The description does not add significant parameter-level meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it returns the daily lowest observed price for a product over the last year in one country. This clearly differentiates it from sibling tools get_product and search_products, which focus on product details and search, not historical price data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance: 'Use this to judge whether a current price or a claimed discount is actually good — compare today's price against the recent minimum.' However, it does not explicitly mention when not to use it or contrast with alternatives, so it's strong but not fully complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_productGet Product ToolA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesA GTIN (8-14 digit EAN/UPC barcode) or a Ponito product id.
countryYesThe shopper's country (offers and prices are country-specific).
languageNoen

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesPonito product id.
urlYesPonito product page listing all offers in the country.
nameYes
brandYes
gtinsYesGTIN (EAN/UPC) barcodes.
imageYesProduct photo, served from Ponito.
ratingYesAverage user rating, 0-5.
best_offerYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond the annotations: the response is the product with its best offer, and that offer is country-scoped. Still silent on failure modes (invalid GTIN, product not carried in a country), which keeps it short of 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with identity and lookup form, then usage condition, then return shape. No filler and no repetition of schema content beyond what is needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be spelled out, and the description correctly limits itself to the offer/country nuance. The only uncovered item is the language parameter's effect on returned text, which the description never mentions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and the description adds meaning the schema lacks by explaining why country is required ('offers and prices are country-specific'), which is the key semantic for choosing that enum value. The id formats it restates are already in the schema, so it does not fully carry the undocumented language parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Look up one product') and names the two accepted identifier forms (GTIN/EAN/UPC or Ponito product id). Combined with the singular 'one product' framing, an agent can immediately distinguish this from the sibling search_products.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear positive guidance: 'Use this when you already know exactly which product you mean — e.g. from a barcode, a previous search result, or a product page.' That implicitly excludes the search path but never names search_products or states the exclusion explicitly, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_productsSearch Products ToolA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo"relevance" (popularity-weighted, default) or "cheapest" (lowest price first).relevance
limitNoMax results, 1-25.
queryYesWhat the shopper is looking for, e.g. "quiet robot vacuum" or "Bosch dishwasher 60cm".
countryYesThe shopper's country (offers and prices are country-specific).
languageNoLanguage to search and label results in.en

Output Schema

ParametersJSON Schema
NameRequiredDescription
productsYesMatching products, most relevant (or cheapest) first.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description goes beyond them by disclosing the return shape (GTIN-anchored results, best offer, shop count) and the price format (integer minor units), which an agent otherwise could not infer from the annotations. It stops short of noting result-cap or pricing caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose, when to call, and what comes back. Nothing is wasted and the identity of the resource is front-loaded in the first four words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema, rich annotations, and 100% parameter coverage, the only missing piece was intent and result shape, both of which the description supplies. An agent has everything needed to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions and enum values for sort, limit, country, and language, so the schema carries the parameter semantics. The description adds nothing about parameter usage or interactions (e.g., sort vs. limit trade-offs), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb and resource ("Search Ponito's product catalogue") and the closing sentence states what results contain (GTIN-anchored products with best offer and shop count). It is clear what the tool does, but it never names or contrasts against the sibling tools get_product and get_price_history, which is what would push this to a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage contexts: "finding products, comparing options, or checking who sells something in a given country." That is strong when-to-use guidance, but there is no when-not guidance and no pointer to the sibling lookup/history tools for narrower needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedget_product2 fields changed
      • addedOutput schema / properties / image
        Added value: +{
        +  "description": "Product photo, served from Ponito.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "brand",
        -  "gtins",
        -  "rating",
        -  "best_offer",
        -  "url"
        -]New value: +[
        +  "id",
        +  "name",
        +  "brand",
        +  "gtins",
        +  "rating",
        +  "image",
        +  "best_offer",
        +  "url"
        +]
    • Changedsearch_products2 fields changed
      • addedOutput schema / properties / products / items / properties / image
        Added value: +{
        +  "description": "Product photo, served from Ponito.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / products / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "brand",
        -  "gtins",
        -  "rating",
        -  "best_offer",
        -  "url"
        -]New value: +[
        +  "id",
        +  "name",
        +  "brand",
        +  "gtins",
        +  "rating",
        +  "image",
        +  "best_offer",
        +  "url"
        +]
  2. 3 tool updates
    • Changedget_price_history1 field changed
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "CH",
        -  "DE",
        -  "FR",
        -  "GB"
        -]New value: +[
        +  "CH",
        +  "DE",
        +  "FR",
        +  "GB",
        +  "AT",
        +  "ES",
        +  "NL"
        +]
    • Changedget_product1 field changed
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "CH",
        -  "DE",
        -  "FR",
        -  "GB"
        -]New value: +[
        +  "CH",
        +  "DE",
        +  "FR",
        +  "GB",
        +  "AT",
        +  "ES",
        +  "NL"
        +]
    • Changedsearch_products1 field changed
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "CH",
        -  "DE",
        -  "FR",
        -  "GB"
        -]New value: +[
        +  "CH",
        +  "DE",
        +  "FR",
        +  "GB",
        +  "AT",
        +  "ES",
        +  "NL"
        +]
  3. 2 tool updates
    • Changedget_product1 field changed
      • changedInput schema / properties / language / enum
        Previous value: -[
        -  "de",
        -  "fr",
        -  "en"
        -]New value: +[
        +  "de",
        +  "fr",
        +  "en",
        +  "it",
        +  "es",
        +  "pt",
        +  "nl"
        +]
    • Changedsearch_products1 field changed
      • changedInput schema / properties / language / enum
        Previous value: -[
        -  "de",
        -  "fr",
        -  "en"
        -]New value: +[
        +  "de",
        +  "fr",
        +  "en",
        +  "it",
        +  "es",
        +  "pt",
        +  "nl"
        +]
  4. 2 tool updates
    • Changedget_product1 field changed
      • changedInput schema / properties / language / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr"
        -]New value: +[
        +  "de",
        +  "fr",
        +  "en"
        +]
    • Changedsearch_products1 field changed
      • changedInput schema / properties / language / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr"
        -]New value: +[
        +  "de",
        +  "fr",
        +  "en"
        +]
  5. 3 tool updates
    • Changedget_price_history1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "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"
        +            ]
        +          },
        +          "observed": {
        +            "description": "True when a price was directly observed that day; false when carried forward from a previous observation.",
        +            "type": "boolean"
        +          },
        +          "shops": {
        +            "description": "Shops with a valid price that day.",
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "date",
        +          "min",
        +          "shops",
        +          "observed"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "currency",
        +    "days"
        +  ],
        +  "type": "object"
        +}
    • Changedget_product1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "best_offer": {
        +      "properties": {
        +        "currency": {
        +          "type": "string"
        +        },
        +        "price": {
        +          "description": "Lowest current price in minor units (cents/rappen).",
        +          "type": "integer"
        +        },
        +        "shops_count": {
        +          "description": "Number of shops currently offering the product.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "price",
        +        "currency",
        +        "shops_count"
        +      ],
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "brand": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "gtins": {
        +      "description": "GTIN (EAN/UPC) barcodes.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "id": {
        +      "description": "Ponito product id.",
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "rating": {
        +      "description": "Average user rating, 0-5.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "url": {
        +      "description": "Ponito product page listing all offers in the country.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "name",
        +    "brand",
        +    "gtins",
        +    "rating",
        +    "best_offer",
        +    "url"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_products1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "products": {
        +      "description": "Matching products, most relevant (or cheapest) first.",
        +      "items": {
        +        "properties": {
        +          "best_offer": {
        +            "properties": {
        +              "currency": {
        +                "type": "string"
        +              },
        +              "price": {
        +                "description": "Lowest current price in minor units (cents/rappen).",
        +                "type": "integer"
        +              },
        +              "shops_count": {
        +                "description": "Number of shops currently offering the product.",
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "price",
        +              "currency",
        +              "shops_count"
        +            ],
        +            "type": [
        +              "object",
        +              "null"
        +            ]
        +          },
        +          "brand": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "gtins": {
        +            "description": "GTIN (EAN/UPC) barcodes.",
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "id": {
        +            "description": "Ponito product id.",
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "rating": {
        +            "description": "Average user rating, 0-5.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "url": {
        +            "description": "Ponito product page listing all offers in the country.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "brand",
        +          "gtins",
        +          "rating",
        +          "best_offer",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "products"
        +  ],
        +  "type": "object"
        +}
  6. 3 tool updates
    • First observedget_price_history
    • First observedget_product
    • First observedsearch_products

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables product search, price comparison, and price history analysis across 6 European marketplaces (DE, AT, GB, FR, IT, ES).
    19
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables product search and discovery on Galaxus and Digitec, with tools for searching, browsing, comparing, and looking up prices and specifications.
    7
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server for real-time Swiss grocery shopping that searches and compares products across 8 major Swiss retailers (Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, Otto’s), normalizes per-unit prices, surfaces promotions, computes optimal multi-store shopping plans, and works with any MCP-compatible client without API keys or accounts.
    2
    7
    71 npm
    34
    AGPL 3.0
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to search products and retrieve detailed information from Galaxus and Digitec, including prices, specifications, and price history.
    5
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources