@scavio/mcp-server 0.50.0 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -5
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.js +4 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/olx.d.ts +3 -0
- package/dist/tools/olx.js +132 -0
- package/dist/tools/olx.js.map +1 -0
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|

|
|
4
4
|

|
|
5
5
|
|
|
6
|
-
[Scavio](https://scavio.dev?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) is a unified [Web Search API](https://scavio.dev/docs/search-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) and MCP server that gives AI agents web search, page extraction, and structured data from e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing sources.
|
|
6
|
+
[Scavio](https://scavio.dev?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) is a unified [Web Search API](https://scavio.dev/docs/search-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) and MCP server that gives AI agents web search, page extraction, and structured data from e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing sources. 487 tools across 73 platforms plus Extract, Company Enrich, map, crawl and batch, one API key.
|
|
7
7
|
|
|
8
|
-
**The 22 platforms added in 0.13.0 are opt-in.** Registering all
|
|
8
|
+
**The 22 platforms added in 0.13.0 are opt-in.** Registering all 487 tools puts ~655KB of tool definitions — roughly 90k tokens — into every session before you type anything. So the default is the platform set 0.12.x already had, plus Extract and Company Enrich: 143 tools, 114KB. Upgrading never removes a tool you were using. Everything else is one env var away: see [Choosing which tools load](#choosing-which-tools-load).
|
|
9
9
|
|
|
10
10
|
## Remote MCP Server
|
|
11
11
|
|
|
@@ -207,7 +207,7 @@ Add to settings (`Cmd+,`):
|
|
|
207
207
|
|
|
208
208
|
## Choosing which tools load
|
|
209
209
|
|
|
210
|
-
Scavio exposes
|
|
210
|
+
Scavio exposes 487 tools. Loading all of them costs ~655KB of `tools/list` —
|
|
211
211
|
roughly 90k tokens of context in every session before the user has said anything,
|
|
212
212
|
and more tools than some clients will accept at all. So the server registers a
|
|
213
213
|
curated subset by default and lets you pick the rest. The sizes below are
|
|
@@ -218,7 +218,7 @@ measured, not estimated: `npm run toolslist` reproduces them.
|
|
|
218
218
|
| Value | Registers |
|
|
219
219
|
|-------|-----------|
|
|
220
220
|
| *(unset)* or `default` | Every platform 0.12.x had, plus `extract` and `company` — **143 tools, 114KB** |
|
|
221
|
-
| `all` | every platform — **
|
|
221
|
+
| `all` | every platform — **487 tools, ~655KB** |
|
|
222
222
|
| `extract,sec,g2` | just those platforms — 18 tools, 21KB |
|
|
223
223
|
| `default,zillow,metaads` | the default set plus two more — 149 tools, 122KB |
|
|
224
224
|
| `default,chatgpt,gemini` | the default set plus ChatGPT and Gemini — 145 tools, 117KB |
|
|
@@ -233,7 +233,7 @@ tells you to call to check the server works.
|
|
|
233
233
|
|
|
234
234
|
**Platform keys:** `extract`, `company`, `google`, `chatgpt`, `gemini`, `youtube`, `tiktok`, `instagram`,
|
|
235
235
|
`reddit`, `x`, `linkedin`, `threads`, `kuaishou`, `amazon`, `walmart`, `ebay`,
|
|
236
|
-
`target`, `homedepot`, `costco`, `heb`, `kroger`, `decathlon`, `specs`, `lowes`, `samsclub`, `canadiantire`, `dollargeneral`, `sephora`, `ulta`, `aldi`, `microcenter`, `walgreens`, `cvs`, `wholefoods`, `harborfreight`, `petsmart`, `petco`, `iherb`, `chewy`, `menards`, `nordstrom`, `nordstromrack`, `bestbuy`, `tcgplayer`, `vinted`, `macys`, `saks`, `kohls`, `jcpenney`, `dicks`, `footlocker`, `fanatics`, `carrefour`, `allegro`, `mercadolibre`, `tiktok-shop`, `booking`, `airbnb`,
|
|
236
|
+
`target`, `homedepot`, `costco`, `heb`, `kroger`, `decathlon`, `specs`, `lowes`, `samsclub`, `canadiantire`, `dollargeneral`, `sephora`, `ulta`, `aldi`, `microcenter`, `walgreens`, `cvs`, `wholefoods`, `harborfreight`, `petsmart`, `petco`, `iherb`, `chewy`, `menards`, `nordstrom`, `nordstromrack`, `bestbuy`, `tcgplayer`, `vinted`, `macys`, `saks`, `kohls`, `jcpenney`, `dicks`, `footlocker`, `fanatics`, `carrefour`, `allegro`, `olx`, `mercadolibre`, `tiktok-shop`, `booking`, `airbnb`,
|
|
237
237
|
`tripadvisor`, `yelp`, `zillow`, `redfin`, `realtor`, `rightmove`, `indeed`, `glassdoor`,
|
|
238
238
|
`appstore`, `googleplay`, `g2`, `capterra`, `trustpilot`, `googleads`, `metaads`, `sec`, `companieshouse`
|
|
239
239
|
|
|
@@ -1431,6 +1431,45 @@ Lokalnie as its own source, Smart! account data, seller revenue, seller
|
|
|
1431
1431
|
addresses or tax ids, price history or reviews past the first 20: to track
|
|
1432
1432
|
prices, poll and store your own.
|
|
1433
1433
|
|
|
1434
|
+
### OLX
|
|
1435
|
+
|
|
1436
|
+
OLX Europe classifieds: used goods, cars, real estate and jobs, with sellers, category filters and similar ads (olx.pl, olx.ro, olx.pt, olx.bg, olx.ua, olx.kz and olx.uz). OLX Brasil, olx.in and other OLX-branded sites are not covered.
|
|
1437
|
+
|
|
1438
|
+
| Tool | Description |
|
|
1439
|
+
|------|-------------|
|
|
1440
|
+
| `search_olx` | Search by keyword and / or category, up to 50 ads per page (promoted ads interleaved on top of these, flagged `is_promoted` with `promoted_position`): price (with `original_value` / `original_currency` when the site converts it), salary for jobs, condition, params, location with ids, `created_at` / `refreshed_at`, OLX delivery, seller id; sort by relevance, newest or price; filter by price, condition, private / business seller, OLX delivery, photos, region / city / district with a radius and the category's own `filter_*` keys; `total` and `total_capped` |
|
|
1441
|
+
| `get_olx_offer` | One ad by id or URL: full description, price, salary, every parameter, category breadcrumb, photos, location, dates, status, OLX delivery and the seller (id, `is_business`, `business_name` for businesses, `member_since`) |
|
|
1442
|
+
| `get_olx_seller` | One seller by id: `is_business`, `business_name` (business sellers only), `member_since`, `active_ads`, `ads_url` |
|
|
1443
|
+
| `get_olx_seller_ads` | One seller's live ads, with the search sorts and filters and an optional query |
|
|
1444
|
+
| `get_olx_filters` | A category's filters ready for `filters` (rooms, area, year, mileage ...): key, kind (range or choice), `send_as`, values with ad counts, plus ad counts per region and subcategory (not kz or uz) |
|
|
1445
|
+
| `get_olx_categories` | The category tree: top level with direct children, or one category's whole subtree, with active ad counts |
|
|
1446
|
+
| `search_olx_locations` | City and district autocomplete with `city_id`, `district_id` and `region_id` for search |
|
|
1447
|
+
| `get_olx_suggestions` | Search box suggestions, each with the category it is most searched in |
|
|
1448
|
+
| `get_olx_similar` | The ads OLX recommends next to one ad (about 30), in the search item shape (not kz or uz) |
|
|
1449
|
+
|
|
1450
|
+
Platform key `olx`. 1 credit per call. Markets (`country`): pl (olx.pl, PLN,
|
|
1451
|
+
default), ro (olx.ro, RON), pt (olx.pt, EUR), bg (olx.bg, EUR), ua (olx.ua,
|
|
1452
|
+
UAH), kz (olx.kz, KZT) and uz (olx.uz, UZS) on every tool except
|
|
1453
|
+
`get_olx_filters` and `get_olx_similar` (pl, ro, pt, bg, ua). Titles, params
|
|
1454
|
+
and labels come back in the site's language: Polish on pl, Russian by default
|
|
1455
|
+
on kz and uz; `language` (`kk` on kz, `uz` on uz) switches search, seller ads
|
|
1456
|
+
and offer to Kazakh or Uzbek. `olx_delivery` is not available on kz and uz.
|
|
1457
|
+
OLX lets anyone page through the first 1,000 results of a search only
|
|
1458
|
+
(`total_capped`); kz and uz hide large totals (`total` null). `newest` orders
|
|
1459
|
+
by last refresh (sellers can refresh an ad), not first posting. Discover a
|
|
1460
|
+
category's `filter_*` keys with `get_olx_filters`, then pass them as
|
|
1461
|
+
`filters`. When the site converts a price (olx.uz y.e. to UZS, EUR to RON on
|
|
1462
|
+
ro, USD / EUR to UAH on ua), `price.value` is the converted figure and
|
|
1463
|
+
`original_value` / `original_currency` keep what the seller entered. Private
|
|
1464
|
+
sellers' names, phone numbers, emails, exact map positions, last-seen times
|
|
1465
|
+
and car VINs are never returned, and phone numbers and emails in ad text are
|
|
1466
|
+
replaced; `business_name` is set for business sellers only. Failed calls are
|
|
1467
|
+
not charged; a not-found is a charged 404, and an ended ad answers the same
|
|
1468
|
+
404 as a missing one ("not found or no longer active"). OLX shows no seller
|
|
1469
|
+
ratings or reviews. No view counts, phone numbers, messaging, delivery prices,
|
|
1470
|
+
checkout, average prices, notifications or price history: to watch for new
|
|
1471
|
+
listings or track prices, poll `newest` and store your own.
|
|
1472
|
+
|
|
1434
1473
|
### Kroger
|
|
1435
1474
|
|
|
1436
1475
|
| Tool | Description |
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export declare const PLATFORM_KEYS: string[];
|
|
|
5
5
|
* What registers when SCAVIO_PLATFORMS is unset.
|
|
6
6
|
*
|
|
7
7
|
* Registering everything is not an option any more. The full surface is 408
|
|
8
|
-
* tools, which serialises to
|
|
8
|
+
* tools, which serialises to 655KB of tools/list (measured with
|
|
9
9
|
* `npm run toolslist`, not estimated) — roughly 90k tokens pushed into the
|
|
10
10
|
* context of EVERY session before the user has typed anything, and past the
|
|
11
11
|
* hard tool-count ceiling some clients enforce. The default set below is 143
|
|
@@ -29,7 +29,7 @@ export declare const DEFAULT_PLATFORMS: string[];
|
|
|
29
29
|
* Turn a SCAVIO_PLATFORMS value into the canonical platform keys to register.
|
|
30
30
|
*
|
|
31
31
|
* Accepts a comma-separated list of platform keys, plus three keywords:
|
|
32
|
-
* all — every platform (
|
|
32
|
+
* all — every platform (487 tools)
|
|
33
33
|
* default — expands to DEFAULT_PLATFORMS, so `default,sec,g2` is additive
|
|
34
34
|
* none — no platform tools at all, leaving only get_usage
|
|
35
35
|
*
|
package/dist/tools/index.js
CHANGED
|
@@ -52,6 +52,7 @@ import { registerFootlockerTools } from "./footlocker.js";
|
|
|
52
52
|
import { registerFanaticsTools } from "./fanatics.js";
|
|
53
53
|
import { registerCarrefourTools } from "./carrefour.js";
|
|
54
54
|
import { registerAllegroTools } from "./allegro.js";
|
|
55
|
+
import { registerOlxTools } from "./olx.js";
|
|
55
56
|
import { registerMercadoLibreTools } from "./mercadolibre.js";
|
|
56
57
|
import { registerTiktokShopTools } from "./tiktok-shop.js";
|
|
57
58
|
import { registerBookingTools } from "./booking.js";
|
|
@@ -147,6 +148,7 @@ const PLATFORMS = {
|
|
|
147
148
|
fanatics: registerFanaticsTools,
|
|
148
149
|
carrefour: registerCarrefourTools,
|
|
149
150
|
allegro: registerAllegroTools,
|
|
151
|
+
olx: registerOlxTools,
|
|
150
152
|
mercadolibre: registerMercadoLibreTools,
|
|
151
153
|
"tiktok-shop": registerTiktokShopTools,
|
|
152
154
|
// Travel and local
|
|
@@ -182,7 +184,7 @@ export const PLATFORM_KEYS = Object.keys(PLATFORMS);
|
|
|
182
184
|
* What registers when SCAVIO_PLATFORMS is unset.
|
|
183
185
|
*
|
|
184
186
|
* Registering everything is not an option any more. The full surface is 408
|
|
185
|
-
* tools, which serialises to
|
|
187
|
+
* tools, which serialises to 655KB of tools/list (measured with
|
|
186
188
|
* `npm run toolslist`, not estimated) — roughly 90k tokens pushed into the
|
|
187
189
|
* context of EVERY session before the user has typed anything, and past the
|
|
188
190
|
* hard tool-count ceiling some clients enforce. The default set below is 143
|
|
@@ -242,7 +244,7 @@ function warnOnce(message) {
|
|
|
242
244
|
* Turn a SCAVIO_PLATFORMS value into the canonical platform keys to register.
|
|
243
245
|
*
|
|
244
246
|
* Accepts a comma-separated list of platform keys, plus three keywords:
|
|
245
|
-
* all — every platform (
|
|
247
|
+
* all — every platform (487 tools)
|
|
246
248
|
* default — expands to DEFAULT_PLATFORMS, so `default,sec,g2` is additive
|
|
247
249
|
* none — no platform tools at all, leaving only get_usage
|
|
248
250
|
*
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { handleApiError } from "../lib/tool-error.js";
|
|
3
|
+
import { trimResponse } from "../lib/trim-response.js";
|
|
4
|
+
// Shapes mirror backend/src/routes/olx.ts (OLX Europe: olx.pl, olx.ro, olx.pt,
|
|
5
|
+
// olx.bg, olx.ua, olx.kz, olx.uz). Cross-field rules the backend enforces and
|
|
6
|
+
// zod here does not: search takes query, category_id or both; offer and
|
|
7
|
+
// similar take offer_id or url; page x page_size may not exceed 1000;
|
|
8
|
+
// language is kz / uz only (kk on kz, uz on uz, ru on both); olx_delivery is
|
|
9
|
+
// refused on kz and uz. No zod `.default()`: the MCP SDK would post a
|
|
10
|
+
// defaulted field on every call.
|
|
11
|
+
const COUNTRIES = ["pl", "ro", "pt", "bg", "ua", "kz", "uz"];
|
|
12
|
+
const COUNTRIES_NO_KZ_UZ = ["pl", "ro", "pt", "bg", "ua"];
|
|
13
|
+
const SORTS = ["relevance", "newest", "price_low_to_high", "price_high_to_low"];
|
|
14
|
+
const DISTANCES = [0, 2, 5, 10, 15, 30, 50, 75, 100];
|
|
15
|
+
const MARKETS = "pl (olx.pl, PLN, Polish, default), ro (olx.ro, RON, Romanian), pt (olx.pt, EUR, Portuguese), bg (olx.bg, EUR, Bulgarian), ua (olx.ua, UAH, Ukrainian), kz (olx.kz, KZT, Russian or Kazakh) or uz (olx.uz, UZS, Russian or Uzbek)";
|
|
16
|
+
const MARKETS_NO_KZ_UZ = "pl (olx.pl, PLN, Polish, default), ro (olx.ro, RON, Romanian), pt (olx.pt, EUR, Portuguese), bg (olx.bg, EUR, Bulgarian) or ua (olx.ua, UAH, Ukrainian); not kz or uz";
|
|
17
|
+
const SCOPE = "OLX Europe only (olx.pl, olx.ro, olx.pt, olx.bg, olx.ua, olx.kz, olx.uz); OLX Brasil, olx.in and other OLX-branded sites are not covered.";
|
|
18
|
+
const LANGUAGE = "Titles, parameters and labels come back in the site's language as the site writes them (Polish on pl; Russian by default on kz and uz).";
|
|
19
|
+
const PRIVACY = "Most OLX sellers are private individuals: a seller name is returned only for business sellers (business_name); private sellers come as an id only. No phone numbers, emails, last-seen times, profile photos or map positions are ever returned, and phone numbers and emails written into titles and descriptions are replaced with [phone removed] / [email removed].";
|
|
20
|
+
const PRICE = "price has value, currency, negotiable, type (price, free, exchange or budget), label as shown and previous_value when the seller lowered it; when the site converts a price (olx.uz y.e. to UZS, EUR to RON on ro, USD / EUR to UAH on ua) value is the converted figure and original_value with original_currency keep what the seller entered";
|
|
21
|
+
const ITEM = `id, url, title, description_snippet, ${PRICE}, salary (jobs: from, to, period, currency, gross), condition, params (key, name, value, normalized_value), category_id, location (city, district, region with their ids), created_at, refreshed_at, valid_to, status, is_promoted with promoted_position (the slot on the page), is_highlighted, is_business, olx_delivery and photos, seller (id; business_name for business sellers only)`;
|
|
22
|
+
const GRID = `Items with ${ITEM}. Also total (the site's count; null on kz and uz once a search reaches 1000 ads), total_capped (true when there are more ads than the 1000 OLX lets anyone page through), total_pages, page, page_size, has_next_page, count, promoted_count, sort, applied_filters, country, language and currency`;
|
|
23
|
+
const CHARGE = "1 credit. Failed upstream calls are not charged (they are retried automatically); a not-found is charged.";
|
|
24
|
+
const country = () => z.enum(COUNTRIES).optional()
|
|
25
|
+
.describe(`The OLX site: ${MARKETS}. Defaults to pl. Titles and labels come in the site's language, prices in its currency.`);
|
|
26
|
+
const countryNoKzUz = () => z.enum(COUNTRIES_NO_KZ_UZ).optional()
|
|
27
|
+
.describe(`The OLX site: ${MARKETS_NO_KZ_UZ}. Defaults to pl.`);
|
|
28
|
+
const language = () => z.enum(["ru", "kk", "uz"]).optional()
|
|
29
|
+
.describe("kz and uz only: kk (Kazakh) on kz or uz (Uzbek) on uz; both sites default to ru (Russian). Refused on the other sites, which answer in their own language.");
|
|
30
|
+
const numericId = (description) => z.union([z.string().regex(/^\d{1,9}$/), z.number().int().min(1)]).optional()
|
|
31
|
+
.describe(description);
|
|
32
|
+
const userId = () => z.union([z.string().regex(/^\d{1,12}$/), z.number().int().min(1)])
|
|
33
|
+
.describe("An OLX seller id: items[].seller.id of a search or seller.id of an offer, e.g. '2547532895'.");
|
|
34
|
+
const offerTarget = {
|
|
35
|
+
offer_id: z.union([z.string().regex(/^\d{1,12}$/), z.number().int().min(1)]).optional()
|
|
36
|
+
.describe("An OLX ad id: items[].id of a search, e.g. '1107557408'. Alternative to url."),
|
|
37
|
+
url: z.string().min(1).max(800).optional()
|
|
38
|
+
.describe("An OLX ad link on any of the seven sites. Alternative to offer_id."),
|
|
39
|
+
};
|
|
40
|
+
const gridFields = {
|
|
41
|
+
page: z.number().int().min(1).max(1000).optional()
|
|
42
|
+
.describe("Results page, 1-based. OLX serves the first 1000 results of a search only, so page x page_size may not exceed 1000."),
|
|
43
|
+
page_size: z.number().int().min(1).max(50).optional()
|
|
44
|
+
.describe("Ads per page, up to 50 (default 40). Promoted ads come on top of these (40 asks return about 52 items)."),
|
|
45
|
+
sort: z.enum(SORTS).optional()
|
|
46
|
+
.describe("relevance (default), newest (most recently posted or refreshed first: sellers can refresh an ad to the top), price_low_to_high or price_high_to_low. Promoted ads are not sorted."),
|
|
47
|
+
min_price: z.number().min(0).optional()
|
|
48
|
+
.describe("Lowest price, in the site's currency."),
|
|
49
|
+
max_price: z.number().min(0).optional()
|
|
50
|
+
.describe("Highest price, in the site's currency."),
|
|
51
|
+
condition: z.enum(["new", "used", "refurbished", "damaged"]).optional()
|
|
52
|
+
.describe("new, used, refurbished or damaged (in categories that have a condition)."),
|
|
53
|
+
seller_type: z.enum(["private", "business"]).optional()
|
|
54
|
+
.describe("private (individuals) or business."),
|
|
55
|
+
olx_delivery: z.boolean().optional()
|
|
56
|
+
.describe("Only ads that can be bought with OLX delivery. Not on kz or uz."),
|
|
57
|
+
with_photos: z.boolean().optional()
|
|
58
|
+
.describe("Only ads with photos."),
|
|
59
|
+
region_id: numericId("Only ads in this region: region_id of search_olx_locations or of an item's location."),
|
|
60
|
+
city_id: numericId("Only ads in this city: city_id of search_olx_locations or of an item's location, e.g. '17871'."),
|
|
61
|
+
district_id: numericId("Only ads in this district of a city: district_id of search_olx_locations."),
|
|
62
|
+
distance_km: z.union([z.literal(0), z.literal(2), z.literal(5), z.literal(10), z.literal(15), z.literal(30), z.literal(50), z.literal(75), z.literal(100)]).optional()
|
|
63
|
+
.describe(`With city_id: include ads within this many km of the city (${DISTANCES.join(", ")}).`),
|
|
64
|
+
filters: z.record(z.string(), z.union([z.number(), z.string().min(1).max(80), z.array(z.union([z.string().min(1).max(80), z.number()])).max(20)])).optional()
|
|
65
|
+
.describe("The category's own filters, as listed by get_olx_filters (send_as keys): a range filter as filter_float_<name>:from / :to with a number (e.g. {\"filter_float_year:from\": 2018, \"filter_float_milage:to\": 100000}), a choice filter as filter_enum_<name> with one value or a list (e.g. {\"filter_enum_rooms\": [\"two\"]}). Up to 20 keys; other keys are refused."),
|
|
66
|
+
include_promoted: z.boolean().optional()
|
|
67
|
+
.describe("Keep the promoted ads the site places on each page (default true; each is flagged is_promoted with its slot)."),
|
|
68
|
+
};
|
|
69
|
+
export function registerOlxTools(server, getClient) {
|
|
70
|
+
const post = (path) => async (params) => {
|
|
71
|
+
try {
|
|
72
|
+
const data = await getClient().post(`/api/v1/olx/${path}`, params);
|
|
73
|
+
return trimResponse(data);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
return handleApiError(err);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
server.tool("search_olx", `Search OLX classifieds (used goods, cars, real estate, jobs, services) by keyword and / or category. ${SCOPE} Sort by newest or price; filter by price range, condition, private or business seller, OLX delivery, photos, region / city / district with a radius, and the category's own filters (rooms, area, year, mileage ... discovered with get_olx_filters). Up to 1000 results per query (OLX's own cap). Promoted ads are interleaved and flagged (is_promoted, promoted_position). A query with no exact match returns the closest ads, never an empty list. ${GRID}. ${LANGUAGE} ${PRIVACY} Markets: ${MARKETS}. ${CHARGE}`, {
|
|
80
|
+
query: z.string().min(1).max(200).optional()
|
|
81
|
+
.describe("Search keywords, in any language, e.g. 'iphone'. query, category_id or both."),
|
|
82
|
+
category_id: numericId("Search inside one category: categories[].id of get_olx_categories or an item's category_id, e.g. '84' = cars on olx.pl."),
|
|
83
|
+
country: country(),
|
|
84
|
+
language: language(),
|
|
85
|
+
...gridFields,
|
|
86
|
+
}, post("search"));
|
|
87
|
+
server.tool("get_olx_offer", `One OLX ad by id or link: title, the full description as plain text, ${PRICE}, salary for jobs, condition, every parameter (a car's VIN is never returned), category with breadcrumb, all photos, location (city, district, region with ids), created_at, refreshed_at, valid_to, status, is_active, is_promoted, olx_delivery, is_job and the seller (id, is_business, business_name for business sellers, member_since). An ad that does not exist and an ad that has ended answer the same 404 ("not found or no longer active"). No view counts, phone numbers or messaging. ${SCOPE} ${LANGUAGE} ${PRIVACY} Markets: ${MARKETS}. ${CHARGE}`, {
|
|
88
|
+
...offerTarget,
|
|
89
|
+
country: country(),
|
|
90
|
+
language: language(),
|
|
91
|
+
}, post("offer"));
|
|
92
|
+
server.tool("get_olx_seller", `One OLX seller by id: is_business (from the seller's own ads), business_name (the registered business name, business sellers only; null otherwise), member_since, active_ads (number of live ads; null on kz and uz from 1000 ads up) and ads_url (the seller's page on OLX). OLX shows no seller ratings or reviews, so none are returned. ${SCOPE} ${PRIVACY} Markets: ${MARKETS}. ${CHARGE}`, {
|
|
93
|
+
user_id: userId(),
|
|
94
|
+
country: country(),
|
|
95
|
+
}, post("seller"));
|
|
96
|
+
server.tool("get_olx_seller_ads", `One OLX seller's live ads, with the search_olx sorts and filters and an optional query. ${GRID}. ${LANGUAGE} ${PRIVACY} Markets: ${MARKETS}. ${CHARGE}`, {
|
|
97
|
+
user_id: userId(),
|
|
98
|
+
query: z.string().min(1).max(200).optional()
|
|
99
|
+
.describe("Search within the seller's ads."),
|
|
100
|
+
category_id: numericId("Only the seller's ads in this category."),
|
|
101
|
+
country: country(),
|
|
102
|
+
language: language(),
|
|
103
|
+
...gridFields,
|
|
104
|
+
}, post("seller-ads"));
|
|
105
|
+
server.tool("get_olx_filters", `The filters one OLX category offers, ready to send as search_olx filters: each with key, label, type, kind (range or choice), unit, send_as (the filters keys to use), suggested range steps, and for choice filters every value with its label and the number of matching ads. Also the category's ad counts per region (or per city inside region_id) and per category. Markets: ${MARKETS_NO_KZ_UZ}. ${CHARGE}`, {
|
|
106
|
+
category_id: z.union([z.string().regex(/^\d{1,9}$/), z.number().int().min(1)])
|
|
107
|
+
.describe("The category (categories[].id of get_olx_categories), e.g. '14' = flats for sale on olx.pl, '84' = cars."),
|
|
108
|
+
query: z.string().min(1).max(200).optional()
|
|
109
|
+
.describe("Count values for this keyword inside the category."),
|
|
110
|
+
region_id: numericId("Count values in this region only (locations then lists its cities)."),
|
|
111
|
+
country: countryNoKzUz(),
|
|
112
|
+
}, post("filters"));
|
|
113
|
+
server.tool("get_olx_categories", `The OLX category tree of one site: id, name, parent_id, level, path, url, type and count (active ads), with children. Without parent_id: the top-level categories and their direct children (children_count tells which go deeper); with parent_id: that category's whole subtree. Category names come in the site's language. Markets: ${MARKETS}. ${CHARGE}`, {
|
|
114
|
+
parent_id: numericId("Return this category's whole subtree, e.g. '5'. Without it: the top-level categories with their direct children."),
|
|
115
|
+
country: country(),
|
|
116
|
+
}, post("categories"));
|
|
117
|
+
server.tool("search_olx_locations", `Place autocomplete for OLX location filters: cities and districts matching a name, with city_id, district_id and region_id to send to search_olx, plus the municipality, county and region names. Markets: ${MARKETS}. ${CHARGE}`, {
|
|
118
|
+
query: z.string().min(2).max(100)
|
|
119
|
+
.describe("At least 2 letters of a city or district name, e.g. 'Warszawa'."),
|
|
120
|
+
country: country(),
|
|
121
|
+
}, post("locations"));
|
|
122
|
+
server.tool("get_olx_suggestions", `The suggestions the OLX search box shows for what a user typed: popular searches, each with the category it is most searched in (category_id, name and its parent categories). Markets: ${MARKETS}. ${CHARGE}`, {
|
|
123
|
+
query: z.string().min(1).max(100)
|
|
124
|
+
.describe("What the user has typed so far, e.g. 'rower'."),
|
|
125
|
+
country: country(),
|
|
126
|
+
}, post("suggestions"));
|
|
127
|
+
server.tool("get_olx_similar", `The ads OLX recommends next to one ad (about 30), in the search_olx item shape: ${ITEM}. Also offer_id, count, country, language and currency. ${PRIVACY} Markets: ${MARKETS_NO_KZ_UZ}. ${CHARGE}`, {
|
|
128
|
+
...offerTarget,
|
|
129
|
+
country: countryNoKzUz(),
|
|
130
|
+
}, post("similar"));
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=olx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"olx.js","sourceRoot":"","sources":["../../src/tools/olx.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scavio/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.51.0",
|
|
4
4
|
"mcpName": "io.github.scavio-ai/scavio-mcp",
|
|
5
|
-
"description": "MCP server connecting AI agents to Scavio: web search, page extraction, and structured e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing data.
|
|
5
|
+
"description": "MCP server connecting AI agents to Scavio: web search, page extraction, and structured e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing data. 487 tools across 73 platforms plus Extract, Company Enrich, site map, crawl and batch extraction, one API key.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "Scavio",
|
|
@@ -88,6 +88,10 @@
|
|
|
88
88
|
"allegro-api",
|
|
89
89
|
"allegro-price-monitoring",
|
|
90
90
|
"polish-marketplace",
|
|
91
|
+
"olx",
|
|
92
|
+
"olx-api",
|
|
93
|
+
"olx-listings",
|
|
94
|
+
"classifieds",
|
|
91
95
|
"mercadolibre",
|
|
92
96
|
"mercado-libre",
|
|
93
97
|
"tiktok",
|