Scrapeunblocker Mcp

com.scrapeunblocker由 scrapeunblocker.com 发布v0.12.6更新于 Nov 7, 2026

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

发布方自己的服务:Scrapeunblocker Mcp Remote

概览

AI 生成的概览

ScrapeUnblocker MCP 让助手抓取被拦截或需渲染的网页(HTML、Markdown 或解析后的 JSON)、搜索 Google,并运行 100 多个站点抓取插件。

可以做什么
  • 抓取网页,返回渲染后的 HTML、干净的 Markdown 或 AI 解析的结构化 JSON,可绕过反爬保护
  • 搜索 Google 并一次读取前几条结果,另含 Google 购物、本地商家、图片和地图地点详情
  • 执行交互式浏览器步骤(点击、输入、选择、滚动、等待),并列出页面元素及可直接使用的选择器
  • 运行现成的站点插件获取结构化 JSON,Amazon、Walmart、eBay、Zillow、Indeed、Trustpilot、Booking.com、YouTube 等另有独立工具
  • 搜索 YouTube 并获取视频字幕
适用场景
适合助手需要普通抓取拿不到的实时网页内容时:返回 403/429 或验证码的页面、需交互后才出现的内容,或从已知站点获取商品、房源、评论、职位和住宿等结构化数据。
运行要求
以 stdio 在本地运行,通常通过 npx 启动,需要 Node.js。需要 ScrapeUnblocker 账号和 API 密钥,通过环境变量 SCRAPEUNBLOCKER_KEY 提供。需要访问 ScrapeUnblocker API 的网络,用量按请求计费。
安装前请注意
API 密钥是付费凭证;每次抓取、搜索和插件运行都按 API 请求计费,search_and_read 按一次搜索加每页一次请求计费。browse_page 并非只读:其步骤会作用于真实网站且不可重复执行。页面内容和网址会发送给 ScrapeUnblocker。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Scrapeunblocker Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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

来源:README.md,提交 f3926f4

工具

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.

输入参数url必填wait_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.

输入参数url必填steps必填wait_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.

输入参数url必填proxy_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).

输入参数url必填rules_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.

输入参数url必填wait_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.

输入参数keyword必填resultsproxy_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.

输入参数namesearchcategory

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.

输入参数name必填params

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.

输入参数urlasinmarketplaceproxy_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.

输入参数urlasinmarketplaceproxy_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.

输入参数q必填glmax_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.

输入参数glhlkeyword必填proxy_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.

输入参数glhlrawurlplace_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.

输入参数q必填glpagesdate_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.

输入参数langvideo必填formatproxy_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.

输入参数dayssortquery必填startradiusremotecountryjob_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.

输入参数datepagesortpagesstarssearchcompany必填replieslanguageverifiedproxy_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.

输入参数roomsadultscheckincheckoutchildrencurrencylocation必填max_resultsproxy_country

版本历史

18
  1. v0.12.6最新Nov 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

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Scrapeunblocker 集成