Scrapeunblocker Mcp

com.scrapeunblockerPublished by scrapeunblocker.comv0.12.6Updated Nov 7, 2026

Fetch any web page's HTML or AI-parsed JSON, or run 100+ site plugins, via ScrapeUnblocker.

The publisher's own server: Scrapeunblocker Mcp Remote

Overview

AI-generated overview

ScrapeUnblocker MCP lets an assistant fetch blocked or JS-rendered pages as HTML, Markdown or parsed JSON, search Google, and run 100+ site scrapers.

What you can do
  • Fetch pages as rendered HTML, clean Markdown or AI-parsed structured JSON, including sites behind anti-bot protection
  • Search Google and read the top results in one call, plus Google Shopping, Local, Images and Maps place details
  • Run interactive browser steps (click, type, select, scroll, wait) and list page elements with ready-to-use selectors
  • Run ready-made site plugins for structured JSON, with dedicated tools for Amazon, Walmart, eBay, Zillow, Indeed, Trustpilot, Booking.com, YouTube and more
  • Search YouTube and pull video captions
When to use it
Useful when an assistant needs live web content that plain fetching cannot reach: pages returning 403/429 or captchas, content that only appears after interaction, or structured product, listing, review, job and travel data from known sites.
Requirements
Runs locally over stdio, typically via npx with Node.js. Requires a ScrapeUnblocker account and API key supplied in the SCRAPEUNBLOCKER_KEY environment variable. Network access to the ScrapeUnblocker API is needed; usage is billed per request.
Before you install
The API key is a paid credential; every fetch, search and plugin run is billed like an API request, and search_and_read bills one search plus one request per page read. browse_page is not read-only: its steps act on the live website and are not idempotent. Page content and URLs are sent to ScrapeUnblocker.

Installation

In SourceWeft

  1. Open Scrapeunblocker Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

ScrapeUnblocker MCP server

A Model Context Protocol server that lets Claude (and any other MCP client) fetch any web page's HTML - or run one of 100+ ready-made site plugins that return structured JSON - through the ScrapeUnblocker scraping API, bypassing anti-bot protection (Cloudflare, DataDome, PerimeterX, Akamai, Shape).

You bring your own API key. Nothing is shared or proxied through us.

Tools

ToolWhat it does
fetch_htmlFetch the fully rendered HTML of a URL.
browse_pageRun interactive browser steps on a page (click, type, select, scroll, wait), then return the resulting HTML. Not read-only: it acts on the website.
list_elementsList a page's notable elements with a ready-to-use selector for each (selector discovery).
fetch_parsedFetch a page and return AI-parsed structured JSON.
google_searchRun a Google search and return the results page as JSON: organic results with real URLs, favicons, sitelinks and ratings, ads, AI Overview, People also ask, related searches with links, knowledge panel, news, videos, local and shopping results.
fetch_markdownFetch a page and return it as clean Markdown: the main content with absolute links, without scripts, styles, navigation or footer. Usually 2-25% the size of the HTML, so it is the cheap way for a model to read a page.
search_and_readSearch Google and read the top results in one call: Google's AI Overview (when there is one), the first 1-5 result pages as Markdown, and the other results as title, URL and snippet. Billed as one search plus one request per page read.
list_pluginsList the ready-made site plugins (100+: Amazon, Walmart, Zillow, Booking.com, Indeed, Google Trends, YouTube, App Store, Ahrefs, ...) with their parameters. Free - it calls nothing.
run_pluginRun one site plugin and return its structured JSON.
amazon_search, amazon_product, amazon_reviews, walmart_search, ebay_search, google_shopping, google_local, maps_place_details, google_images, youtube_search, youtube_transcript, zillow_search, indeed_jobs, trustpilot_reviews, booking_hotelsThe most-used site plugins as tools of their own, each with its parameters in the tool schema - one call, no list_plugins lookup. Same JSON as run_plugin.

Site plugins (structured JSON for known sites)

For many popular sites there is a plugin that returns the data already parsed - a Target search, a Zillow listing search, an app's App Store reviews, Google Trends for a few keywords. The model calls list_plugins (optionally with search: "zillow" or a category) to find the plugin and its parameters, then run_plugin with name and params (the most-used plugins, listed in the table above, can also be called directly as their own tools):

json
{ "name": "target_search", "params": { "query": "coffee maker", "max_results": 20 } }

Every plugin and parameter is documented on the plugin pages. Each run is billed like an API request.

Browser steps (interact, then capture)

Some pages only reveal what you need after you interact with them - accept a cookie banner, click a tab, type into a search box and submit, or scroll to trigger lazy loading. Pass a steps array to browse_page and those actions run in a real browser, in order, after the page loads; the resulting HTML is then returned.

Available actions:

ActionFields
wait_forselector, selector_type? (css/xPath/className/tagName), timeout_ms?
wait_for_textvalue, timeout_ms?
waitvalue (ms)
clickselector, selector_type?, timeout_ms?
typeselector, selector_type?, value, clear?, timeout_ms? (typed human-like)
selectselector, selector_type?, value, timeout_ms?
press_keyvalue (Enter, Tab, Escape, Backspace, Delete, Space, Arrow*, Home, End, PageUp, PageDown)
scrollvalue ("bottom" or a pixel offset)

Steps are not idempotent - they run once per call - and they act on the website, so browse_page is the one tool not marked read-only. If a step fails, browse_page returns which step failed, why, and the page HTML at that moment so you can fix the selector and retry.

List elements (discover selectors first)

list_elements loads a page and returns a JSON list of its notable elements (links, inputs, buttons, selects, ...), each with a ready-to-use selector plus tag, text and useful attributes (name, id, type, placeholder, aria_label, href, ...):

json
{ "url": "https://example.com", "count": 42, "elements": [ { "tag": "input", "selector": "#search", "type": "text", "placeholder": "Search", "aria_label": "Search" } ] }

The natural workflow is discover, then act: 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.

Get an API key

Sign up and grab your key at app.scrapeunblocker.com. The server reads it from the SCRAPEUNBLOCKER_KEY environment variable.

Install

Claude Code

The easiest route is the official plugin, which installs this server for you, prompts for your API key (stored in your OS keychain rather than an environment variable), and adds a /scrape-url command plus reference skills:

/plugin marketplace add ScrapeUnblocker/claude-code-plugin/plugin install scrapeunblocker@scrapeunblocker

See ScrapeUnblocker/claude-code-plugin.

To add the bare server instead:

bash
claude mcp add scrapeunblocker \  --env SCRAPEUNBLOCKER_KEY=your_api_key_here \  -- npx -y scrapeunblocker-mcp

Claude Desktop

Add this to your claude_desktop_config.json (Settings → Developer → Edit Config):

json
{  "mcpServers": {    "scrapeunblocker": {      "command": "npx",      "args": ["-y", "scrapeunblocker-mcp"],      "env": {        "SCRAPEUNBLOCKER_KEY": "your_api_key_here"      }    }  }}

Restart Claude Desktop and the ScrapeUnblocker tools appear.

Any other MCP client

Run the server over stdio:

bash
SCRAPEUNBLOCKER_KEY=your_api_key_here npx -y scrapeunblocker-mcp

Example prompts

  • "Fetch the HTML of https://www.example-shop.com/product/123 and list the price."
  • "This page keeps blocking me: . Use fetch_html to get it."
  • "List the elements on , then use browse_page to type 'laptop' into the search box, press Enter, wait for the results, and give me the HTML."
  • "Search Google for 'best running shoes 2026' and give me the top 5 links."
  • "Read https://en.wikipedia.org/wiki/Web_scraping as Markdown and summarise it in five bullets."
  • "Search the web for the current population of Vilnius and cite the pages you read."
  • "Find coffee makers on Target under $50 and compare them with Walmart's."
  • "Show Google Trends for 'coffee' vs 'tea' in the US over the last year."
  • "What are the newest App Store reviews of WhatsApp saying?"

Development

bash
npm installnpm run build      # bundles to dist/ with tsupnpm run typechecknpm test           # builds, then runs the tools against a local stand-in APISCRAPEUNBLOCKER_KEY=... node dist/index.js   # run the server

License

MIT

Source: README.md at commit f3926f4

Tools

24

fetch_html

Fetch page HTML

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.

Parametersurlrequiredwait_valuewait_methodproxy_countrysleep_secondsmethod_timeout_seconds

browse_page

Interact with a page, then capture it

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.

Parametersurlrequiredstepsrequiredwait_valuewait_methodproxy_countrysleep_secondsmethod_timeout_seconds

list_elements

List page elements (selector discovery)

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.

Parametersurlrequiredproxy_country

fetch_parsed

Fetch AI-parsed page data

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).

Parametersurlrequiredrules_hintproxy_country

fetch_markdown

Fetch page as Markdown

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.

Parametersurlrequiredwait_valuewait_methodproxy_countrysleep_secondsmain_content_only

search_and_read

Search Google and read the top results

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.

Parameterskeywordrequiredresultsproxy_country

list_plugins

List site plugins

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.

Parametersnamesearchcategory

run_plugin

Run a site plugin

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.

Parametersnamerequiredparams

amazon_product

Scrape an Amazon product page

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.

Parametersurlasinmarketplaceproxy_country

amazon_reviews

Scrape the reviews on an Amazon product page

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.

Parametersurlasinmarketplaceproxy_country

google_shopping

Scrape Google Shopping product listings

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.

Parametersqrequiredglmax_pricemin_pricemax_resultsproxy_country

google_local

Scrape Google Local business listings

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.

Parametersglhlkeywordrequiredproxy_country

maps_place_details

Scrape Google Maps place details

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.

Parametersglhlrawurlplace_idfeature_idproxy_country

google_images

Scrape Google Images results

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.

Parametersqrequiredglpagesdate_todate_fromtime_rangemax_resultsproxy_country

youtube_transcript

Get a YouTube video transcript

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.

Parameterslangvideorequiredformatproxy_country

indeed_jobs

Scrape Indeed job listings

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.

Parametersdayssortqueryrequiredstartradiusremotecountryjob_typelocationmax_resultsproxy_country

trustpilot_reviews

Scrape Trustpilot company reviews

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.

Parametersdatepagesortpagesstarssearchcompanyrequiredreplieslanguageverifiedproxy_country

booking_hotels

Scrape Booking.com hotels

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.

Parametersroomsadultscheckincheckoutchildrencurrencylocationrequiredmax_resultsproxy_country

Version history

18
  1. v0.12.6LatestNov 5, 2026
  2. v0.12.5Nov 4, 2026
  3. v0.12.3Nov 4, 2026
  4. v0.12.2Nov 3, 2026
  5. v0.12.1Nov 3, 2026
  6. v0.11.1Oct 30, 2026
  7. v0.11.0Oct 30, 2026
  8. v0.10.0Oct 29, 2026
  9. v0.8.1Oct 25, 2026
  10. v0.8.0Oct 23, 2026
  11. v0.6.0Oct 20, 2026
  12. v0.4.0Oct 16, 2026
  13. v0.3.4Oct 15, 2026
  14. v0.3.3Oct 14, 2026
  15. v0.3.2Oct 13, 2026
  16. v0.2.2Sep 30, 2026
  17. v0.2.1Sep 30, 2026
  18. v0.2.0Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Scrapeunblocker integrations