# ScrapingBot (remote · scrapingbot.io)

Public web data for AI agents: scrape any page, plus Google, TikTok, Instagram and Amazon as JSON.

- Trust score: 81/100 (high trust)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-16

## Components

- remote · `scrapingbot.io`: 81/100 (this document), [markdown](https://verifymcp.io/servers/io-scrapingbot-scrapingbot/api-mcp.md), [page](https://verifymcp.io/servers/io-scrapingbot-scrapingbot/api-mcp)

## Channel facts

- Endpoint: `https://scrapingbot.io/api/mcp`
- Transports: `streamable-http`
- Auth: `required (not validated)`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-16.

- **Endpoint Security**: 89/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 75/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 2184 tokens (~94/item across 23 items; 23 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 43/100
  - Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 72/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 17% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 23 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the ScrapingBot MCP server?

ScrapingBot is a hosted endpoint at https://scrapingbot.io/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-scrapingbot-scrapingbot 'https://scrapingbot.io/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-scrapingbot-scrapingbot": {
      "url": "https://scrapingbot.io/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-scrapingbot-scrapingbot": {
      "type": "http",
      "url": "https://scrapingbot.io/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-scrapingbot-scrapingbot]
url = "https://scrapingbot.io/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-scrapingbot-scrapingbot": {
      "type": "remote",
      "url": "https://scrapingbot.io/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-scrapingbot-scrapingbot --url 'https://scrapingbot.io/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-scrapingbot-scrapingbot:
    url: "https://scrapingbot.io/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-scrapingbot-scrapingbot": {
      "Transport": "http",
      "Url": "https://scrapingbot.io/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-scrapingbot-scrapingbot -t streamable-http -u 'https://scrapingbot.io/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-scrapingbot-scrapingbot": {
      "type": "http",
      "url": "https://scrapingbot.io/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-16 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-14 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-12 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 30. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-10 (score 78, +2)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 23. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-06 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 10. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-04 (score 75, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-03 (score 75)

First indexed and scored.

## MCP tools (23)

### `listCapabilities` (~26 tokens)

List capabilities

List every ScrapingBot tool, the API routes behind them and their parameters. Free.

### `scrapeWebsite` (~185 tokens)

Scrape a web page

Fetch any public web page and return its content as markdown (format: "html" for the raw HTML). 1 credit; render_js (pages built with JavaScript) 5; premium_proxy 10; stealth_proxy 75. screenshot: true attaches a screenshot image.

Input parameters:

- `block_ads` (boolean)
- `block_resources` (boolean)
- `capture_runtime_issues` (boolean)
- `cookies` (string)
- `format` (string): Page content as markdown (default, compact and readable) or the raw HTML
- `premium_proxy` (boolean)
- `render_js` (boolean)
- `screenshot`
- `stealth_proxy` (boolean)
- `timeout` (integer)
- `url` (string, required)
- `wait` (integer)
- `wait_browser` (string)
- `wait_for` (string)

### `extractStructuredData` (~176 tokens)

Extract data from a page

Fetch a web page and have AI pull out exactly the fields you want, as JSON. Pass ai_query (plain English, e.g. "title, price and stock") or ai_schema ({"field": "description"}). The page cost plus 5 credits.

Input parameters:

- `ai_query` (string)
- `ai_schema`
- `block_ads` (boolean)
- `block_resources` (boolean)
- `capture_runtime_issues` (boolean)
- `cookies` (string)
- `premium_proxy` (boolean)
- `render_js` (boolean)
- `screenshot`
- `stealth_proxy` (boolean)
- `timeout` (integer)
- `url` (string, required)
- `wait` (integer)
- `wait_browser` (string)
- `wait_for` (string)

### `getScrapeJob` (~32 tokens)

Get a scrape job

Look up an earlier scrape by the job_id it returned. Free.

Input parameters:

- `job_id` (string, required)

### `pollJobUntilDone` (~49 tokens)

Wait for a scrape job

Wait for a scrape job to finish, then return it. Free.

Input parameters:

- `job_id` (string, required)
- `poll_interval_ms` (integer)
- `timeout_ms` (integer)

### `runBrowserScenario` (~203 tokens)

Run browser steps on a page

Open a page in a real browser, run steps such as click, fill, scroll and wait, then return the resulting page as markdown. js_scenario: {"instructions": [{"fill": ["#q", "shoes"]}, {"click": "#go"}, {"wait": 1000}]}. From 5 credits.

Input parameters:

- `block_ads` (boolean)
- `block_resources` (boolean)
- `capture_runtime_issues` (boolean)
- `cookies` (string)
- `format` (string): Page content as markdown (default, compact and readable) or the raw HTML
- `js_scenario` (required)
- `premium_proxy` (boolean)
- `render_js` (boolean)
- `screenshot`
- `stealth_proxy` (boolean)
- `timeout` (integer)
- `url` (string, required)
- `wait` (integer)
- `wait_browser` (string)
- `wait_for` (string)

### `googleSearch` (~165 tokens)

Google search

Google results as JSON: web (default), images, videos, news, shopping, places or maps (type), for any country (gl) and language (hl). Places and maps results include a cid for googleReviews. 10 credits.

Input parameters:

- `autocorrect` (boolean)
- `gl` (string)
- `hl` (string)
- `ll` (string): Maps/places viewport, e.g. @30.27,-97.74,12z
- `num`
- `page`
- `q` (string, required)
- `sortBy` (string)
- `tbs` (string)
- `type` (string): What to search: web results (default), images, videos, news, shopping, places or maps.

### `googleReviews` (~110 tokens)

Google Maps reviews

Reviews of a place from Google Maps, by the cid, fid or placeId in a googleSearch places or maps result. sortBy newest, mostRelevant, highestRating or lowestRating; pass nextPageToken for more. 10 credits.

Input parameters:

- `cid` (string)
- `fid` (string)
- `gl` (string)
- `hl` (string)
- `nextPageToken` (string)
- `placeId` (string)
- `sortBy` (string)

### `instagramUser` (~65 tokens)

Instagram profile

An Instagram profile: bio, follower, following and post counts, links and the numeric user id other tools need. Pass one of username, user_id or url. 5 credits.

Input parameters:

- `url` (string)
- `user_id`
- `username` (string)

### `instagramSearch` (~47 tokens)

Search Instagram

Search Instagram accounts, hashtags, places or posts (search_type), or everything at once (global). 5 credits.

Input parameters:

- `keyword` (string, required)
- `search_type` (string, required)

### `instagramMedia` (~152 tokens)

Instagram posts, stories and comments

Instagram content by mode: an account's posts, reels or tagged posts (user_id), one post by shortcode or url, a post's comments, the replies to a comment (comment_id), or an account's active stories (username). 5 credits.

Input parameters:

- `code_or_id_or_url` (string)
- `comment_id` (string): Parent comment id (comment_replies)
- `count` (integer)
- `end_cursor` (string)
- `media_id`
- `mode` (string, required)
- `pagination_token` (string)
- `shortcode` (string)
- `url` (string)
- `user_id`
- `username` (string): Username (stories)

### `instagramFollowers` (~112 tokens)

Instagram followers

List or search an Instagram account's followers or following, by numeric user_id from instagramUser. query searches the whole list; max_id pages. For very large accounts Instagram shows only about 50 recent followers, so use query to find someone. 5 credits.

Input parameters:

- `direction` (string, required)
- `max_id` (string): next_max_id from the previous page
- `query` (string): Search the list by username or name
- `user_id` (string, required): Numeric user id (from instagramUser)

### `tiktokVideo` (~39 tokens)

TikTok video

A TikTok video's stats, caption, author, sound and download links, by video URL. 1 credit.

Input parameters:

- `url` (string, required)

### `tiktokUser` (~55 tokens)

TikTok profile

A TikTok profile by username: bio, counts, verified badge and numeric user id; include_posts returns the latest videos instead. 1 credit.

Input parameters:

- `include_posts` (boolean)
- `unique_id` (string, required)

### `tiktokSearch` (~135 tokens)

Search TikTok

Search TikTok creators (search_type: users) or videos (videos) by keyword. Videos page: for page 2 onward pass the previous response's data.cursor as cursor and its data.searchId as search_id. Users search returns a single page and ignores cursor. 1 credit.

Input parameters:

- `count` (integer)
- `cursor`: Videos only: the previous response's data.cursor, for the next page
- `query` (string, required)
- `search_id` (string): Videos only: the previous response's data.searchId; required with cursor for page 2 onward
- `search_type` (string, required)

### `tiktokComments` (~100 tokens)

TikTok comments

Comments on a TikTok video (url), or the replies to one comment (comment_id plus the video url or video_id). 1 credit.

Input parameters:

- `comment_id` (string): Set to fetch the replies to this comment
- `count` (integer)
- `cursor` (integer)
- `url` (string): Video URL (required for comments)
- `video_id` (string): Video id (replies only; or pass url)

### `tiktokFollowers` (~76 tokens)

TikTok followers

A TikTok account's followers or the accounts it follows, by numeric user_id (data.user.id from tiktokUser). Up to 50. 1 credit.

Input parameters:

- `count` (integer)
- `direction` (string, required)
- `user_id` (string, required): Numeric user id (data.user.id from tiktokUser)

### `amazonSearch` (~54 tokens)

Search Amazon

Search Amazon US products by keyword: title, price, rating, Prime and photo for each. page for more. 10 credits.

Input parameters:

- `department` (string)
- `page`
- `query` (string, required)

### `amazonProduct` (~44 tokens)

Amazon product

Everything on an Amazon product page by ASIN: price, rating, availability, bullet points, specifications, photos and variations. 10 credits.

Input parameters:

- `asin` (string, required)

### `amazonProducts` (~67 tokens)

Amazon products (batch)

Full details for up to 20 ASINs in one call, the same as amazonProduct for each. 10 credits per product returned; ASINs that fail are free.

Input parameters:

- `asins` (array, required): Up to 20 ASINs; 10 credits per product returned

### `amazonSuggestions` (~64 tokens)

Amazon search suggestions

The suggestions Amazon shows as a shopper types: useful for keyword research. 10 credits.

Input parameters:

- `department` (string): Search alias such as aps, electronics, stripbooks
- `limit` (integer)
- `query` (string, required): What a shopper has typed so far

### `amazonRankings` (~57 tokens)

Amazon best sellers

Amazon's Best Sellers or New Releases for a department, in rank order, with price and rating. 10 credits.

Input parameters:

- `category` (string, required): Amazon department slug
- `list` (string, required)
- `page` (integer)

### `providerRequest` (~65 tokens)

Call an API endpoint directly

Call any Google, Instagram, TikTok or Amazon endpoint by path, for the few the other tools do not cover (listCapabilities lists them). Costs the same as that API.

Input parameters:

- `endpoint` (string, required)
- `params` (object)
- `provider` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-scrapingbot-scrapingbot/api-mcp#diagnostics

## Score history

- 2026-10-16: 81
- 2026-10-15: 80
- 2026-10-14: 80
- 2026-10-13: 79
- 2026-10-12: 79
- 2026-10-10: 78
- 2026-10-06: 76
- 2026-10-04: 75
- 2026-10-03: 75

## Common questions

### What is the ScrapingBot MCP server?

ScrapingBot is an MCP server listed in the public MCP registry as io.scrapingbot/scrapingbot. Public web data for AI agents: scrape any page, plus Google, TikTok, Instagram and Amazon as JSON. This page covers its hosted endpoint (https://scrapingbot.io/api/mcp).

### Is the ScrapingBot MCP server safe to use?

ScrapingBot scores 81 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the ScrapingBot MCP server expose?

ScrapingBot exposes 23 tools: listCapabilities, scrapeWebsite, extractStructuredData, getScrapeJob, pollJobUntilDone, and 18 more. Their descriptions and schemas cost roughly 2,078 tokens of context every time the server is loaded.

### Does the ScrapingBot MCP server require authentication?

Yes. ScrapingBot asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the ScrapingBot MCP server still maintained?

ScrapingBot is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://scrapingbot.io/api/mcp
- Authorisation metadata: https://scrapingbot.io/.well-known/oauth-protected-resource/api/mcp
- Repository: https://github.com/mike-scrapingbot/scrapingbot
- Website: https://scrapingbot.io/mcp?utm_source=mcp_registry&utm_medium=registry&utm_campaign=server_json
- Changelog RSS feed: https://verifymcp.io/servers/io-scrapingbot-scrapingbot/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-scrapingbot-scrapingbot/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/io-scrapingbot-scrapingbot/api-mcp
