Skip to main content
Glama
ScrapeUnblocker

ScrapeUnblocker MCP Server

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SCRAPEUNBLOCKER_KEYYesYour ScrapeUnblocker API key

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
fetch_htmlA

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.

browse_pageA

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.

list_elementsA

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.

fetch_parsedA

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

google_searchA

Run a Google search through ScrapeUnblocker and return the organic results as structured JSON. Use this to discover URLs before fetching them.

fetch_markdownA

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.

search_and_readA

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.

list_pluginsA

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.

run_pluginA

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.

amazon_searchA

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.

amazon_productA

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 ISP proxies in that country. The proxy that served the request is reported as exitCountry (its country) and exitProvider (its type: isp, residential or datacenter). Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.

amazon_reviewsA

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 proxy that served the request is reported as exitCountry (its country) and exitProvider (its type: isp, residential or datacenter). Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.

walmart_searchA

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.

ebay_searchA

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.

google_shoppingA

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.

google_localA

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.

maps_place_detailsA

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.

google_imagesA

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.

youtube_searchA

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.

youtube_transcriptA

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.

zillow_searchA

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.

indeed_jobsA

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.

trustpilot_reviewsA

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.

booking_hotelsA

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 24 tools

Disambiguation3/5

Most tools target clearly distinct resources (Trustpilot reviews vs. Amazon reviews vs. Zillow listings), and the fetch family (fetch_html / fetch_markdown / fetch_parsed / browse_page) is carefully differentiated in the descriptions. However, run_plugin overlaps heavily with the ten dedicated site scrapers — an agent can run the Amazon or Zillow plugin through run_plugin instead of amazon_search / zillow_search — and google_search partly overlaps with search_and_read, so several genuine misselection paths exist.

Naming Consistency4/5

There is a readable two-family convention: generic utilities use verb_noun (fetch_html, list_plugins, run_plugin, browse_page) and site scrapers use domain_action (amazon_search, walmart_search, ebay_search, zillow_search, youtube_search). Deviations like google_shopping, google_local, google_images, maps_place_details and youtube_transcript (domain_noun rather than domain_action) are minor but break the pattern enough to cost a point.

Tool Count4/5

24 tools is on the heavy side, but each of the site scrapers maps to a genuinely different data schema and market, and splitting them keeps argument lists understandable versus one giant run_plugin call. The count is defensible for a multi-vertical scraping API, though a couple of the marketplace endpoints (amazon_search / amazon_product / amazon_reviews) could plausibly be consolidated.

Completeness4/5

The surface is broad and coherent for a scraping service: search (Google web/images/shopping/local), read modes (HTML, markdown, AI-parsed, interactive), plugin discovery/execution, and dedicated scrapers across retail, real estate, jobs, travel and reviews. Gaps remain — there is no Maps search tool to obtain a place_id for maps_place_details, and despite constant billing references there is no usage/credit-check tool.

Maintenance

ActivityActive
ResponsivenessNo issues