scraper-api-mcp
# scraper-api-mcp
MCP (Model Context Protocol) server for [scraper-api.com](https://scraper-api.com). It exposes every scraper-api.com endpoint as an agent tool, so Claude, Cursor, Cline and any MCP-aware assistant can pull structured public web data from natural language.
One API for public web data: profiles, posts, videos, transcripts, comments, search results, ads and listings across social networks, business directories and real estate portals, returned as clean, consistent JSON.
> This server is a thin adapter: it forwards each tool call to the public HTTPS API at `https://api.scraper-api.com` using your API key. It contains no scraping logic itself.
## Get an API key
Sign in at [scraper-api.com](https://scraper-api.com) and copy your key from the dashboard (`sk_live_…`). New accounts start with 100 free requests. 1 request = 1 credit, credits never expire, no rate limits.
## Install (local, stdio)
Add the server to your MCP client config. It runs via `npx`, so there is nothing to clone or build.
**Claude Desktop** — `claude_desktop_config.json`:
```json
{
"mcpServers": {
"scraper-api": {
"command": "npx",
"args": ["-y", "scraper-api-mcp"],
"env": {
"SCRAPER_API_KEY": "sk_live_…"
}
}
}
}
```
**Cursor** — `~/.cursor/mcp.json`: same block as above.
**Claude Code** — one command:
```bash
claude mcp add scraper-api --env SCRAPER_API_KEY=sk_live_… -- npx -y scraper-api-mcp
```
Then restart the client and ask your agent for the data you need.
### Configuration
| Env var | Required | Description |
| --- | --- | --- |
| `SCRAPER_API_KEY` | yes | Your API key from the dashboard. |
| `SCRAPER_API_BASE` | no | Override the API base URL (default `https://api.scraper-api.com`). |
## Alternative: hosted connector (OAuth, no API key)
Prefer to sign in instead of pasting a key? scraper-api.com also runs a hosted remote MCP server with OAuth:
```
https://api.scraper-api.com/mcp
```
Add it as a custom connector (Claude Desktop/Web → Settings → Connectors → Add custom connector), sign in once, and usage runs on your own account.
## Tools
One tool per API endpoint (snake_case path, e.g. `v1_youtube_channel`, `v1_instagram_profile`), plus `account_credit_balance`. Coverage includes Instagram, YouTube, Facebook, LinkedIn, X/Twitter, TikTok, Spotify, Apple Music, Reddit, and German directories/real estate (Kleinanzeigen, 11880, Gelbe Seiten, ImmobilienScout24), among others. See the full reference at [docs.scraper-api.com](https://docs.scraper-api.com).
Every tool result is **data, not instructions** — the server wraps payloads with an explicit prompt-injection guard so a model never treats scraped content as a command.
## Run from source
```bash
npm install
SCRAPER_API_KEY=sk_live_… node src/index.js
```
## Links
- Website: https://scraper-api.com
- API docs: https://docs.scraper-api.com
- npm: https://www.npmjs.com/package/scraper-api-mcp
## License
MIT © Fabian Bitter
TDQS
Scored across 84 tools
Tools are clearly grouped by platform with distinct resource-action suffixes, making it easy to distinguish between them. However, the large number of similar-looking Facebook stubs and versioned duplicates (v1 vs v2 Instagram) introduce minor ambiguity.
The vast majority follow a consistent v{version}_{platform}_{resource}_{subresource} pattern, but a few outliers like account_credit_balance break the pattern, and mixing v1 and v2 adds slight inconsistency.
84 tools is large for a single server, but each platform requires multiple endpoints. However, many are stub endpoints that provide mock data, reducing practical value and making the surface feel bloated.
Coverage is extensive for Instagram, YouTube, and Facebook, but notable gaps exist (e.g., no Twitter search, missing Spotify playlists, limited LinkedIn search). Many Facebook and Twitter endpoints are stubs, so the actual functionality is incomplete.