Fetches public social media data from platforms like Instagram, TikTok, X, and YouTube as clean JSON for AI clients.
Also known as scrapeeverything/mcp, mcp, @scrapeeverything/mcp
- Stars
- 3
- Tools
- 42
- Downloads, 30 days
- —
- Latest version
- 0.1.0
- Last commit
- Oct 21, 2026
- License
- MIT
What is Scrape Everything MCP?
Scrape Everything fetches public social media data from platforms like Instagram, TikTok, X, and YouTube as clean JSON for AI clients. It exposes 42 tools, such as get_account, list_scrapers, instagram_profile.
Summary generated from the project's README
About Scrape Everything MCP server
Scrape Everything provides an interface for fetching public social media data from platforms including Instagram, TikTok, X, YouTube, Facebook, Telegram, Spotify, Pinterest, and Twitch. It converts social content into clean JSON format, making it easy for AI clients like Claude, Cursor, VS Code, Windsurf, and other MCP-compatible tools to process information. Users must provide a Scrape Everything API key, starting with the ssk_live_ prefix, to access the scraper tools.
The server dynamically registers tools based on a live catalog, meaning new scraping endpoints appear automatically without requiring a package update. It includes built-in safeguards such as truncating JSON results at 100,000 characters and providing clear error messages that include request IDs and rate limit information. For developers needing remote access, the server supports a stateless HTTP mode with configurable authentication tokens and host restrictions to prevent unauthorized use of API credits.
What you can do with it
- 1Extract YouTube transcriptsAn AI client can use the youtube_transcript tool to retrieve the text from a specific video for summarization.
- 2Monitor Instagram profilesA developer can instruct an agent to fetch profile details and photos from a specific Instagram username.
- 3Analyze TikTok trendsYou can request the server to fetch posts or music data from TikTok to identify trending content.
- 4Check API credit statusUsers can verify their remaining credits and plan limits by calling the account management tool.
Written from the project's README. Every use case is checked against a quote from it.
How to install Scrape Everything MCP
Formats verified 10 Nov 2026Install Scrape Everything MCP in Claude Code
$ claude mcp add --env SCRAPEEVERYTHING_API_KEY=<YOUR_SCRAPEEVERYTHING_API_KEY> mcp -- npx -y @scrapeeverything/mcpInstall Scrape Everything MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@scrapeeverything/mcp"
],
"env": {
"SCRAPEEVERYTHING_API_KEY": "<YOUR_SCRAPEEVERYTHING_API_KEY>"
}
}
}
}Install Scrape Everything MCP in VS Code
.vscode/mcp.json
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@scrapeeverything/mcp"
],
"env": {
"SCRAPEEVERYTHING_API_KEY": "<YOUR_SCRAPEEVERYTHING_API_KEY>"
}
}
}
}Install Scrape Everything MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@scrapeeverything/mcp"
],
"env": {
"SCRAPEEVERYTHING_API_KEY": "<YOUR_SCRAPEEVERYTHING_API_KEY>"
}
}
}
}Install Scrape Everything MCP in Codex
~/.codex/config.toml
[mcp_servers.mcp] command = "npx" args = ["-y", "@scrapeeverything/mcp"] [mcp_servers.mcp.env] SCRAPEEVERYTHING_API_KEY = "<YOUR_SCRAPEEVERYTHING_API_KEY>"
Install Scrape Everything MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@scrapeeverything/mcp"
],
"env": {
"SCRAPEEVERYTHING_API_KEY": "<YOUR_SCRAPEEVERYTHING_API_KEY>"
}
}
}
}Scrape Everything MCP tools 42
Detected from the READMEget_accountlist_scrapersinstagram_profileinstagram_photosinstagram_postinstagram_reelinstagram_commentsinstagram_reelsinstagram_reels_searchx_profilex_postsx_post
| get_account | — | |
| list_scrapers | — | |
| instagram_profile | — | |
| instagram_photos | — | |
| instagram_post | — | |
| instagram_reel | — | |
| instagram_comments | — | |
| instagram_reels | — | |
| instagram_reels_search | — | |
| x_profile | — | |
| x_posts | — | |
| x_post | — |
Show all 42 toolsShow fewer tools
tiktok_profiletiktok_poststiktok_videotiktok_commentstiktok_transcripttiktok_musictiktok_hashtagyoutube_profileyoutube_videosyoutube_videoyoutube_searchyoutube_commentsyoutube_transcriptyoutube_playlistfacebook_profiletelegram_profiletelegram_poststelegram_postspotify_trackspotify_artistspotify_albumspotify_playlistpinterest_profilepinterest_pinspinterest_pinpinterest_searchpinterest_boardtwitch_channeltwitch_videostwitch_clips
| tiktok_profile | — | |
| tiktok_posts | — | |
| tiktok_video | — | |
| tiktok_comments | — | |
| tiktok_transcript | — | |
| tiktok_music | — | |
| tiktok_hashtag | — | |
| youtube_profile | — | |
| youtube_videos | — | |
| youtube_video | — | |
| youtube_search | — | |
| youtube_comments | — | |
| youtube_transcript | — | |
| youtube_playlist | — | |
| facebook_profile | — | |
| telegram_profile | — | |
| telegram_posts | — | |
| telegram_post | — | |
| spotify_track | — | |
| spotify_artist | — | |
| spotify_album | — | |
| spotify_playlist | — | |
| pinterest_profile | — | |
| pinterest_pins | — | |
| pinterest_pin | — | |
| pinterest_search | — | |
| pinterest_board | — | |
| twitch_channel | — | |
| twitch_videos | — | |
| twitch_clips | — |
Configuration
SCRAPEEVERYTHING_API_KEYRequiredSecretScrape Everything API key (ssk_live_...), from https://scrapeeverything.com/dashboard/keys
SCRAPEEVERYTHING_API_URLOverride the API base URL (default https://api.scrapeeverything.com)
SCRAPEEVERYTHING_MCP_AUTH_TOKEN
| Name | Description | |
|---|---|---|
| SCRAPEEVERYTHING_API_KEY | Scrape Everything API key (ssk_live_...), from https://scrapeeverything.com/dashboard/keys | RequiredSecret |
| SCRAPEEVERYTHING_API_URL | Override the API base URL (default https://api.scrapeeverything.com) | |
| SCRAPEEVERYTHING_MCP_AUTH_TOKEN | — |
Automated checks
Ran Nov 12, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSNot checked
- Destructive tools are labelledPass
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHubScrape Everything MCP server
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/scrapersand 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
codeandrequest_id. OnRATE_LIMITEDthe 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'sSCRAPEEVERYTHING_API_KEYis not used as a fallback unless you pass--allow-shared-key. --allowed-host(repeatable, orSCRAPEEVERYTHING_MCP_ALLOWED_HOSTS, comma-separated) restricts theHostheader. Requests that send anOriginheader 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
| Variable | Default | Purpose |
|---|---|---|
SCRAPEEVERYTHING_API_KEY |
(none) | API key. Required for scraper tools and get_account. |
SCRAPEEVERYTHING_API_URL |
https://api.scrapeeverything.com |
API 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_CHARS |
100000 |
Max characters per tool result before truncation. |
SCRAPEEVERYTHING_MCP_SCHEMA_ANYOF |
off | Set 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
| Tool | Credits | Required input |
|---|---|---|
get_account |
0 | (none). Returns email, plan, credits and rate/concurrency limits. |
list_scrapers |
0 | optional platform |
instagram_profile |
1 | username |
instagram_photos |
2 | username |
instagram_post |
1 | one of url or shortcode |
instagram_reel |
1 | one of url or shortcode |
instagram_comments |
1 | one of url or shortcode |
instagram_reels |
2 | username |
instagram_reels_search |
3 | query |
x_profile |
1 | username |
x_posts |
2 | username |
x_post |
1 | one of url or id |
tiktok_profile |
1 | username |
tiktok_posts |
1 | username |
tiktok_video |
1 | one of url or video or id |
tiktok_comments |
1 | one of url or id |
tiktok_transcript |
1 | one of url or id |
tiktok_music |
2 | one of url or id |
tiktok_hashtag |
1 | hashtag |
youtube_profile |
1 | one of username or channel |
youtube_videos |
1 | one of username or channel |
youtube_video |
1 | one of url or id or video |
youtube_search |
1 | query |
youtube_comments |
1 | one of url or id |
youtube_transcript |
1 | one of url or id |
youtube_playlist |
1 | one of url or id |
facebook_profile |
1 | username |
telegram_profile |
1 | username |
telegram_posts |
2 | username |
telegram_post |
1 | one of url or post or username + id |
spotify_track |
1 | one of url or id or track |
spotify_artist |
1 | one of url or id or artist |
spotify_album |
1 | one of url or id or album |
spotify_playlist |
1 | one of url or id or playlist |
pinterest_profile |
1 | username |
pinterest_pins |
2 | username |
pinterest_pin |
1 | one of url or id |
pinterest_search |
2 | query |
pinterest_board |
2 | one of url or username + board |
twitch_channel |
1 | username |
twitch_videos |
1 | username |
twitch_clips |
1 | username |
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
- Run
npm version patch(orminor/major). This also syncsserver.json. - Run
git push --follow-tags. - The
release.ymlworkflow publishes to npm with provenance (NPM_TOKENsecret), then publishesserver.jsonto 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
Scrape Everything MCP questions
How do I add Scrape Everything MCP to Claude Code?
Run claude mcp add --env SCRAPEEVERYTHING_API_KEY=<YOUR_SCRAPEEVERYTHING_API_KEY> mcp -- npx -y @scrapeeverything/mcp in your terminal. Add --scope user to make it available in every project.
How do I add Scrape Everything MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What tools does Scrape Everything MCP provide?
It exposes 42 tools, including get_account, list_scrapers, instagram_profile, instagram_photos, instagram_post.
What social media platforms can I scrape?
You can fetch public data from Instagram, TikTok, X, YouTube, Facebook, Telegram, Spotify, Pinterest, and Twitch.
How much do the scraping tools cost?
Every tool description lists its credit cost, and failed calls are refunded.
Does the server send any telemetry data?
No, the server does not send telemetry; the only network calls made are to the Scrape Everything API.
How do I get an API key?
You can create an API key at the Scrape Everything dashboard.