# socialcrawl-mcp
**Give your AI agent access to every SocialCrawl platform and endpoint — social media, commerce, marketplaces & product reviews, retail, app stores, places, travel & local, business & software reputation, jobs & salaries, markets & finance, congressional trading disclosures, news, web research, full web scraping & browser automation, on-page SEO, prediction markets, search trends, cross-platform Prism composites, and a universal meta-search — through a single API, with exact credit pricing for every endpoint**
[](https://www.npmjs.com/package/socialcrawl-mcp)
[](https://registry.modelcontextprotocol.io)
[](LICENSE)
[](https://glama.ai/mcp/servers/socialcrawl/mcp)
[Installation](#installation) | [Overview](#overview) | [Setup](#setup) | [Usage](#usage) | [Tools](#available-tools) | [Platforms](#supported-platforms)
---
## Installation
### Remote server (hosted — no install)
Connect straight to the hosted Streamable HTTP endpoint — nothing to install or run:
**Claude Code** (works in the CLI *and* Claude Code on the web / cloud sandboxes)
```bash
claude mcp add --scope user --transport http socialcrawl https://mcp.socialcrawl.dev/mcp \
--header "Authorization: Bearer sc_your_key_here"
```
**Any client that reads `.mcp.json`**
```json
{
"mcpServers": {
"socialcrawl": {
"type": "http",
"url": "https://mcp.socialcrawl.dev/mcp",
"headers": { "Authorization": "Bearer ${SOCIALCRAWL_API_KEY}" }
}
}
}
```
**Cursor / Windsurf / VS Code** — choose the HTTP ("streamable-http") server type with the same URL and header. `x-api-key: sc_your_key_here` works as an alternative header.
The discovery tools (`socialcrawl_find`, `socialcrawl_endpoint`, `socialcrawl_estimate`) work without a key, so you can explore before signing up. claude.ai custom connectors (Settings → Connectors) require OAuth. An OAuth 2.1 resource-server mode is in preview and off by default (`SOCIALCRAWL_OAUTH=1`; see `docs/REMOTE-STREAMABLE-HTTP.md`); until it is enabled on the hosted server, use the header-based setup above.
Prefer running it locally? Every stdio option below works exactly as before.
### npm
```bash
npm install -g socialcrawl-mcp
```
Available on [npm](https://www.npmjs.com/package/socialcrawl-mcp). Most users don't need this — the MCP client configs below use `npx` and auto-install on first run.
### Claude Code (quickest)
```bash
claude mcp add --scope user socialcrawl -e SOCIALCRAWL_API_KEY=sc_your_key_here -- npx -y socialcrawl-mcp
```
### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"socialcrawl": {
"command": "npx",
"args": ["-y", "socialcrawl-mcp"],
"env": {
"SOCIALCRAWL_API_KEY": "sc_your_key_here"
}
}
}
}
```
### Cursor
Add to `.cursor/mcp.json` in your project root or `~/.cursor/mcp.json` globally:
```json
{
"mcpServers": {
"socialcrawl": {
"command": "npx",
"args": ["-y", "socialcrawl-mcp"],
"env": {
"SOCIALCRAWL_API_KEY": "sc_your_key_here"
}
}
}
}
```
### VS Code (Claude Code)
Add to `.vscode/mcp.json` in your project or your user settings:
```json
{
"servers": {
"socialcrawl": {
"type": "stdio",
"command": "npx",
"args": ["-y", "socialcrawl-mcp"],
"env": {
"SOCIALCRAWL_API_KEY": "sc_your_key_here"
}
}
}
}
```
### Windsurf
Add to your Windsurf MCP configuration:
```json
{
"mcpServers": {
"socialcrawl": {
"command": "npx",
"args": ["-y", "socialcrawl-mcp"],
"env": {
"SOCIALCRAWL_API_KEY": "sc_your_key_here"
}
}
}
}
```
### Other MCP-compatible clients
Any MCP client that supports stdio transport can use this server. The general pattern is:
- **Command:** `npx`
- **Args:** `["-y", "socialcrawl-mcp"]`
- **Environment:** `SOCIALCRAWL_API_KEY` set to your API key
Restart your AI client after saving the configuration.
## Overview
`socialcrawl-mcp` is an [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that connects AI agents to the [SocialCrawl API](https://socialcrawl.dev) — a unified data API over social, commerce, jobs, finance, research and web data. `socialcrawl_find` with no task lists every platform; `socialcrawl_account` view `freshness` shows the live counts.
Retrieve profiles, posts, comments, search results, trending content, and analytics from TikTok, Instagram, YouTube, Twitter/X, LinkedIn, Reddit, Threads, Douyin, Xiaohongshu, Telegram, Quora, Bluesky, Apple Music, GitHub, Hacker News, Product Hunt, Polymarket, and many more platforms. Pull products, offers, price history, reviews, and sellers from Amazon, Walmart, Target, Home Depot, eBay, Klarna, AliExpress, Etsy, Sephora, H&M, Kohl's, Wayfair, Gumtree, and Google Shopping; apps, charts, and reviews from Google Play and the Apple App Store; hotels, restaurants, attractions, cruises, and traveler reviews from Tripadvisor, plus local business data from Yelp and Google Business; brand reputation from Trustpilot and software reviews from G2; job listings and salary bands from LinkedIn, Indeed, Bing, and Xing; market quotes, price history, financial statements, and options chains; US congressional trading disclosures; Korean search and Data Lab trend series from Naver; cross-web brand mentions with sentiment via Content Analysis; Google News headlines and Google Trends interest curves — plus web research via Tavily and Perplexity, AI-powered X search via Grok, on-page SEO audits, and a single `/search/everywhere` endpoint that fans out across 14 sources in one call.
New in v2.0.0: **seven tools instead of eleven** (`socialcrawl_find`, `socialcrawl_endpoint`, `socialcrawl_estimate`, `socialcrawl_request`, `socialcrawl_collect`, `socialcrawl_account`, `socialcrawl_manage`). See [Available Tools](#available-tools) for the 1.x → 2.0 mapping and [CHANGELOG.md](CHANGELOG.md) for every release.
**What the MCP server does:**
- Finds the right endpoint for a task in plain words (ranked search across every endpoint, with URLs and handles resolved), and tells the agent what data each one returns
- Fetches live data on your behalf across every platform, method, and composite
- Prices every call up front — ladder, flat, or metered band — so an agent can budget before it spends
- Validates requests locally before calling the API: required params, `oneOf` groups, enum values, integer ranges, parameter couplings, and CSV limits. A bad call fails free instead of burning credits
- Provides built-in API documentation the agent can query on demand, paged rather than truncated
## Setup
### 1. Get your API key
Sign up at [socialcrawl.dev](https://socialcrawl.dev) and grab your API key from the dashboard. Every account starts with **100 free credits** — no credit card required.
### 2. Add the key to your config
Replace `sc_your_key_here` in the installation config above with your actual API key (starts with `sc_`).
> [!TIP]
> You can also set `SOCIALCRAWL_API_KEY` as a system environment variable instead of putting it in the MCP config. The discovery and documentation tools work even without a key — only actual API requests need one.
## Usage
Ask your AI agent in natural language. The MCP server handles the rest.
### Fetch a profile
```
Get the TikTok profile for @charlidamelio
```
The agent calls `socialcrawl_request` with `platform: "tiktok"`, `resource: "profile"`, `params: { handle: "charlidamelio" }` and returns structured profile data including followers, bio, verification status, and engagement metrics.
### Search across platforms
```
Search YouTube for "machine learning tutorials"
```
### Get post comments
```
Get the comments on this Instagram post: https://instagram.com/p/CwA1234abcd
```
### Cross-platform research
```
Compare the follower counts of @mkbhd on TikTok, Instagram, YouTube, and Twitter
```
The agent makes 4 sequential API calls — one per platform — and compiles the results into a comparison.
### Shop across retailers
```
Find the cheapest 65-inch OLED TV across Amazon, Walmart, Target, and eBay
```
### Explore available endpoints
```
What social media platforms can you access?
```
```
Show me all the TikTok endpoints
```
```
Which endpoints can give me video transcripts?
```
Each is a `socialcrawl_find` call: the task in plain words, ranked across every endpoint, no platform needed.
### Learn the API from the API
```
How do I get started with SocialCrawl?
```
```
Show me exactly how to call the Prism comments endpoint
```
```
Is this MCP server's endpoint list up to date?
```
These hit `socialcrawl_endpoint` and `socialcrawl_account` and cost nothing.
### Check what something costs before running it
```
What would it cost to run a Prism brand-mentions report?
```
```
Show me everything I can call for 1 credit
```
```
Why did that last call charge me 7 credits instead of 2?
```
The first two hit `socialcrawl_estimate`; the third reads the credit ledger via `socialcrawl_account` with `view: "transactions"` and shows the deduction and refund rows for that `request_id`.
### Access documentation
```
How does the SocialCrawl credit system work?
```
```
How do I page through a list endpoint?
```
### Example response
Every response follows a unified envelope format:
```json
{
"success": true,
"platform": "tiktok",
"endpoint": "/v1/tiktok/profile",
"data": {
"content": { "text": "...", "media_urls": ["..."] },
"author": { "username": "charlidamelio", "followers": 156000000 },
"engagement": { "likes": 5200, "engagement_rate": 0.045 },
"metadata": { "language": "en", "content_category": "entertainment" }
},
"credits_used": 1,
"credits_remaining": 99
}
```
> [!NOTE]
> The same response structure is returned for every platform — no per-platform parsing logic needed.
## Available Tools
Version 2.0.0 exposes 7 tools (about 4.7k tokens of `tools/list`, down from about 12.8k for the 11 tools of 1.x):
| Tool | What it does | Needs API key? |
|------|--------------|----------------|
| `socialcrawl_find` | **Start here.** A task in plain words becomes the best endpoints (3 by default), each with the params the task already supplies (URLs and `@handles` are resolved), the params still missing, the credit cost and the exact call to make. `platform` narrows it. With no task it lists the platforms, or one platform's endpoints. Ranked by the live `/v1/utility/find` when deployed, otherwise by the bundled ranker (BM25 over id, summary, returns, use_when and tags, with a platform boost) | No |
| `socialcrawl_endpoint` | The contract for one endpoint (`id: "tiktok/post/comments"`): purpose, required and optional params, where the rows are (`rows_at`) and up to 25 response fields, cost and pricing rule, paging, measured latency and timeout, next endpoints, and a sample-response link. A platform slug returns its endpoint table; a topic (`errors`, `pricing`, `pagination`, `judgments`, `hydration`, `overview`, ...) returns that guide. Live through `/v1/utility/endpoint` when a key is set | No |
| `socialcrawl_estimate` | Exact cost before you spend: one call (`id` + the `params` you will send, `calls` for a job total, `items` for a walk) or a `plan` of calls. Uses `/v1/utility/estimate` when deployed, otherwise the bundled pricing. A platform slug returns its price table; no id returns the pricing overview | No |
| `socialcrawl_request` | Call one endpoint: `platform`, `resource`, `params` (or `body` for POST batch endpoints). Validates locally first, quotes, refuses above `max_credits`, confirms above `SOCIALCRAWL_CONFIRM_ABOVE`, and returns `structuredContent` (rows, credits, paging). `fields` / `max_items` / `format` shape the result; large pages are cut at row boundaries behind a `socialcrawl://results/