Price comparison on Ceneo.pl: search products, list every shop's offer, fetch product details.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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).
Ceneo product id (digits) or full product URL
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http ceneo https://mcp.wondel.ai/ceneo/mcp
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).
| Argument | Type | Description |
|---|---|---|
| productId* | string | Ceneo product id (digits) or full product URL |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "string",
"minLength": 1,
"description": "Ceneo product id (digits) or full product URL"
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| productId* | string | Ceneo product id (digits) or full https://www.ceneo.pl/<id> URL |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "string",
"minLength": 1,
"description": "Ceneo product id (digits) or full https://www.ceneo.pl/<id> URL"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max products to return (default 24) |
| phrase* | string | Search text, e.g. 'iphone 15 128gb' |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"phrase"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "Max products to return (default 24)"
},
"phrase": {
"type": "string",
"minLength": 1,
"description": "Search text, e.g. 'iphone 15 128gb'"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.