Skip to main content
Glama

Plendio price comparison

Compare prices

compare_prices
Read-onlyIdempotent

Returns the shops selling one product, one offer per shop (its best, with a count of its other offers), cheapest first by total price including shipping (price alone where a shop's shipping is unknown), with each amount also converted to the market's currency. Offers that are in stock come first. Out-of-stock offers are left out unless include_out_of_stock is true, and only shops that ship to the market are listed unless include_other_markets is true. The result includes the url of the product's Plendio page.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
marketNoMarket the shopper is in: dk, se, de or no. Default: the market of the site you connected to.
product_idYesPlendio product id (the id field of a search result, or the number at the end of a Plendio product URL).
include_out_of_stockNoAlso list offers that are out of stock or discontinued. Default false: only offers a shopper can order now.
include_other_marketsNoAlso list shops not known to ship to the market. Default false.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
urlYesThe product's page on Plendio, listing all its offers.
notesNo
titleYes
marketYes
offersYesCheapest first, by total price including shipping (price alone where shipping is unknown).
currencyYesCurrency of the market.
price_historyNo
offers_omittedYesOffers left out because their shop does not ship to the market.
out_of_stock_omittedYesOffers left out because they are out of stock or discontinued (set include_out_of_stock to list them).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / price_history
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "average": {
      +      "type": "number"
      +    },
      +    "currency": {
      +      "type": "string"
      +    },
      +    "current": {
      +      "description": "Cheapest price now; absent when nobody sells it.",
      +      "type": [
      +        "null",
      +        "number"
      +      ]
      +    },
      +    "days": {
      +      "description": "Length of the recorded history in days (at most 365).",
      +      "type": "integer"
      +    },
      +    "highest": {
      +      "type": "number"
      +    },
      +    "lowest": {
      +      "type": "number"
      +    },
      +    "scope": {
      +      "description": "What the history covers.",
      +      "type": "string"
      +    },
      +    "since": {
      +      "description": "First day of the recorded history (YYYY-MM-DD).",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "currency",
      +    "lowest",
      +    "average",
      +    "highest",
      +    "since",
      +    "days",
      +    "scope"
      +  ],
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description goes well beyond them: sort order (cheapest first by total price including shipping), fallback when shipping is unknown, currency conversion, in-stock-first ordering, exclusion rules for out-of-stock and non-shipping shops, and the returned Plendio URL. That is substantial behavioral disclosure.

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

Conciseness4/5

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

The purpose and sort order are front-loaded, and the closing sentence about the returned URL is short and useful. However, the first sentence is a long run-on with several stacked clauses, which makes it denser than it needs to be for a four-parameter tool.

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?

An output schema exists, so return values need not be spelled out, yet the description still notes the included Plendio URL. Combined with the disclosed defaults, filtering rules and ordering, an agent has everything needed to call this correctly against its siblings.

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 100%, so the baseline is 3. The description still adds meaning beyond the schema text by explaining the consequence of each flag ('only shops that ship to the market', 'offers a shopper can order now') and by disclosing the shipping-cost rule that governs the ordering the parameters influence.

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 opens with a specific verb and resource ('Returns the shops selling one product') and immediately defines the granularity (one offer per shop, its best). This clearly separates it from get_product (product details) and search_products (product discovery) without needing to open any schema.

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

Usage Guidelines3/5

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

Usage is implied by the scope statement and the flag semantics, but there is no explicit 'use this when...' or a named alternative for a shopper who only wants product facts rather than shop offers. The conditional behavior of include_out_of_stock/include_other_markets is described, which helps, but it is behavioral rather than routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources