Odel
scrapeunblocker mcp

scrapeunblocker mcp

Local
@scrapeunblocker1TypeScriptMITUpdated 1w ago

Fetch any web page's HTML or AI-parsed JSON through the ScrapeUnblocker anti-bot API.

ScrapeUnblocker MCP server

A Model Context Protocol server that lets Claude (and any other MCP client) fetch any web page's HTML 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 (optionally after running interactive browser steps).
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 organic results as JSON.

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 an optional steps array to fetch_html 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. If a step fails, fetch_html 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, ...):

{ "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 fetch_html 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:

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

{
  "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:

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 fetch_html steps 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."

Development

npm install
npm run build      # bundles to dist/ with tsup
npm run typecheck
SCRAPEUNBLOCKER_KEY=... node dist/index.js   # run the server

License

MIT