com.scrapeunblocker/scrapeunblocker-mcp
NPM · SCRAPEUNBLOCKER-MCP
Fetch any web page's HTML or AI-parsed JSON, or run 100+ site plugins, via ScrapeUnblocker.
Available components
Last scanned (9 hours ago)
Scores higher than 93% of npm servers
Category Web Scraping
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to ScrapeUnblocker/scrapeunblocker-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability60
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 8087 tokens (~336/item across 24 items; 24 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
- Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 24 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +8
- CVE-2023-54404 no longer affects this package ▲ security
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.86 ▲ functional
- Stability: pass → 0.80 functional
- 4 Nov 26 +15
- Known CVEs: unverified → fail ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: unverified → 0.86 ▲ functional
- Package version: 0.12.3 → 0.12.5 functional
- Package version: 0.12.3 → 0.12.4 functional
- 3 Nov 26 −6
- Known CVEs: fail → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Dependency health: 0.86 → unverified ▼ functional
- Package version: 0.12.1 → 0.12.3 functional
- Package version: 0.12.1 → 0.12.2 functional
- 2 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- Package version: 0.11.1 → 0.12.1 functional
- Package version: 0.11.1 → 0.12.0 functional
- 31 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 30 Oct 26 +6
- Known CVEs: unverified → fail ▼ security
- Dependency health: unverified → 0.86 ▲ functional
- Package version: 0.10.0 → 0.11.1 functional
- Package version: 0.10.0 → 0.11.0 functional
- 29 Oct 26 −21
- Known CVEs: fail → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Dependency health: 0.86 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 0.8.1 → 0.10.0 functional
- Package version: 0.8.1 → 0.9.0 functional
- 25 Oct 26 0
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 0.8.0 → 0.8.1 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/scrapeunblocker-mcp@0.12.5
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | ScrapeUnblocker/scrapeunblocker-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/ScrapeUnblocker/scrapeunblocker-mcp/.github/workflows/publish.yml@refs/tags/v0.12.5 |
| Rekor log index | 3688670972 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:aa90d65c045c1f831992c776b04bd7c4b063584737b3f65678470330eaaabd88eaf631c7b46f837361aa2455e5dc803ef5179a6618d34903f5dff977e |
Background: How many MCP packages publish verified provenance →
Dependencies 93 packages
| Packages resolved | 93 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
amazon_product Scrape an Amazon product page ~447
Fetches a single Amazon product and returns it as JSON: `title`, `brand`, `price` + `currency`, `listPrice` and `savingsPercent`, `availability` (+ a boolean `inStock`), `rating`, `reviewCount`, `seller`, `features` (bullet points), `categories` (breadcrumb) and `images`. Identify the product with either `asin` (plus `marketplace`) or a full product `url`. Amazon prices each page in the currency of the delivery location it infers from the visitor's IP address, so `proxy_country` defaults to the marketplace's home country (amazon.com -> US) and the call is routed through proxies in that country. The country of the proxy that served the request is reported as `exitCountry`. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| asin | string | – | Amazon product id (10-char ASIN, e.g. 'B0BSHF7WHW'; books use their ISBN-10). Give either `asin` (with `marketplace`) or a full `url`. |
| marketplace | string | – | Regional Amazon site the ASIN belongs to. Prices and currency differ per marketplace. One of: amazon.com, amazon.co.uk, amazon.de, amazon.fr, amazon.it, amazon.es, amazon.nl, amazon.se, amazon.pl, am… |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to the marketplace's home country so the price comes back in the expected currency. |
| url | string | – | Full Amazon product url, e.g. 'https://www.amazon.de/dp/B0BSHF7WHW'. The ASIN and marketplace are read from it, so `asin`/`marketplace` are not needed when a url is given. |
No output schema declared.
No examples provided.
amazon_reviews Scrape the reviews on an Amazon product page ~609
Returns the review data an Amazon product page shows to a signed-out visitor, as JSON: the overall `rating`, total `reviewCount` (global ratings), the 5..1-star `histogram` (percent per star), the AI `customersSay` summary (overall text plus per-aspect `sentiment`, `mentions`, `positive`, `negative`, `summary` and the quoted review `excerpts` Amazon shows for the aspect) and the top `reviews` (each with `id`, `url`, `author`, `rating`, `title`, `body`, `date`, `country`, `fromOtherCountry`, `verified`, `helpfulVotes`, `variant` and `images`). Identify the product with `asin` (plus `marketplace`) or a product `url`. Scope: Amazon only shows its full review list to signed-in customers, so this endpoint returns the public slice on the product page - typically 5 to 13 top reviews, local ones first and then reviews from other countries - not a complete review export. When Amazon hides the top reviews behind a sign-in prompt (common on amazon.com), `reviewsGated` is `true` and `reviews` is empty; the rating, histogram and customers-say data, including its review excerpts, are still returned. Every field is always present and is `null` when the page does not show it. `proxy_country` defaults to the marketplace's home country; the country of the proxy that served the request is reported as `exitCountry`. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| asin | string | – | Amazon product id (10-char ASIN, e.g. 'B07PXGQC1Q'; books use their ISBN-10). Give either `asin` (with `marketplace`) or a product `url`. |
| marketplace | string | – | Regional Amazon site the ASIN belongs to. Reviews are read from that store. One of: amazon.com, amazon.co.uk, amazon.de, amazon.fr, amazon.it, amazon.es, amazon.nl, amazon.se, amazon.pl, amazon.com.b… |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to the marketplace's home country. The reviews come from the marketplace itself, so any proxy country returns the same review… |
| url | string | – | Full Amazon product url, e.g. 'https://www.amazon.de/dp/B0D1XD1ZV3'. The ASIN and marketplace are read from it, so `asin`/`marketplace` are not needed when a url is given. |
No output schema declared.
No examples provided.
amazon_search Scrape Amazon search listings ~463
Searches any regional Amazon marketplace for `keyword` and returns the result cards as JSON: `asin`, `title`, `price` + `currency`, `listPrice`, `rating`, `reviewCount`, a clean product `url`, `image`, and the `sponsored` / `prime` flags. Filter with `min_price` / `max_price`, order with `sort` (featured, price_asc, price_desc, avg_review, newest), and page with `page`. Fetch each result's full detail (all fields above plus features and images) through `POST /marketplace/amazon-product`. Some cards show no price on the search page (Amazon defers it, or the item has buying options); those return `price: null` and are kept in the list rather than dropped. `proxy_country` defaults to the marketplace's home country so prices are in the expected currency. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| keyword | string | yes | Search phrase, e.g. 'wireless headphones' or a brand + model. |
| marketplace | string | – | Regional Amazon site to search. Prices and currency differ per marketplace. One of: amazon.com, amazon.co.uk, amazon.de, amazon.fr, amazon.it, amazon.es, amazon.nl, amazon.se, amazon.pl, amazon.com.b… |
| max_price | number | – | Highest price to include, in the marketplace's currency. |
| min_price | number | – | Lowest price to include, in the marketplace's currency. |
| page | integer | – | 1-based page number. Default: 1. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to the marketplace's home country so prices come back in the expected currency. |
| sort | string | – | Result order: featured, price_asc, price_desc, avg_review, newest. Default 'featured'. Default: featured. |
No output schema declared.
No examples provided.
booking_hotels Scrape Booking.com hotels ~311
Searches Booking.com for `location` and returns the properties as JSON: `name`, `price` (with `checkin`/`checkout`), `reviewScore`, `address`, coordinates, `image` and a hotel `url`. Set `adults`, `children`, `rooms` and `currency`, and collect up to `max_results` across pages. Prices only appear when check-in/check-out dates are given. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| adults | integer | – | Number of adults. |
| checkin | string | – | Check-in YYYY-MM-DD (needed for prices). |
| checkout | string | – | Check-out YYYY-MM-DD. |
| children | integer | – | Number of children. |
| currency | string | – | Price currency: USD, EUR, GBP, AUD, CAD, CHF, JPY, CNY, INR, BRL, MXN, PLN, SEK, NOK, DKK, AED, SGD, ZAR, TRY, RUB. Default: USD. |
| location | string | yes | City or place to search, e.g. 'Austin' or 'Paris'. |
| max_results | integer | – | How many properties to collect across pages. Default: 25. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). |
| rooms | integer | – | Number of rooms. |
No output schema declared.
No examples provided.
browse_page Interact with a page, then capture it ~353
Load a web page in a real browser through ScrapeUnblocker, run an ordered list of browser actions on it (accept a cookie banner, click a tab, type into a search box, choose an option, press a key, scroll to trigger lazy loading, wait), then return the resulting HTML. Workflow: first call the `list_elements` tool to discover the real selectors on the page, then build `steps` against them. Steps act on the website and are NOT idempotent - they run once per call; never use them to buy, post, delete or change anything unless the user asked for exactly that. If a step fails, this tool returns which step failed, why, and the page HTML at that moment so you can fix the selector and retry. Billed as one request.
| Name | Type | Req | Description |
|---|---|---|---|
| method_timeout_seconds | integer | – | Cap in seconds for the render-wait method. |
| proxy_country | string | – | Optional ISO 3166-1 alpha-2 country code to route through, e.g. 'US', 'GB', 'DE'. |
| sleep_seconds | number | – | Extra seconds to wait after load. |
| steps | array | yes | Ordered browser actions to run in a real browser after the page loads, before the HTML is captured. Use `list_elements` first to find selectors. Runs once (not idempotent). |
| url | string | yes | The absolute URL to open (http/https). |
| wait_method | string | – | Optional render-wait before the steps run: 'css' waits for a selector, 'js' waits for a JS expression to be truthy. |
| wait_value | string | – | The CSS selector or JS expression paired with wait_method. |
No output schema declared.
No examples provided.
ebay_search Scrape eBay search listings ~647
Searches any regional eBay marketplace for `keyword` and returns the listings as JSON: `title`, `price` + `currency`, `condition` (with a normalised `conditionCode`), `seller` (username, feedback percentage and score), `shippingCost`, `sold`, `watchers`, `bids`, `image` and a clean item `url`. Filter with `condition`, `listing_type`, `min_price`/`max_price`, `free_shipping`, `seller` or `category`, sort with `sort`, and page with `page`/`page_size` (60, 120 or 240 per page). Set `marketplace` to search a specific site - prices, currency and availability differ between ebay.com, ebay.de, ebay.co.uk and the rest. When eBay finds no exact match it still serves a full page of its own loosely-related suggestions. That case is reported honestly: `exactMatches` is `false` and a `notice` explains it, so those listings are never mistaken for real matches. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | eBay category id to search inside, e.g. '131090' for vehicle parts and accessories. |
| condition | string | – | Item condition filter: new, open_box, refurbished, used, for_parts. Omit for every condition. |
| free_shipping | boolean | – | Only listings eBay marks as free delivery. Default: false. |
| keyword | string | yes | Search phrase, e.g. 'iphone 13' or a part number like '1K0953519A'. |
| listing_type | string | – | Listing format: all, buy_it_now, auction. Default 'all'. Default: all. |
| marketplace | string | – | Regional eBay site to search. Prices, currency and availability differ per marketplace. One of: ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.nl, ebay.pl, ebay.at, ebay.ch, ebay.be,… |
| max_price | number | – | Highest price to include, in the marketplace's currency. |
| min_price | number | – | Lowest price to include, in the marketplace's currency. |
| page | integer | – | 1-based page number. Default: 1. |
| page_size | integer | – | Listings per page - eBay's own page sizes: 60, 120, 240. Default: 60. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to a country chosen for the marketplace. |
| seller | string | – | Restrict the search to one seller's username. |
| sort | string | – | Ordering: best_match, newly_listed, ending_soon, price_asc, price_desc. Default 'best_match'. Default: best_match. |
No output schema declared.
No examples provided.
fetch_html Fetch page HTML ~266
Fetch the fully rendered HTML of any web page through ScrapeUnblocker, bypassing anti-bot protection (Cloudflare, DataDome, PerimeterX, Akamai, Shape). Use this when a normal fetch is blocked (403/429, captcha, 'access denied') or when the page needs a real browser to render. Returns the raw HTML as text. To read or summarise a page, fetch_markdown is much smaller. To click, type or scroll before capturing, use browse_page.
| Name | Type | Req | Description |
|---|---|---|---|
| method_timeout_seconds | integer | – | Cap in seconds for the render-wait method. |
| proxy_country | string | – | Optional ISO 3166-1 alpha-2 country code to route through, e.g. 'US', 'GB', 'DE'. |
| sleep_seconds | number | – | Extra seconds to wait after load before capturing the HTML. |
| url | string | yes | The absolute URL to fetch (http/https). |
| wait_method | string | – | Optional render-wait strategy: 'css' waits for a selector, 'js' waits for a JS expression to be truthy. |
| wait_value | string | – | The CSS selector or JS expression paired with wait_method (e.g. '#price' or 'document.readyState==="complete"'). |
No output schema declared.
No examples provided.
fetch_markdown Fetch page as Markdown ~245
Fetch a web page in a real browser through the ScrapeUnblocker API (https://docs.scrapeunblocker.com) and return it as clean Markdown: the main content with absolute links, without scripts, styles, navigation or footer. Use it to read, quote or summarise a page; it is usually 2-25% the size of the HTML. Works on JavaScript-rendered pages and on pages that refuse ordinary fetches (403/429, captcha). Use fetch_html instead when you need the markup, selectors or browser steps. Billed as one request.
| Name | Type | Req | Description |
|---|---|---|---|
| main_content_only | boolean | – | Drop navigation, page header, footer and sidebars (default true). False keeps the whole page. |
| proxy_country | string | – | Optional ISO country code to route through, e.g. 'US'. |
| sleep_seconds | number | – | Extra seconds to wait after load. |
| url | string | yes | The absolute URL to read (http/https). |
| wait_method | string | – | Optional render-wait: 'css' selector or 'js' expression. |
| wait_value | string | – | The selector/expression paired with wait_method. |
No output schema declared.
No examples provided.
fetch_parsed Fetch AI-parsed page data ~138
Fetch a web page through ScrapeUnblocker and return AI-parsed structured JSON instead of raw HTML (e.g. product details, article content). Best for extracting fields from product, listing or article pages without writing your own HTML parsing. If the page holds no structured data, the result says so and returns the rendered HTML instead (billed like fetch_html).
| Name | Type | Req | Description |
|---|---|---|---|
| proxy_country | string | – | Optional ISO country code to route through, e.g. 'US'. |
| rules_hint | string | – | Optional natural-language hint about what to extract, to guide parsing. |
| url | string | yes | The absolute URL to fetch and parse. |
No output schema declared.
No examples provided.
google_images Scrape Google Images results ~597
Runs the Google Images vertical (`udm=2`) for `q` and returns the image results as JSON. Every result carries `imageUrl` (the full-resolution origin image, not a Google thumbnail; for an image found inside a document such as a PDF, which has no URL of its own, it is Google's thumbnail and `sourcePageUrl` is the document), `sourceDomain` and `googleImagesUrl` (the Google Images viewer link, i.e. the `/imgres?...` URL a browser copies from the result tile), plus `sourcePageUrl`, `title`, `sourceName`, `thumbnailUrl`, `width`, `height` and `fileSize` where available. Set `proxy_country` to target a market: the Google market (`gl`) follows it automatically, and `gl` is only an optional override. `pages` fetches up to 5 result pages of ~100 each; every page fetched is billed as one request. `time_range` (past hour/day/week/month/year) or `date_from`/`date_to` limit the results to images Google found in that period, so a repeated scan returns only what is new. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| date_from | string | – | Only images Google found on or after this date (YYYY-MM-DD). Works alone or with `date_to`; cannot be combined with `time_range`. |
| date_to | string | – | Only images Google found on or before this date (YYYY-MM-DD). Works alone or with `date_from`; cannot be combined with `time_range`. |
| gl | string | – | Optional Google market override (ISO-2, e.g. 'us', 'de'). Leave empty and the market follows `proxy_country` ('us' when neither is set). The market, not the proxy country, is what decides which image… |
| max_results | integer | – | Optional cap on the number of results returned (default: all results of the fetched pages). |
| pages | integer | – | How many Google Images result pages to fetch (1-5, ~100 results each; Google stops at ~400-500 per query). Each page fetched is billed as one request. Default: 1. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Image results are market-specific. |
| q | string | yes | Image search term, e.g. 'eiffel tower'. |
| time_range | string | – | Only images Google found within this recent period: `hour`, `day`, `week`, `month` or `year` (Google Images' Tools > Time filter). Use it to get just the new results on repeated scans. Cannot be comb… |
No output schema declared.
No examples provided.
google_local Scrape Google Local business listings ~274
Runs a Google Local (`tbm=lcl`) search for `keyword` and returns up to ~20 businesses as JSON: `name`, `rating`, `reviews`, `price`, `category`, `address`, `phone`, `website`, `hours`, and a top `review_snippet`. `phone` and `website` are null when Google does not render them for that result - service businesses (plumbers, contractors) almost always carry both. Local results are location-sensitive - set `proxy_country` (and optionally `gl`/`hl`) to target a market. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| gl | string | – | Google country of search, ISO-2 lowercase, e.g. 'us', 'de'. |
| hl | string | – | Google UI language, e.g. 'en', 'de', 'fr'. Default: en. |
| keyword | string | yes | Search phrase, e.g. 'coffee shops in chicago' or 'plumbers near SW1A'. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'GB'). Local results are location-sensitive, so pick the country you want results for. |
No output schema declared.
No examples provided.
google_search Google search results ~133
Run a Google search through ScrapeUnblocker and return the results page as structured JSON: organic results with their real URLs, favicons, sitelinks and star ratings, ads, the AI Overview, People also ask, related searches with their links, the knowledge panel, top stories, videos, local and shopping results. Use this to discover URLs before fetching them.
| Name | Type | Req | Description |
|---|---|---|---|
| keyword | string | yes | The search query. |
| pages_to_check | integer | – | How many result pages to collect (default 1). |
| proxy_country | string | – | Optional ISO country code to search from, e.g. 'US'. |
No output schema declared.
No examples provided.
google_shopping Scrape Google Shopping product listings ~335
Runs the Google Shopping vertical (`udm=28`) for `q` and returns the product cards as JSON: `title`, `price`, `currency`, `currencyCode`, `originalPrice`, `discount`, `merchant`, `rating`, `reviewCount` and Google's own ids for the product (`productId`, `catalogId`, `offerId` - stable across searches, for tracking one product). Set `proxy_country`/`gl` to target a market (prices/merchants are region-specific) and `min_price`/`max_price` to filter. One render returns the first page of products (v1). Note: Google Shopping exposes no per-product URL, so `url` is omitted and `image` is best-effort. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| gl | string | – | Market of search, ISO-2, e.g. 'us', 'de'. Sets prices/merchants. Default: us. |
| max_price | integer | – | Maximum price filter (whole units, gl currency). |
| max_results | integer | – | How many products to return (v1: first page). Default: 60. |
| min_price | integer | – | Minimum price filter (whole units, gl currency). |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Prices/merchants are market-specific. |
| q | string | yes | Product search term, e.g. 'wireless headphones'. |
No output schema declared.
No examples provided.
indeed_jobs Scrape Indeed job listings ~438
Searches Indeed for `query` in `location` and returns the job listings as JSON: `title`, `company`, `location`, `salary` (with parsed `min`/`max`), `jobTypes`, `companyRating`, a `snippet`, `datePosted` (YYYY-MM-DD), `sponsored` (Indeed's paid placement) and a clean job `url`. Filter with `country`, `job_type`, `days` (posting age), `remote`, sort with `sort` (`date` returns the collected jobs newest first, sponsored ones included), and collect up to `max_results` across pages. Indeed sits behind Cloudflare + PerimeterX - handled for you. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Indeed country site: us, uk, ca, au, in, ie, de, fr, nl, es, it, at, ch, be, pl, se, sg, za, nz, mx. Default: us. |
| days | integer | – | Max posting age in days: 1, 3, 7, 14. |
| job_type | string | – | Job type: fulltime, parttime, contract, internship, temporary. |
| location | string | – | Where, e.g. 'Austin, TX' or 'London'. |
| max_results | integer | – | How many jobs to collect across pages. Default: 30. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to the country's site. |
| query | string | yes | What to search, e.g. 'software engineer' or 'nurse'. |
| radius | integer | – | Search radius in miles/km around the location. |
| remote | boolean | – | Only remote jobs. Default: false. |
| sort | string | – | Ordering: relevance, date. Default: relevance. |
| start | integer | – | 0-based result offset to start from. Default: 0. |
No output schema declared.
No examples provided.
list_elements List page elements (selector discovery) ~160
Load a page through ScrapeUnblocker and return a JSON list of its notable elements (links, inputs, buttons, selects, etc.) with a ready-to-use `selector` for each, plus tag, text and useful attributes (name, id, type, placeholder, aria_label, href, ...). Read-only and does not interact with the page. This is the discovery half of interactive scraping: call `list_elements` to find the selectors you need, then pass matching `steps` to `browse_page` to click/type/select and capture the resulting HTML.
| Name | Type | Req | Description |
|---|---|---|---|
| proxy_country | string | – | Optional ISO country code to route through, e.g. 'US'. |
| url | string | yes | The absolute URL whose elements you want to list. |
No output schema declared.
No examples provided.
list_plugins List site plugins ~202
List ScrapeUnblocker's ready-made site plugins: scrapers for specific sites that return clean structured JSON (Amazon, Walmart, Target, eBay, Zillow, Redfin, Booking.com, Airbnb, Indeed, Glassdoor, Google Trends / Shopping / Maps, YouTube, Spotify, App Store, Google Play, Trustpilot, Yelp, Ahrefs, Semrush and 100+ more). Check here before scraping a known site with fetch_html - a plugin returns the data already parsed. Without arguments it lists every plugin with its parameters (* = required); `category` or `search` narrow the list; `name` returns one plugin's full parameter docs. Free - it calls nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Only plugins in this category. |
| name | string | – | A plugin name, for its full parameter docs. |
| search | string | – | Only plugins whose name or description mentions this, e.g. 'zillow' or 'reviews'. |
No output schema declared.
No examples provided.
maps_place_details Scrape Google Maps place details ~422
Returns the full data for one Google Maps place as JSON: `name`, `address` (+ `addressLines`), `phone`, `website`, `rating`, `categories`, `latitude`/`longitude`, `plusCode`, `hours` + `openNow`, `description`, `photo`, `cid`, `featureId`, `googleMapsUrl` and `relatedPlaces`. Identify the place with `place_id` (ChIJ...), a Maps `url`, or a raw `feature_id` (0xHEX:0xHEX). Location-neutral - the feature id resolves the place directly; `proxy_country` defaults to a US proxy to clear Google's consent wall. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| feature_id | string | – | A Maps feature id '0xHEX:0xHEX', e.g. '0x47e66e2964e34e2d:0x8ddca9ee380ef7e0'. Fastest - no resolve step. |
| gl | string | – | Google country, ISO-2 lowercase, e.g. 'us'. Default: us. |
| hl | string | – | Google UI language, e.g. 'en', 'de', 'fr'. Default: en. |
| place_id | string | – | A Google place_id, e.g. 'ChIJN1t_tDeuEmsRUsoyG83frY4'. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to US - an EU country hits Google's consent wall. Default: us. |
| raw | boolean | – | Include the decoded place core array under `raw`. Default: false. |
| url | string | – | A Google Maps place URL: a /maps/place/... URL, a maps.app.goo.gl share link or a maps?cid= link. The place is read out of it. |
No output schema declared.
No examples provided.
run_plugin Run a site plugin ~156
Run one ScrapeUnblocker site plugin and return its JSON - e.g. a Target or Walmart search, a Zillow listing search, Google Trends for some keywords, an app's App Store reviews. Find the plugin and its parameters with list_plugins first. `params` uses the parameter names list_plugins shows (snake_case); a list value is fine where a parameter takes several. Each run is billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | The plugin to run, as list_plugins names it. |
| params | object | – | The plugin's parameters, e.g. {"query": "coffee maker", "max_results": 20}. |
No output schema declared.
No examples provided.
search_and_read Search Google and read the top results ~162
Search Google through the ScrapeUnblocker API (https://docs.scrapeunblocker.com) and read the top results in one call: returns Google's AI Overview when there is one, each of the first `results` pages (default 3, max 5) as Markdown, and the other organic results as title, URL and snippet. Use it to answer a question from the live web. Billed as one request for the search plus one per page read.
| Name | Type | Req | Description |
|---|---|---|---|
| keyword | string | yes | The search query. |
| proxy_country | string | – | Optional ISO country code to search from and read the pages through, e.g. 'US'. |
| results | integer | – | How many top results to read (default 3, max 5). |
No output schema declared.
No examples provided.
trustpilot_reviews Scrape Trustpilot company reviews ~509
Returns a company's Trustpilot profile and reviews as JSON. `company` is the reviewed domain (e.g. `www.nike.com`). The response has a `company` summary (`trustScore`, `totalReviews`, `ratingDistribution` 1-5, `categories`, `contact`) and a `reviews` array - each with `rating`, `title`, `text`, `verified`, `author` (name, country, review count), `reply` (the company's response) and dates. Page with `page`/`pages` (20 reviews per page), and filter with `stars`, `sort` (recency/relevancy), `language`, `date`, `search`, `verified` or `replies`. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | yes | The reviewed company's domain, e.g. 'www.nike.com' or 'nike.com'. A full site URL or a pasted Trustpilot review URL is also accepted. |
| date | string | – | Only reviews from a recent window: last30days, last3months, last6months, last12months. Omit for all time. |
| language | string | – | Review language ISO-2 code (e.g. 'en', 'de') or 'all'. Default 'all'. Default: all. |
| page | integer | – | 1-based page to start from (20 reviews/page). Default: 1. |
| pages | integer | – | How many consecutive pages to fetch from `page` onward (20 reviews each). Stops early at the last page. Default: 1. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to a country chosen for the site. |
| replies | boolean | – | Only reviews the company has replied to. Default: false. |
| search | string | – | Keyword to search within the company's reviews. |
| sort | string | – | Ordering: recency, relevancy. Default 'recency' (newest first). Default: recency. |
| stars | – | – | Only reviews with these star ratings (1, 2, 3, 4, 5). Repeatable, e.g. stars=4&stars=5. |
| verified | boolean | – | Only verified reviews (Trustpilot's verified badge). Default: false. |
No output schema declared.
No examples provided.
walmart_search Scrape Walmart product search ~267
Searches Walmart for `query` and returns the products as JSON: `name`, `price` and `wasPrice`, `rating`, `reviewCount`, `brand`, `seller`, `availability`, `image` and a product `url`. Sort with `sort`, filter with `min_price`/`max_price`, and collect up to `max_results` across pages. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| max_price | integer | – | Highest price to include (USD). |
| max_results | integer | – | How many products to collect across pages. Default: 40. |
| min_price | integer | – | Lowest price to include (USD). |
| page | integer | – | 1-based page to start from (~40 per page). Default: 1. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to US. |
| query | string | yes | What to search, e.g. 'laptop' or 'coffee maker'. |
| sort | string | – | Ordering: best_match, price_low, price_high, best_seller, rating_high, new. Default: best_match. |
No output schema declared.
No examples provided.
youtube_search Search YouTube ~256
Searches YouTube for `query` and returns the results as JSON. For each video: `videoId`, `title`, `url`, `channel` (name/id/url), `publishedText`, `viewCount` (+ text), `lengthSeconds` (+ text), `thumbnails`, `descriptionSnippet`, `badges`, `verified` and `isLive`. Filter with `type` (video / channel / playlist / all) and `sort` (relevance / date / views / rating), and collect up to `max_results` across pages. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | – | How many results to collect across pages (~20 per page). Default: 20. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to US. |
| query | string | yes | Search terms. |
| sort | string | – | Ordering: relevance, rating, date, views. Default: relevance. |
| type | string | – | Result type: video, channel, playlist, movie, all. Default: video. |
No output schema declared.
No examples provided.
youtube_transcript Get a YouTube video transcript ~260
Returns a YouTube video's captions as JSON: timestamped `segments` (`start`, `dur`, `text`) and a joined `text`, plus `availableLanguages`, the picked `language`, `isAutoGenerated`, and the video's `title`, `author` and `lengthSeconds`. Pass a video id or any YouTube video URL; choose a caption language with `lang`. Ideal for LLM/RAG pipelines, subtitles and content analysis. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Output shape: segments, text. 'segments' returns timestamps; 'text' returns only the joined plaintext. Default: segments. |
| lang | string | – | Preferred caption language code, e.g. 'en'. Omit for the default/first track. A prefix like 'en' matches 'en-US'. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE') for the watch page. Defaults to US. |
| video | string | yes | Video id (dQw4w9WgXcQ) or any YouTube video URL. |
No output schema declared.
No examples provided.
zillow_search Scrape Zillow real-estate listings ~437
Searches Zillow for `location` (a city/state or ZIP) and returns the listings as JSON: `price`, `beds`, `baths`, `area`, `address`, `homeType`, `zestimate`, `rentZestimate`, `daysOnZillow`, coordinates, broker and a clean `url`. Filter with `status` (for_sale / for_rent / sold), `min_price`/`max_price`, `beds`, `baths` and `home_type`, sort with `sort`, and collect up to `max_results` across pages. Rental results can include apartment buildings (`isBuilding: true`): they have no `zpid` and carry `lotId`, `buildingName`, a rent range (`price` to `maxPrice`), `units` and `availableUnits` instead. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
| Name | Type | Req | Description |
|---|---|---|---|
| baths | integer | – | Minimum bathrooms. |
| beds | integer | – | Minimum bedrooms. |
| home_type | string | – | Property type filter: houses, condos, townhomes, multi_family, apartments, manufactured, lots_land. Omit for all. |
| location | string | yes | City/state or ZIP to search, e.g. 'Austin, TX' or '78704'. |
| max_price | integer | – | Maximum price (or monthly rent). |
| max_results | integer | – | How many listings to collect across pages (~41 per page). Default: 41. |
| min_price | integer | – | Minimum price (or monthly rent). |
| page | integer | – | 1-based results page to start from. Default: 1. |
| proxy_country | string | – | Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Defaults to US. |
| sort | string | – | Ordering: newest, price_asc, price_desc, relevant, beds, sqft, lot. Default: newest. |
| status | string | – | Listing status: for_sale, for_rent, sold. Default: for_sale. |
No output schema declared.
No examples provided.
How do I install the com.scrapeunblocker/scrapeunblocker-mcp server?
com.scrapeunblocker/scrapeunblocker-mcp runs locally as an npm package, launched with npx -y scrapeunblocker-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · scrapeunblocker-mcp
claude mcp add com-scrapeunblocker-scrapeunblocker-mcp -- npx -y scrapeunblocker-mcp
What is the com.scrapeunblocker/scrapeunblocker-mcp server?
com.scrapeunblocker/scrapeunblocker-mcp is listed in the public MCP registry as com.scrapeunblocker/scrapeunblocker-mcp. Fetch any web page's HTML or AI-parsed JSON, or run 100+ site plugins, via ScrapeUnblocker. This page covers its npm package (scrapeunblocker-mcp).
Is the com.scrapeunblocker/scrapeunblocker-mcp server safe to use?
com.scrapeunblocker/scrapeunblocker-mcp scores 89 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the com.scrapeunblocker/scrapeunblocker-mcp server expose?
com.scrapeunblocker/scrapeunblocker-mcp exposes 24 tools: fetch_html, browse_page, list_elements, fetch_parsed, google_search, and 19 more. Their descriptions and schemas cost roughly 8,087 tokens of context every time the server is loaded.
Is the com.scrapeunblocker/scrapeunblocker-mcp server still maintained?
com.scrapeunblocker/scrapeunblocker-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the com.scrapeunblocker/scrapeunblocker-mcp server under?
com.scrapeunblocker/scrapeunblocker-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.