Ceneo MCP
Server Details
Price comparison on Ceneo.pl: search products, list every shop's offer, fetch product details.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool targets a distinct step in the price-comparison flow: search by phrase, fetch product metadata, and list per-shop offers by product id. The descriptions explicitly cross-reference each other (get id from ceneo_search, pass it to ceneo_product_offers), leaving no realistic chance of misselection.
All three tools use the same `ceneo_` prefix with snake_case resource names (ceneo_search, ceneo_product, ceneo_product_offers). The pattern is predictable and the prefix cleanly namespaces the server.
Three tools is on the thin side but matches the narrow purpose: search, detail, offers. Each tool earns its place and nothing is redundant, though a slightly richer surface (e.g. category or review lookup) would round it out.
The core lifecycle — find a product, inspect it, compare shop prices — is fully covered with no dead ends. Gaps are minor and non-blocking: no price history, reviews, or category/browse operations, which agents can work around via search.
Available Tools
3 toolsceneo_productGet a Ceneo productAInspect
Product details from Ceneo: name, images, description, brand, price range, offer count and rating. Fetched live from Ceneo.pl (a few seconds via direct fetch; up to ~20s when routed through an unblocker backend).
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Ceneo product id (digits) or full product URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and it does add real value by disclosing that the data is fetched live and giving a latency profile (a few seconds direct, up to ~20s via unblocker). It says nothing about failure modes (invalid productId), rate limits, or caching, which matters for a live-scrape tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the returned fields are front-loaded, then the latency caveat. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so listing the returned fields is genuinely useful, and the latency note covers the main operational surprise. Missing only error/edge-case behavior for an invalid id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents that it accepts either a numeric product id or a full URL. The description adds nothing beyond that, which is acceptable given the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('Product details from Ceneo') and enumerates the returned fields (name, images, description, brand, price range, offer count, rating), so an agent knows exactly what comes back. It does not explicitly differentiate itself from siblings ceneo_product_offers or ceneo_search, though the field list implies the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the tool for fetching a single product's details, but the description never names ceneo_product_offers or ceneo_search as alternatives or states when not to use this one. No prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ceneo_product_offersCompare shop offers for a Ceneo productAInspect
Given a Ceneo product id, return EVERY shop's offer (shop, price, link) sorted cheapest-first — the price comparison. Get the id from ceneo_search. Fetched live from Ceneo.pl (a few seconds via direct fetch; up to ~20s when routed through an unblocker backend).
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Ceneo product id (digits) or full https://www.ceneo.pl/<id> URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses that data is fetched live, gives latency expectations (a few seconds, up to ~20s via unblocker backend), and describes the sort order. It doesn't mention auth, rate limits, or failure behavior, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, front-loaded with the core behavior and return shape, followed by the one dependency and timing caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description covers input provenance, output fields, ordering, and latency, which is everything an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents that productId accepts digits or a full URL. The description adds only that the id comes from ceneo_search, so the baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('return EVERY shop's offer') plus the exact return fields (shop, price, link) and ordering (cheapest-first). This is clearly distinguishable from ceneo_search and ceneo_product, which are about discovery and single-product detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent where to get the required id ('Get the id from ceneo_search'), establishing the prerequisite and sibling relationship. It stops short of stating when-not to use it (e.g., vs ceneo_product for a single product), so it falls just below the top bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ceneo_searchSearch Ceneo productsAInspect
Search Ceneo.pl (Poland's price-comparison engine) by phrase. Returns each product's lowest price and how many shops offer it, plus its Ceneo product id (use it with ceneo_product_offers). Fetched live from Ceneo.pl (a few seconds via direct fetch; up to ~20s when routed through an unblocker backend). Result shape: { source, fetchedAt, query, count, products: [...], note? } — the list key is products, and there are no per-shop offers here (call ceneo_product_offers with a product id for those). Each product: { id, name, url, lowestPrice, currency, shopCount, image }; lowestPrice is the formatted string Ceneo renders, not a number. A genuine no-match answers count: 0 with a note saying what to try instead — that is a successful result, not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max products to return (default 24) | |
| phrase | Yes | Search text, e.g. 'iphone 15 128gb' |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| count | Yes | |
| query | Yes | |
| source | Yes | |
| products | Yes | |
| fetchedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does so: live fetch from Ceneo.pl, latency expectations (a few seconds, up to ~20s via an unblocker backend), and the important semantic that count:0 with a `note` is a success, not an error. It also warns that `lowestPrice` is a formatted string, not a number — a real gotcha for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then result shape, then the no-match rule — a sensible ordering. It is somewhat dense and repeats the ceneo_product_offers handoff twice ("use it with ceneo_product_offers" and "call ceneo_product_offers with a product `id`"), which is minor redundancy rather than waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter search tool with an output schema, the description covers everything an agent needs: input semantics, latency, the shape of the payload, the type of `lowestPrice`, and how to interpret a zero-result response. Nothing required to call it correctly or interpret its output is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (phrase, limit with default 24 / max 60) are documented in the schema. The description reinforces what `phrase` means by describing the result fields it drives, but adds no syntax or constraint detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ("Search Ceneo.pl ... by phrase") and immediately states what the result contains (lowest price, shop count, Ceneo product id). It explicitly separates itself from ceneo_product_offers, so an agent can distinguish it from siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear routing guidance: use this for phrase search, then call ceneo_product_offers with the returned `id` for per-shop offers. It does not explain when to prefer ceneo_product (the third sibling) over this tool, so the when-not coverage is partial rather than complete.
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.
3 tool updates
- First observed
ceneo_product - First observed
ceneo_product_offers - First observed
ceneo_search
Related MCP Connectors
Product search across online shops worldwide, plus every seller's price with a direct link.
Amazon search in 22 country stores, cross-store price comparison, one product's offers, all in PLN.
41Price comparison for CZ/SK: product prices, shops, digital plans via Streamable HTTP.
Search ~8.5M products from 2,500+ Central European e-shops. Semantic, keyword, GTIN lookup.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceSearch 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

idealo MCP Serverofficial
AlicenseNot gradedqualityFmaintenanceEnables product search, price comparison, and price history analysis across 6 European marketplaces (DE, AT, GB, FR, IT, ES).23MIT- AlicenseAqualityAmaintenanceSearch Ukrainian marketplaces (OLX, Hotline, Prom; Rozetka via Bright Data MCP) from a plain-language prompt and get structured offers with prices and links.7MIT
- AlicenseAqualityCmaintenanceEnables searching for products on KuantoKusta.pt with filters and retrieving detailed product information including prices from multiple stores.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.