
ScrapeWhale
Web data for marketing agents: estimated website traffic, the ads a brand runs on Meta and Google, Instagram/TikTok/LinkedIn/X/YouTube profiles, Google…
What it can do
- Read Url: Any public web page as clean, LLM-ready markdown — headings, lists, tables, links, and images preserved; nav, ads, and boilerplate removed. JavaScript-rendered pages included. Recently read
- Google Search: Google web search results, or the AI Overview for a query. Pick an `action`: - `web` (1 credit): Google web search results for any query: organic results (title, link, snippet, position
- Google Maps: Search Google Maps places, or get one place in detail. Pick an `action`: - `search` (1 credit): Google Maps place search for any query: name, address, coordinates, rating and review count
What data it sees
Do you need an account
No: the server works without sign-in
Web data for marketing agents: estimated website traffic, the ads a brand runs on Meta and Google, Instagram/TikTok/LinkedIn/X/YouTube profiles, Google search, Maps and Trends, store catalogs, and any web page as clean markdown or JSON. Read-only, public data; sign in with your ScrapeWhale account.
How to connect
How to connect ScrapeWhale to Claude
The server address to paste into Claude settings:
https://scrapewhale--scrapewhale.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect ScrapeWhale to ChatGPT
The server address to paste into ChatGPT settings:
https://scrapewhale--scrapewhale.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect ScrapeWhale to Cursor
The server address to paste into Cursor settings:
https://scrapewhale--scrapewhale.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (18)
Raw names from tools/list. Only developers need these.
| read_url | Any public web page as clean, LLM-ready markdown — headings, lists, tables, links, and images preserved; nav, ads, and boilerplate removed. JavaScript-rendered pages included. Recently read pages are served from cache for free. (1 credit) Parameters: requires `url`. Failed calls are refunded; recently fetched data is served from cache for free. |
| google_search | Google web search results, or the AI Overview for a query. Pick an `action`: - `web` (1 credit): Google web search results for any query: organic results (title, link, snippet, position), answer box, knowledge graph, videos, People Also Ask, and related searches. — requires `q`; optional `gl`, `hl`, `num`, `page`. - `ai_overview` (2 credits): Google’s full AI Overview for a query — the rich multi-source answer shown above the results: ordered text blocks (paragraphs, headings, lists) with `[n]` citation markers linking into a references list of cited sources. — requires `q`; optional `gl`, `hl`. Failed calls are refunded; recently fetched data is served from cache for free. |
| google_maps | Search Google Maps places, or get one place in detail. Pick an `action`: - `search` (1 credit): Google Maps place search for any query: name, address, coordinates, rating and review count, type, website, phone, price level, opening hours, booking links, and whether the listing is claimed by its owner (`claimed: false` is a lead-gen signal). — requires `q`; optional `ll`, `gl`, `hl`, `page`. - `place` (1 credit): Full details for one place by `cid` or `fid`: everything the search returns plus the owner-written long description and the canonical Maps URL. — requires one of `cid` / `fid`; optional `gl`, `hl`. Failed calls are refunded; recently fetched data is served from cache for free. |
| google_trends | Google Trends interest over time, related queries, regions, and trending searches. Pick an `action`: - `interest` (1 credit): Search-interest timeline for up to 5 comma-separated keywords, compared against each other like the Trends UI. — requires `q`; optional `geo`, `time`, `cat`, `gprop`. - `related` (1 credit): Related queries for a keyword: top queries (0–100 index) and rising queries (growth percentages; "Breakout" means above 5000% growth). — requires `q`; optional `geo`, `time`, `cat`, `gprop`. - `geo` (1 credit): Where a keyword is searched most: regions ranked by normalized interest (0–100). — requires `q`; optional `geo`, `resolution`, `time`, `cat`, `gprop`. - `trending` (1 credit): Currently trending searches for a country, each with an approximate traffic figure and related news links. — optional `geo`. Failed calls are refunded; recently fetched data is served from cache for free. |
| domain_intel | Facts about a website by domain: estimated traffic, authority, organic search, backlinks, registration, and agent-readiness. Pick an `action`: - `traffic` (1 credit): Traffic estimate for a domain: global/country/category rank, monthly visits, engagement (bounce rate, pages per visit, visit duration), traffic sources, top countries, top keywords, and AI-assistant-referred traffic with sample prompts. — requires `domain`. - `authority` (1 credit): The domain's Ahrefs Domain Rating (0–100). — requires `domain`. - `organic` (1 credit): The domain's organic-search footprint from a major SEO index (US database): number of organic keywords it ranks for, estimated monthly organic visits, traffic cost (what the same traffic would cost in Google Ads, USD/month), and organic rank. — requires `domain`. - `backlinks` (1 credit): Backlink counts from a major SEO index by scope: root domain (the headline number), hostname, and exact URL. — requires `domain`. - `registration` (1 credit): Registration facts via RDAP: registered / expiry / last-updated dates, computed domain age, registrar, nameservers, DNSSEC, and status codes. — requires `domain`. - `agent_ready` (1 credit): Whether a site publishes the agent-facing files AI agents look for: `/llms.txt`, `/agents.md`, and the `/.well-known/ucp` Universal Commerce Protocol merchant profile (with its versions, capabilities, payment handlers, and MCP endpoint when advertised). — requires `domain`. Failed calls are refunded; recently fetched data is served from cache for free. |
| brand_dossier | Runs several domain-keyed extractions in parallel and aggregates them into one response. Default parts: logo, estimated traffic, domain authority, Google ads, and the homepage as clean markdown (max 6 credits). Opt-in parts, requested explicitly via `parts=`: `organic` (organic keywords/traffic/rank), `backlinks` (backlink counts), `registration` (RDAP domain facts), `agent_ready` (llms.txt / agents.md / UCP probe) — 1 credit each. Each part succeeds or fails independently (`parts.<name>.ok`), so one blocked source never sinks the report. Credits = sum of successful, non-cached parts (cached parts are free). `markdown` is the combined report. (up to 6 credits) Parameters: requires `domain`; optional `parts`. Failed calls are refunded; recently fetched data is served from cache for free. |
| brand_logo | The domain's logo/favicon: a stable, hotlinkable image URL plus metadata (source, size, content type). The markdown output embeds the image. Logos are cached for 7 days — repeat lookups are free. (1 credit) Parameters: requires `domain`; optional `size`. Failed calls are refunded; recently fetched data is served from cache for free. |
| ads | Ads a brand is running: Meta Ad Library and Google Ads Transparency Center. Pick an `action`: - `meta` (2 credits): Active and recent ads for a Facebook page from the Meta Ad Library, including creative text, CTA, format, dates, and the raw ad nodes in `data`. — requires one of `page_id` / `slug` / `url`; optional `max_pages`. - `google` (2 credits): Ad creatives a domain is running, scraped from Google's Ads Transparency Center (which has no official API). — requires `domain`; optional `max_pages`. - `google_creative` (1 credit): One creative from the Google Ads Transparency Center: format (text / image / video), every preview variant, first and last shown dates, the regions it ran in, and the advertiser block. — requires `advertiser_id`, `creative_id`; optional `include_advertiser`. - `google_advertiser` (1 credit): Who is behind an `AR…` advertiser id in the Google Ads Transparency Center: display name, legal name, country, and verification status. — requires `advertiser_id`. Failed calls are refunded; recently fetched data is served from cache for free. |
| facebook_page | Page name, category, followers/likes, website, phone/email/address when public, page id, and whether the page is currently running ads. (1 credit) Parameters: requires one of `slug` / `url`. Failed calls are refunded; recently fetched data is served from cache for free. |
| instagram_profile | Profile name, bio, follower/following counts, verification, category, website and bio links, read from the public profile with no login. Typical latency 3–8 s; retry on `provider_error` (credits are refunded automatically). (1 credit) Parameters: requires `username`. Failed calls are refunded; recently fetched data is served from cache for free. |
| tiktok_profile | Profile display name, bio, verification, follower/following/like/video counts, and bio link. (1 credit) Parameters: requires `username`. Failed calls are refunded; recently fetched data is served from cache for free. |
| LinkedIn company pages and public member profiles. Pick an `action`: - `company` (1 credit): Company name, tagline, description, website, industry, size bucket, headquarters, founding year, type, specialties, follower and employees-on-LinkedIn counts, address, logo, affiliated and similar pages, and up to 10 recent posts. — requires one of `slug` / `url`. - `person` (1 credit): Public member profile: name, headline, location, about, follower and connection counts, badges, avatar, websites, current companies, experience, and education. — requires one of `handle` / `url`. Failed calls are refunded; recently fetched data is served from cache for free. | |
| youtube | YouTube videos, channels, transcripts, channel uploads, and search. Pick an `action`: - `video` (1 credit): Title, description, tags, category, duration, publish date, **exact** view and like counts, thumbnail, and the channel (name, handle, subscriber count). — requires one of `video_id` / `url`. - `channel` (1 credit): Channel title, description, country, join date, subscriber count, lifetime view count, video count, external links (socials, website), avatar, and banner. — requires one of `handle` / `channel_id` / `url`. - `transcript` (1 credit): Full transcript of a video as clean prose paragraphs **and** timestamped blocks (markdown), with timed snippets and the joined text in `data`, plus the video metadata (title, channel, views, likes, publish date). — requires one of `video_id` / `url`; optional `lang`. - `channel_videos` (1 credit): A channel's uploads, 30 per page — title, view count, published-ago, and length — sorted latest, most popular, or oldest (YouTube's own tab sorts). — requires one of `handle` / `channel_id` / `url`; optional `sort`, `max_pages`. - `search` (1 credit): YouTube search results — videos, Shorts, channels, and playlists in page order, with estimated total, per-result views / age / length / channel, and YouTube's own filters (type, upload date, duration, relevance vs popularity). — requires `q`; optional `sort`, `type`, `upload_date`, `duration`, `max_pages`. Failed calls are refunded; recently fetched data is served from cache for free. |
| x_twitter | X (Twitter) profiles, timelines, single posts with threads, and replies. Pick an `action`: - `profile` (1 credit): X (formerly Twitter) profile: followers, following, post and media counts, bio, website, location, join date, verification type, and the "based in" country from X's About-this-account panel. — requires one of `handle` / `url`. - `tweets` (1 credit): One page (about 20) of an X (Twitter) account's posts, newest first, pinned post first — text, media, likes, reposts, replies, quotes, bookmarks, views, quoted posts, and reposts. — requires one of `handle` / `url`; optional `cursor`, `with_replies`. - `tweet` (1 credit): One X (Twitter) post with full engagement counts, media, the quoted post if any, and the author's own unrolled thread (1/n, 2/n, …). — requires one of `id` / `url`. - `replies` (1 credit): Replies from other users to an X (Twitter) post, as structured posts with author, engagement, and `replying_to` so you can rebuild the tree. — requires one of `id` / `url`; optional `cursor`, `ranking`. Failed calls are refunded; recently fetched data is served from cache for free. |
| tiktok_shop | TikTok Shop products, product videos, sellers, store catalogs, and categories. Pick an `action`: - `product` (1 credit): Product detail with **exact** figures: units sold, per-SKU stock and pricing, rating with the full 1–5 star histogram, categories, images, and a small review sample. — requires `product_id`. - `product_videos` (1 credit): TikTok videos promoting a product (up to ~10 — TikTok caps this feed): creator, play and like counts, upload date, and video links. — requires `product_id`. - `seller` (1 credit): Shop summary by seller id: name, region, rating, items sold, followers, product and review counts. — requires `seller_id`. - `store` (2 credits): Store info plus the product catalog (~30 products per page, with sold counts, ratings, and prices). — requires `seller_id`; optional `max_pages`. - `category` (1 credit): Category info, child categories (walk `children[]` recursively to enumerate the tree), and the top ~15 products. — requires `category_id`. Failed calls are refunded; recently fetched data is served from cache for free. |
| shopify_categories | What a Shopify store sells, in Shopify's standard product taxonomy: the primary category, vertical, and top categories with product counts, from the store's public storefront catalogue (250 products per page). Works for any store on Shopify — no store credentials. Headless or non-Shopify hosts return an empty result. (1 credit) Parameters: requires `domain`; optional `max_pages`, `per_product`. Failed calls are refunded; recently fetched data is served from cache for free. |
| chrome_web_store | Chrome Web Store extension listings and reviews. Pick an `action`: - `extension` (1 credit): Listing snapshot for a Chrome Web Store extension: name, rating and rating count, user count, category, current version, publish date, homepage, and icon. — requires one of `id` / `url`. - `reviews` (1 credit): Reviews for a Chrome Web Store extension, newest first, 100 per page: author, rating, text, date, extension version, language, and the developer reply when present. — requires one of `id` / `url`; optional `max_pages`. Failed calls are refunded; recently fetched data is served from cache for free. |
| get_result | Re-fetch a past result by the `id` shown with it, including the full markdown and — for extractions — the structured data. Free. Useful when an earlier result was truncated. |