mcpField
S
Scrape Everything

Scrape Everything

Local
scrapeeverything.comSocial Media3Updated 1w ago

About Scrape Everything

Scrape Everything is an MCP server for retrieving public data from social and media platforms as JSON. It serves workflows that need profile, post, video, or music information, and dynamically registers tools from a live endpoint catalog with a bundled fallback.

Key features

  1. 01Public data from nine platforms
  2. 02Registers tools from the live catalog
  3. 03Uses a bundled catalog snapshot offline
  4. 04Tool descriptions show credit cost and returned fields
  5. 05Readable errors and bounded result length

Use cases

  1. 01Look up public profiles and posts
  2. 02Retrieve video transcripts, comments, or music details
  3. 03Use platform data as JSON in an agent workflow

MCP support

The MCP server exposes Scrape Everything API scraper endpoints as tools for clients and returns their results as JSON.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"scrapeeverything": {
"command": "npx",
"args": [
"-y",
"@scrapeeverything/mcp"
],
"env": {
"SCRAPEEVERYTHING_API_KEY": "<SCRAPEEVERYTHING_API_KEY>",
"SCRAPEEVERYTHING_API_URL": "<SCRAPEEVERYTHING_API_URL>"
}
}
}
}
Run commandnpx -y @scrapeeverything/mcp
Environment variables to set
SCRAPEEVERYTHING_API_KEYSecretScrape Everything API key (ssk_live_...), from https://scrapeeverything.com/dashboard/keys
SCRAPEEVERYTHING_API_URLOverride the API base URL (default https://api.scrapeeverything.com)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@scrapeeverything/mcp0.1.0

Tools

42

Saved tool list · updated 1w ago

This tool takes no parameters.

Details

From the project README

Scrape Everything MCP server

npm CI License: MIT

An MCP server for Scrape Everything. Public social data as clean JSON. It lets Claude, Cursor, VS Code, Windsurf and any other MCP client fetch public data from Instagram, TikTok, X, YouTube, Facebook, Telegram, Spotify, Pinterest and Twitch.

  • One tool per API endpoint. At startup the server reads the live catalog from GET /v1/scrapers and registers a tool for each scraper (instagram_profile, tiktok_posts, youtube_transcript, ...). New endpoints appear without a package update.
  • Works offline. If the catalog can't be fetched, the server starts from a bundled snapshot.
  • Shows the cost first. Every tool description lists its credit cost and the fields it returns. Failed calls are refunded.
  • Gives readable errors. API errors come back as tool errors that keep the error code and request_id. On RATE_LIMITED the error includes the Retry-After wait. The server never retries on its own.
  • Keeps results bounded. Results are JSON text, truncated at 100k characters by default, with a note when that happens.
  • Sends no telemetry. The only network calls go to the Scrape Everything API.

Get an API key

Create a key at https://scrapeeverything.com/dashboard/keys. Keys look like ssk_live_....

Install

Claude Code
claude mcp add scrapeeverything -e SCRAPEEVERYTHING_API_KEY=ssk_live_... -- npx -y @scrapeeverything/mcp
Claude Desktop

Edit claude_desktop_config.json (Settings, then Developer, then Edit Config):

{
  "mcpServers": {
    "scrapeeverything": {
      "command": "npx",
      "args": ["-y", "@scrapeeverything/mcp"],
      "env": { "SCRAPEEVERYTHING_API_KEY": "ssk_live_..." }
    }
  }
}

On Windows, if npx is not found, use "command": "cmd" and "args": ["/c", "npx", "-y", "@scrapeeverything/mcp"].

Cursor

Add this to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

{
  "mcpServers": {
    "scrapeeverything": {
      "command": "npx",
      "args": ["-y", "@scrapeeverything/mcp"],
      "env": { "SCRAPEEVERYTHING_API_KEY": "ssk_live_..." }
    }
  }
}
VS Code (GitHub Copilot agent mode)

Add this to .vscode/mcp.json. VS Code prompts for the key and stores it securely:

{
  "inputs": [
    { "type": "promptString", "id": "scrapeeverything-key", "description": "Scrape Everything API key", "password": true }
  ],
  "servers": {
    "scrapeeverything": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@scrapeeverything/mcp"],
      "env": { "SCRAPEEVERYTHING_API_KEY": "${input:scrapeeverything-key}" }
    }
  }
}

Or from a terminal:

code --add-mcp '{"name":"scrapeeverything","command":"npx","args":["-y","@scrapeeverything/mcp"],"env":{"SCRAPEEVERYTHING_API_KEY":"ssk_live_..."}}'
Windsurf

Add this to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "scrapeeverything": {
      "command": "npx",
      "args": ["-y", "@scrapeeverything/mcp"],
      "env": { "SCRAPEEVERYTHING_API_KEY": "ssk_live_..." }
    }
  }
}
Self-hosted streamable HTTP
SCRAPEEVERYTHING_API_KEY=ssk_live_... npx -y @scrapeeverything/mcp --http --port 3333
# MCP endpoint: http://127.0.0.1:3333/mcp   health: /health

HTTP mode is stateless and accepts POST only. By default it binds to 127.0.0.1 and only accepts loopback Host and Origin headers (127.0.0.1, localhost, [::1]), which blocks DNS rebinding. On loopback, each request can bring its own key with Authorization: Bearer ssk_live_... or x-api-key. If a request has no key, the server uses SCRAPEEVERYTHING_API_KEY.

To listen on any other address, you must set an inbound auth token. Without one the server refuses to start, so it can never act as an open proxy that spends your key:

SCRAPEEVERYTHING_MCP_AUTH_TOKEN="$(openssl rand -hex 32)" \
  npx -y @scrapeeverything/mcp --http --host 0.0.0.0 --port 3333 --allowed-host mcp.example.com
  • Clients send Authorization: Bearer <token>. The token is compared in constant time and must be at least 16 characters.
  • With a token set, each client sends its own Scrape Everything key in x-api-key. The server's SCRAPEEVERYTHING_API_KEY is not used as a fallback unless you pass --allow-shared-key.
  • --allowed-host (repeatable, or SCRAPEEVERYTHING_MCP_ALLOWED_HOSTS, comma-separated) restricts the Host header. Requests that send an Origin header must match an allowed host or an --allowed-origin (SCRAPEEVERYTHING_MCP_ALLOWED_ORIGINS).
  • Terminate TLS in front of the server (a reverse proxy) so the token and keys are never sent in clear text.

Configuration

VariableDefaultPurpose
SCRAPEEVERYTHING_API_KEY(none)API key. Required for scraper tools and get_account.
SCRAPEEVERYTHING_API_URLhttps://api.scrapeeverything.comAPI base URL. Must be https unless the host is loopback (for local dev, http://127.0.0.1:4001).
SCRAPEEVERYTHING_MCP_AUTH_TOKEN(none)HTTP mode: inbound bearer token. Required to bind to a non-loopback host.
SCRAPEEVERYTHING_MCP_ALLOWED_HOSTS(none)HTTP mode: comma-separated extra Host values to accept.
SCRAPEEVERYTHING_MCP_ALLOWED_ORIGINS(none)HTTP mode: comma-separated extra Origin values to accept.
SCRAPEEVERYTHING_MCP_MAX_CHARS100000Max characters per tool result before truncation.
SCRAPEEVERYTHING_MCP_SCHEMA_ANYOFoffSet it to 1 to emit one_of groups as a top-level anyOf of required sets.

About one_of: some endpoints accept one of several inputs, for example url or shortcode. Several clients reject a top-level anyOf in tool schemas, Anthropic's API among them. So by default the rule goes in the schema/tool description, and the server checks it before calling the API, which spends no credits. Set SCRAPEEVERYTHING_MCP_SCHEMA_ANYOF=1 if your client supports anyOf.

Tools

ToolCreditsRequired input
get_account0(none). Returns email, plan, credits and rate/concurrency limits.
list_scrapers0optional platform
instagram_profile1username
instagram_photos2username
instagram_post1one of url or shortcode
instagram_reel1one of url or shortcode
instagram_comments1one of url or shortcode
instagram_reels2username
instagram_reels_search3query
x_profile1username
x_posts2username
x_post1one of url or id
tiktok_profile1username
tiktok_posts1username
tiktok_video1one of url or video or id
tiktok_comments1one of url or id
tiktok_transcript1one of url or id
tiktok_music2one of url or id
tiktok_hashtag1hashtag
youtube_profile1one of username or channel
youtube_videos1one of username or channel
youtube_video1one of url or id or video
youtube_search1query
youtube_comments1one of url or id
youtube_transcript1one of url or id
youtube_playlist1one of url or id
facebook_profile1username
telegram_profile1username
telegram_posts2username
telegram_post1one of url or post or username + id
spotify_track1one of url or id or track
spotify_artist1one of url or id or artist
spotify_album1one of url or id or album
spotify_playlist1one of url or id or playlist
pinterest_profile1username
pinterest_pins2username
pinterest_pin1one of url or id
pinterest_search2query
pinterest_board2one of url or username + board
twitch_channel1username
twitch_videos1username
twitch_clips1username

The live catalog is the source of truth. Ask your assistant to run list_scrapers to see the current list.

Development

npm install
npm run build
npm test
npm run update-catalog   # refresh catalog/scrapers.json (honours SCRAPEEVERYTHING_API_URL)
node dist/index.js --help

Inspect the server interactively with npx @modelcontextprotocol/inspector node dist/index.js.

Org and scope placeholders

org.config.json is the one place that records the GitHub org (scrapeeverything) and the npm scope (@scrapeeverything). To change them, run:

npm run apply-org -- --github-org <org> --npm-scope @<scope>

That rewrites package.json (name, mcpName, repository), server.json, smithery.yaml and this README. The MCP Registry name io.github.<org>/mcp must match the GitHub org that publishes it. glama.json lists the GitHub usernames of the Glama maintainers, so put the founder's GitHub username there.

Releasing
  1. Run npm version patch (or minor/major). This also syncs server.json.
  2. Run git push --follow-tags.
  3. The release.yml workflow publishes to npm with provenance (NPM_TOKEN secret), then publishes server.json to the official MCP Registry through GitHub OIDC.

About Scrape Everything

Scrape Everything is a REST API for public social media data. Send a username, link or ID and get clean, typed JSON from Instagram, TikTok, X, YouTube, Facebook, Telegram, Spotify, Pinterest and Twitch. Pay per successful request with prepaid credits that never expire. New accounts start with 100 free credits. https://scrapeeverything.com

License

MIT © 2026 Scrape Everything

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.