# ScrapeUnblocker/scrapeunblocker-mcp [Health: Active]

**Category:** 📂 Browser Automation  
**Repository:** https://github.com/ScrapeUnblocker/scrapeunblocker-mcp  
**GitHub Stars:** 3  
**npm Downloads (last month):** 3002  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/scrapeunblocker-scrapeunblocker-mcp

## Description
Fetch any web page's HTML (or AI-parsed JSON, or Google results) through the ScrapeUnblocker anti-bot API (Cloudflare, DataDome, PerimeterX, Akamai, Shape), using your own API key. Three tools: fetchhtml, fetchparsed, googlesearch. Install: npx -y scrapeunblocker-mcp.

## Tools
Capabilities this server exposes over MCP:

- **fetch_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.

For pages that need interaction (accept a cookie banner, click a tab, type into a search box, scroll to trigger lazy loading) pass `steps`: an ordered list of browser actions run in a real browser AFTER the page loads, then the resulting HTML is returned. Workflow: first call the `list_elements` tool to discover the real selectors on the page, then build `steps` against them. Steps are NOT idempotent - they run once per call. 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.
- **list_elements** — 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 `fetch_html` to click/type/select and capture the resulting HTML.
- **fetch_parsed** — 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.
- **google_search** — Run a Google search through ScrapeUnblocker and return the organic results as structured JSON. Use this to discover URLs before fetching them.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

**Requires environment variables:** `SCRAPEUNBLOCKER_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What ScrapeUnblocker/scrapeunblocker-mcp does

ScrapeUnblocker/scrapeunblocker-mcp exposes web retrieval and extraction capabilities through the Model Context Protocol. It sends requests through ScrapeUnblocker, which is designed to retrieve pages protected by services such as Cloudflare, DataDome, PerimeterX, Akamai, and Shape.

Results can be returned in several forms: fully rendered HTML, cleaned Markdown, AI-parsed structured JSON, or structured Google search results. The server also includes ready-made site plugins for common services and marketplaces, including Amazon, Walmart, Zillow, Booking.com, Indeed, YouTube, Google Trends, App Store, and Ahrefs.

## How it works

The server communicates with MCP clients over stdio. Each request uses the ScrapeUnblocker API and your API key rather than a shared proxy credential. For a blocked or JavaScript-heavy page, `fetch_html` retrieves the rendered document. `fetch_markdown` produces a smaller reading-oriented representation with absolute links and without scripts, styles, navigation, or footers.

Interactive pages can be handled in two stages. First, `list_elements` examines a page and returns notable elements with selectors and attributes. Then `browse_page` runs ordered browser actions such as clicking, typing, selecting, waiting, pressing keys, or scrolling before returning the resulting HTML. Actions execute once per request and can change the remote page state. If an action fails, the response identifies the failed step and includes the HTML available at that point.

## Setup and configuration

Obtain a ScrapeUnblocker API key and expose it as `SCRAPEUNBLOCKER_KEY`. The package can be launched without a local install:

```bash
SCRAPEUNBLOCKER_KEY=your_api_key_here npx -y scrapeunblocker-mcp
```

For Claude Desktop, add an MCP server entry that runs `npx` with `-y scrapeunblocker-mcp` and supplies the key through the `env` object. Claude Code can add the same stdio server with `claude mcp add`; its official plugin can instead store the key in the operating system keychain and add related commands and skills.

## Tools and capabilities

- `fetch_html` retrieves rendered page HTML and supports browser steps.
- `browse_page` performs ordered interactions and captures the resulting page.
- `list_elements` discovers usable selectors for links, inputs, buttons, selects, and other elements.
- `fetch_parsed` returns AI-extracted JSON for pages such as articles, products, and listings.
- `fetch_markdown` returns compact, readable page content.
- `google_search` returns organic Google results as JSON.
- `search_and_read` combines a Google search with Markdown reads of the top results.
- `list_plugins` shows available site plugins and parameters; `run_plugin` executes one.
- Dedicated plugin tools cover common searches and lookups such as Amazon, Walmart, eBay, Google Shopping, local results, Maps places, YouTube, Zillow, Indeed, Trustpilot, and Booking.com.

## Limitations and notes

An API key is required, and plugin executions are billed as API requests. `search_and_read` is billed as one search plus one request for each page it reads. Browser steps are not idempotent, so repeating a call may repeat clicks, typing, or other interactions. Selector discovery should be performed before constructing steps for a page whose structure is unfamiliar.

_Full upstream README: https://allmcps.com/mcp/scrapeunblocker-scrapeunblocker-mcp/readme_

