OLX
OLX.pl is Poland’s largest classifieds site, read through the public JSON API its own web app calls. Search any category — flats, cars, phones, furniture, jobs, free items — by words, place and radius, price, condition, seller type and category attributes like area or mileage. Prices keep their meaning: negotiable stays a price, “to be agreed” is null rather than zero, and a rental rate says whether it’s per day or per hour. Open any offer in full (no contact details), or ask which category fits a search term.
Thirty seconds, any client.
claude mcp add --transport http olx https://mcp.wondel.ai/olx/mcp One command in your terminal — the server is available in every Claude Code session.
https://mcp.wondel.ai/olx/mcp Works on every Claude plan that supports custom connectors.
{
"mcpServers": {
"olx": {
"url": "https://mcp.wondel.ai/olx/mcp"
}
}
} Add to .cursor/mcp.json, VS Code's mcp.json, or any client that takes an mcpServers map.
npx mcp-remote https://mcp.wondel.ai/olx/mcp For stdio-only clients: mcp-remote bridges the remote endpoint to a local process. Streamable HTTP-capable clients can hit the URL directly.
This server works with Claude, Claude Code, Claude Desktop, Claude Cowork, Cursor, VS Code, Windsurf — and any other MCP client. Stdio-only clients connect through npx mcp-remote.
3 tools, fully typed.
Parameters below are transcribed from the server’s own zod schemas — what you see is what the tool validates.
olx_search Offers in any category — property, cars, electronics, jobs, free items — filtered by words, category, place and radius or voivodeship, price, condition, seller type and category attributes. Promoted slots are left out by default.
| Param | Type | Description |
|---|---|---|
| query | string | Search words, matched loosely against titles and descriptions. Polish terms work best ("rower górski", "kawalerka"). Omit to browse a category or place. |
| category_id | integer | OLX category id, e.g. 15 = flats for rent, 14 = flats for sale, 84 = passenger cars, 1839 = smartphones, 1151 = free items. Find others with olx_categories. |
| location | string | Polish name of a city, town or village, optionally with a district: "Kraków", "Warszawa Mokotów". English names aren’t recognized; a partial name returns suggestions. |
| region | enum | Voivodeship. Alone, it searches the whole voivodeship; with location, it picks among same-name places. dolnoslaskiekujawsko-pomorskielubelskielubuskielodzkiemalopolskiemazowieckieopolskiepodkarpackiepodlaskiepomorskieslaskieswietokrzyskiewarminsko-mazurskiewielkopolskiezachodniopomorskie |
| distance_km | integer | Also include offers within this radius of location, 0–200 km (OLX offers 2, 5, 10, 15, 30, 50, 75, 100). |
| price_from | number | Minimum price in PLN (monthly rent for rentals). |
| price_to | number | Maximum price in PLN (monthly rent for rentals). |
| condition | enum | Item condition — goods categories only. newused |
| owner_type | enum | Private individuals only, or companies and agencies only. privatebusiness |
| sort_by | enum | Result order. Omit for OLX’s own. relevancenewestprice_ascprice_desc |
| filters | object | Category-specific filters (needs category_id), keyed by an offer’s params keys: "filter_float_<key>:from" / ":to" for numbers, "filter_enum_<key>" for choices — e.g. { "filter_float_m:from": 40, "filter_enum_rooms": ["two", "three"] }. OLX rejects a key the category lacks. |
| include_promoted | boolean = false | Also return OLX’s paid top-ad slots (flagged promoted: true). They repeat across pages and ignore sort_by. |
| offset | integer = 0 | Skip this many results, 0–1000 (OLX pages through the first 1000 only). |
| limit | integer = 20 | Results per call, 1–50. |
| no_cache | boolean = false | Force a fresh fetch, bypassing this server’s 5-minute result cache. |
olx_offer One offer in full: price or salary, every attribute with its Polish name, the full description, all photos, location with map coordinates, seller type and public name, OLX delivery, and the otodom.pl original for partner listings. Never contact details.
| Param | Type | Description |
|---|---|---|
| id * | string | integer | The offer’s numeric id (e.g. 1100381308) or its OLX URL, from olx_search. |
| no_cache | boolean = false | Force a fresh fetch, bypassing this server’s 5-minute result cache. |
olx_categories Find a category_id: OLX’s 19 top-level categories, one category’s sub-categories, or — with query — which categories a search term’s offers fall in, with live counts.
| Param | Type | Description |
|---|---|---|
| parent_id | integer | List this category’s sub-categories (e.g. 3 = Nieruchomości). With query, scopes the counts to it. |
| query | string | Search words; returns the categories their offers fall in, with counts (one live request). |
| no_cache | boolean = false | Force a fresh fetch, bypassing this server’s 5-minute result cache. |
Prompts that just work.
A used mountain bike in Kraków under 2,000 zł — cheapest first, private sellers only.
olx_searchTwo- or three-room flats to rent in Gdańsk, 40–60 m², furnished, under 3,500 zł a month.
olx_searchWhich OLX category should I search for “iphone 13”? Then show the five newest offers there.
olx_categories + olx_searchWhat comes back
olx_search · live response, captured 2026-09-23 from production, abridged
{
"source": "direct+firecrawl+brightdata+zenrows",
"fetchedAt": "2026-09-23T23:40:28.202Z",
"query": { "query": "rower górski", "location": "Kraków", "price_to": 2000, "condition": "used", "limit": 5, … },
"resolved_location": { "city": "Kraków", "city_id": 8959, "region": "Małopolskie", … },
"total_count": 449,
"offset": 0,
"limit": 5,
"next_offset": 5,
"count": 5,
"offers": [
{
"id": 1099176083,
"url": "https://www.olx.pl/d/oferta/rower-gorski-giant-CID767-ID1co1Uw.html",
"title": "Rower górski Giant",
"price": { "value": 200, "currency": "PLN", "negotiable": false, "type": "price", "label": "200 zł" },
"params": { "state": "Używane" },
"city": "Kraków",
"district": "Bronowice",
"category": "Sport i Hobby > Rowery > Rowery górskie",
"seller_type": "private",
"photos_count": 8,
…
},
…
]
}
Fetching tools share one envelope — source says where the data came from,
fetchedAt says when, query echoes what you asked.
price.value is null when there is no amount (to be agreed, swap) — never read it as 0 PLN.
Compact JSON in one text block, exactly how agents like it.
Add OLX
to your agent.
mcp.wondel.ai/olx/mcp Authless · Read-only public data · Streamable HTTP at /mcp