Skip to main content
Glama

Plendio price comparison

Server Details

Price comparison and product search for Denmark, Sweden, Germany and Norway. Read-only, no login.

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
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation4/5

compare_prices and get_product both return per-shop offers for a product, so there is some overlap in output. However, their primary purposes are largely distinct: one focuses on comparing shops by price, the other on full product details including specs and history. search_products and list_categories are clearly separate.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: compare_prices, get_product, list_categories, search_products. There are no deviations or mixed conventions.

Tool Count5/5

Four tools are well-scoped for a price comparison service: search, browse categories, retrieve product details, and compare offers. Each tool has a clear role and there is no redundant or filler tool.

Completeness4/5

The surface covers the core price comparison workflow: searching, browsing categories, getting detailed product info, and comparing shops. Minor gaps exist, such as no dedicated shop or market listing endpoint, but these are not blocking for typical agent use.

Available Tools

4 tools
compare_pricesCompare pricesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription
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).

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.

get_productGet product detailsA
Read-onlyIdempotent
Inspect

Returns one product by its Plendio id: specifications, one offer per shop (its best) with price, shipping, total, the same amounts in the market's currency, availability, condition and whether the shop ships to the market, a summary of the product's price history over the last year, and the url of its Plendio page. A product that was merged into another resolves to the current one.

ParametersJSON 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).

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlYesThe product's page on Plendio, listing all its offers.
brandNo
notesNo
specsNo
titleYes
imagesNo
marketYes
offersYesCheapest first.
categoryNo
currencyYesCurrency of the market.
in_stockYes
descriptionNo
merged_fromNoSet when product_id was merged into this product.
offer_countYesNumber of offers listed (shops that ship to the market, unless the tool was asked otherwise).
price_historyNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: a merged product resolves to the current one, and each shop returns only its best offer with a market-currency conversion. No rate limits or error behavior, but solid added context.

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?

A single dense sentence that front-loads the verb and resource. The long tail enumerating return fields is informative but overlaps the output schema, making it slightly heavier than necessary; still, every clause carries real 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?

For a read-only two-parameter lookup with an output schema, the description is complete: it signals single-item scope, id provenance, currency conversion, offer selection, and the merged-product edge case. An agent has everything needed to call it correctly without guessing.

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% and both parameters are documented in the schema (market enum with default, product_id format and source). The description only echoes the id concept and gestures at market currency; it adds no syntax or semantics beyond the schema, so the baseline 3 applies.

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?

States a specific verb+resource ('Returns one product by its Plendio id') and enumerates the exact payload (specs, per-shop best offer with price/shipping/total, currency conversion, availability, condition, price history, URL). This is unmistakably the single-product detail tool, distinct from search_products and compare_prices.

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?

The description never says when to use this versus siblings or where the product_id comes from; that sourcing hint ('the id field of a search result, or the number at the end of a Plendio product URL') lives only in the parameter schema. Usage is implied by the single-id scope, but no explicit when/when-not guidance is given.

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

list_categoriesList categoriesA
Read-onlyIdempotent
Inspect

Returns Plendio's product categories with localized names, slugs and product counts: the top level, or the subcategories of parent. The counts are products available in the market.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNoMarket: dk, se, de or no. Default: the market of the site you connected to.
parentNoCategory path or slug whose subcategories to return. Omit for the top level.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesNo
marketYes
parentNoPath of the category whose children these are; absent for the top level.
languageYesLanguage the names are in.
categoriesYes
parent_nameNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safe-read profile is covered. The description adds useful scope context — that counts reflect products available in the given market — but says nothing about result size, hierarchy depth, or pagination behavior.

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?

A single well-constructed sentence that front-loads the resource and what it returns. It is slightly dense, packing the parent-mode behavior into the same sentence, but there is no wasted text.

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?

With only two optional parameters, full schema coverage, and an output schema handling the return shape, the description is nearly sufficient for correct invocation. The one remaining gap is result-set size/ordering behavior, which is minor.

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%, so both parameters (market, parent) are already documented with enum values and defaults in the schema. The description restates the parent/top-level semantics without adding format or edge-case detail, 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?

States a specific verb and resource ('Returns Plendio's product categories') and enumerates what each item contains (localized names, slugs, product counts), so the agent knows exactly what this retrieves. It does not explicitly distinguish itself from siblings like get_product or search_products, but the category-listing purpose is unambiguous.

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?

The clause 'the top level, or the subcategories of parent' implies when each mode applies, and the 'Omit for the top level' behavior signals the default. There is no explicit when-to-use guidance or routing against the sibling product tools, so usage is only implied.

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

search_productsSearch productsA
Read-onlyIdempotent
Inspect

Search Plendio's product catalogue: free text in Danish, Swedish, German, Norwegian or English ("laptop 32 GB RAM under 12000", "Sony WH-1000XM5", "running shoes women") plus optional filters. Spec words in the query (RAM, storage, screen size, price limits, in stock) are understood the way the Plendio website understands them. Each result has the cheapest current price, the number of shops selling it and the url of its Plendio page. Results are limited to shops that ship to the market unless include_other_markets is true. 24 results per page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResult page, 24 products per page. Default 1.
sortNorelevance (default), price_asc or price_desc.
queryYesWhat to look for, in any of the market languages or English: a product name, a type, or a description with specs and limits ("laptop 32 GB RAM under 12000"). Required unless category is given.
shopsNoOnly offers from these shops, by domain, e.g. ["elgiganten.dk"].
brandsNoOnly these brands (up to 25), e.g. ["Sony","Bose"].
marketNoMarket to search: dk, se, de or no. Default: the market of the site you connected to (plendio.dk is dk).
categoryNoCategory slug to narrow the search to, e.g. computere.
in_stockNoOnly products that at least one shop has in stock.
max_priceNoHighest price, in the market's currency (major units).
min_priceNoLowest price, in the market's currency (major units, e.g. 500 means 500 kr.).
include_other_marketsNoAlso include products no shop ships to the market. Default false: only products the market's shoppers can have delivered.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
notesNo
queryYes
totalYesNumber of matching products.
marketYes
appliedNoFilters the search applied, including ones it read from the query text.
currencyYesCurrency of the market.
productsYes
page_sizeYes
search_urlYesThe same search on the Plendio website.
total_exactYesFalse when total is a lower bound ("at least").
total_pagesYes
did_you_meanNoSet when the results answer a corrected spelling of the query.
understood_asNoSet when the query was a sentence: the product searches it was read as, which the results answer.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, and the description adds real operational context beyond them: results are restricted to shops that ship to the market unless include_other_markets is true, and pagination is fixed at 24. It still doesn't hint at ranking behavior beyond the sort enum, but the added constraints are substantive.

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?

Four sentences, front-loaded with purpose before the market/pagination caveats. Every sentence carries information, though the result-shape sentence slightly overlaps with what the output schema provides.

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 11 parameters all documented, an output schema covering return values, and annotations covering safety, the description fills the remaining gaps (market-shipping restriction, page size, query interpretation) without redundancy.

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, but the description adds meaning the schema does not: spec words in the query (RAM, storage, price limits, in stock) are interpreted the way the Plendio site interprets them, and the multi-language query framing clarifies the query field's intent.

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?

States a specific verb and resource ('Search Plendio's product catalogue') and immediately scopes it as free-text across five languages with optional filters. An agent can distinguish this from get_product (single retrieval), compare_prices, and list_categories without opening 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 Guidelines4/5

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

Gives clear context for when the tool applies — free-text queries with embedded specs plus optional filters — and the example queries illustrate the intended input style. It does not explicitly name when to prefer a sibling (e.g. get_product for a known product), so it stops short of full when/when-not guidance.

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. 1 tool update
    • Changedsearch_products1 field changed
      • addedOutput schema / properties / understood_as
        Added value: +{
        +  "description": "Set when the query was a sentence: the product searches it was read as, which the results answer.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": [
        +    "null",
        +    "array"
        +  ]
        +}
  2. 1 tool update
    • Changedcompare_prices1 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"
        +  ]
        +}
  3. 4 tool updates
    • First observedcompare_prices
    • First observedget_product
    • First observedlist_categories
    • 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
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search and compare live prices from Finnish marketplaces (Hinta.fi, Tori.fi, Huuto.net) for new and used products like electronics, furniture, and more.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Search product catalogs across thousands of Central European e-shops. Semantic search, keyword matching, GTIN/EAN lookup — via REST API or MCP. \~2,500 e-shops | ~8.5M products | 7 countries (CZ, SK, PL, HU, RO, DE, AT)
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources