scrapeunblocker-mcp 0.9.0 → 0.10.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/dist/index.js +72 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -905,6 +905,75 @@ var PLUGINS = [
|
|
|
905
905
|
}
|
|
906
906
|
]
|
|
907
907
|
},
|
|
908
|
+
{
|
|
909
|
+
"name": "maps_reviews",
|
|
910
|
+
"title": "Scrape Google Maps reviews",
|
|
911
|
+
"category": "Google",
|
|
912
|
+
"path": "/maps/reviews",
|
|
913
|
+
"fixed": {},
|
|
914
|
+
"description": "Returns one Google Maps place's reviews as JSON, sorted the way Google sorts them: `relevant`, `newest`, `highest` or `lowest`. Each review has `rating` (1-5), `date` (exact ISO 8601, UTC) + `timestamp`, `relativeDate`, `text` (original) + `language`, `translatedText` (into `hl`, when the review is in another language), `author`, `photos`, `details` (guided answers such as 'Rooms: 5'), `ownerResponse` and `reviewUrl`. The answer also carries a `place` summary and `nextPageToken` for paging. Identify the place with `feature_id` (0xHEX:0xHEX), `place_id` (ChIJ...) or a Maps `url`. Reviews come in pages of 20; each page fetched is one billed unit.",
|
|
915
|
+
"params": [
|
|
916
|
+
{
|
|
917
|
+
"name": "url",
|
|
918
|
+
"type": "string",
|
|
919
|
+
"required": false,
|
|
920
|
+
"description": "A Google Maps place URL (share link or /maps/place/... URL). The feature id or place_id is read out of it."
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
"name": "place_id",
|
|
924
|
+
"type": "string",
|
|
925
|
+
"required": false,
|
|
926
|
+
"description": "A Google place_id, e.g. 'ChIJN1t_tDeuEmsRUsoyG83frY4'."
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
"name": "feature_id",
|
|
930
|
+
"type": "string",
|
|
931
|
+
"required": false,
|
|
932
|
+
"description": "A Maps feature id '0xHEX:0xHEX', e.g. '0x4776901a5d4813b3:0x2a497c8b414893c'. Fastest - no resolve step."
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"name": "sort",
|
|
936
|
+
"type": "string",
|
|
937
|
+
"required": false,
|
|
938
|
+
"description": "Review order: 'relevant' (Google's default), 'newest', 'highest' or 'lowest'. SerpApi's 'qualityScore', 'newestFirst', 'ratingHigh' and 'ratingLow' are accepted too.",
|
|
939
|
+
"default": "relevant"
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"name": "max_reviews",
|
|
943
|
+
"type": "integer",
|
|
944
|
+
"required": false,
|
|
945
|
+
"description": "How many reviews to return, 1-200. Reviews come in pages of 20; each page fetched is one billed unit.",
|
|
946
|
+
"default": 20
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"name": "next_page_token",
|
|
950
|
+
"type": "string",
|
|
951
|
+
"required": false,
|
|
952
|
+
"description": "Continue from a previous answer's `nextPageToken` (same place and sort). When `max_reviews` is not a multiple of 20 the next page can repeat a few reviews - dedupe on `reviewId`."
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
"name": "hl",
|
|
956
|
+
"type": "string",
|
|
957
|
+
"required": false,
|
|
958
|
+
"description": "Language for Google's labels and the review translation (`translatedText`), e.g. 'en', 'de'. The original text is always returned in `text`.",
|
|
959
|
+
"default": "en"
|
|
960
|
+
},
|
|
961
|
+
{
|
|
962
|
+
"name": "gl",
|
|
963
|
+
"type": "string",
|
|
964
|
+
"required": false,
|
|
965
|
+
"description": "Google country, ISO-2 lowercase, e.g. 'us'.",
|
|
966
|
+
"default": "us"
|
|
967
|
+
},
|
|
968
|
+
{
|
|
969
|
+
"name": "proxy_country",
|
|
970
|
+
"type": "string",
|
|
971
|
+
"required": false,
|
|
972
|
+
"description": "Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Reviews are the same from any country.",
|
|
973
|
+
"default": "us"
|
|
974
|
+
}
|
|
975
|
+
]
|
|
976
|
+
},
|
|
908
977
|
{
|
|
909
978
|
"name": "google_trends",
|
|
910
979
|
"title": "Scrape Google Trends (interest over time, by region, related queries)",
|
|
@@ -3014,7 +3083,7 @@ var PLUGINS = [
|
|
|
3014
3083
|
"category": "E-commerce",
|
|
3015
3084
|
"path": "/marketplace/shopee-search",
|
|
3016
3085
|
"fixed": {},
|
|
3017
|
-
"description": "Searches a Shopee market (Singapore, Indonesia, Malaysia, Thailand, Vietnam, Philippines, Taiwan or Brazil - `country`) for `q` and returns one page of results: up to 40 `products`, each with `position`, `itemId`, `shopId`, `name`, `url`, `image`, `price`, `originalPrice` (when Shopee shows the crossed-out price), `discountPercent`, `currency`, `rating` (average stars), `location` (where the seller ships from) and `labels` (promotion badges). `sort` orders the results, `min_price` / `max_price` filter them, `shop_id` keeps one shop's products (or lists the shop without `q`), and `url` takes a Shopee search or category link instead. Shopee shows one page per search, so run several sort orders or price ranges for more products. `price` is what Shopee shows a signed-out shopper, which can be a promotional or new-customer price (see `labels`). Not available: stock, units sold, rating counts and reviews (Shopee does not publish them on the pages these endpoints read). One unit per call.",
|
|
3086
|
+
"description": "Searches a Shopee market (Singapore, Indonesia, Malaysia, Thailand, Vietnam, Philippines, Taiwan or Brazil - `country`) for `q` and returns one page of results: up to 40 `products`, each with `position`, `itemId`, `shopId`, `name`, `url`, `image`, `price`, `originalPrice` (when Shopee shows the crossed-out price), `discountPercent`, `isPixPrice`, `currency`, `rating` (average stars), `location` (where the seller ships from) and `labels` (promotion badges). `sort` orders the results, `min_price` / `max_price` filter them, `shop_id` keeps one shop's products (or lists the shop without `q`), and `url` takes a Shopee search or category link instead. Shopee shows one page per search, so run several sort orders or price ranges for more products. `price` is what Shopee shows a signed-out shopper, which can be a promotional or new-customer price (see `labels`). In Brazil a card often shows the Pix price (`isPixPrice: true`): `price` is then the Pix price and `discountPercent` is measured against the list price, which Shopee does not show on such a card, so `originalPrice` is null. Not available: per-variation prices, stock counts, units sold, rating counts and reviews (Shopee does not publish them on the pages these endpoints read). One unit per call.",
|
|
3018
3087
|
"params": [
|
|
3019
3088
|
{
|
|
3020
3089
|
"name": "q",
|
|
@@ -3074,7 +3143,7 @@ var PLUGINS = [
|
|
|
3074
3143
|
"category": "E-commerce",
|
|
3075
3144
|
"path": "/marketplace/shopee-product",
|
|
3076
3145
|
"fixed": {},
|
|
3077
|
-
"description": "One Shopee product as JSON, from a product link (`url`) or `shop_id` + `item_id` + `country`: `title`, `price`, `originalPrice`, `discountPercent`, `currency`, `rating` (average stars), `labels`, `images`, `shopLocation` and `shop` (`name`, `username`, `url`, `rating`, `ratingCount`, `followers`, `itemCount`, `responseRatePercent`, `isOfficialShop`, `isPreferredPlusSeller`, `location`, `joinedAt`). With `dataLevel: full` it also has `description`, `brand`, `condition`, `categories
|
|
3146
|
+
"description": "One Shopee product as JSON, from a product link (`url`) or `shop_id` + `item_id` + `country`: `title`, `price`, `originalPrice`, `discountPercent`, `currency`, `rating` (average stars), `labels`, `images`, `shopLocation` and `shop` (`name`, `username`, `url`, `rating`, `ratingCount`, `followers`, `itemCount`, `responseRatePercent`, `isOfficialShop`, `isPreferredPlusSeller`, `location`, `joinedAt`). With `dataLevel: full` it also has `availability` (`in_stock`, `sold_out` or `unavailable` for a withdrawn listing) and `inStock`, `description`, `brand`, `condition`, `categories` (the path the product page's breadcrumb shows, with ids), `browseCategories` (the browse tree, whose ids Shopee's category links use), `videos`, `variations` (option names), `models` (`modelId`, `name`, `available` - false for a sold-out variation - and `tierIndex`, the model's option in each variation), `attributes`, `isOfficialShop`, `isPreOrder`, `estimatedShippingDays` and `createdAt`; `dataLevel: meta` means Shopee showed only the product's title and main image (some markets), with price, rating and shop still included. A product Shopee says does not exist (removed, or never existed) answers 404 with JSON `{\"status\": \"not_found\", ...}`; a 502 means the call could not get an answer from Shopee and can be retried. `price` is what Shopee shows a signed-out shopper, which can be a promotional or new-customer price (see `labels`). In Brazil a card often shows the Pix price (`isPixPrice: true`): `price` is then the Pix price and `discountPercent` is measured against the list price, which Shopee does not show on such a card, so `originalPrice` is null. Not available: per-variation prices, stock counts, units sold, rating counts and reviews (Shopee does not publish them on the pages these endpoints read). One unit per call.",
|
|
3078
3147
|
"params": [
|
|
3079
3148
|
{
|
|
3080
3149
|
"name": "url",
|
|
@@ -7554,7 +7623,7 @@ ${body}`);
|
|
|
7554
7623
|
}
|
|
7555
7624
|
|
|
7556
7625
|
// src/index.ts
|
|
7557
|
-
var VERSION = "0.
|
|
7626
|
+
var VERSION = "0.10.0";
|
|
7558
7627
|
var DEFAULT_BASE_URL = "https://api.scrapeunblocker.com";
|
|
7559
7628
|
var API_KEY_HEADER = "x-scrapeunblocker-key";
|
|
7560
7629
|
function resolveApiKey() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scrapeunblocker-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"mcpName": "com.scrapeunblocker/scrapeunblocker-mcp",
|
|
5
5
|
"description": "Model Context Protocol (MCP) server for ScrapeUnblocker - lets Claude fetch any web page's HTML (or AI-parsed JSON) and run 100+ site plugins that return structured JSON, through the ScrapeUnblocker anti-bot API, using your own API key.",
|
|
6
6
|
"keywords": [
|