SocialCrawl
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
One API for 65 platforms and 572 endpoints: social, commerce, retail, jobs, finance, web scraping.
| Author | io.github.RidioDevelopment |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 319 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"SocialCrawl": {
"url": "https://mcp.socialcrawl.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (7)
socialcrawl_findread-onlyStart here: a task in plain words -> the best endpoints (3 by default) of 646, each with the params the task supplies (URLs and @handles resolved), the params still missing, the credit cost and the exact call. With no task it lists platforms, or one platform's endpoints. Free; no key needed.
Parameters:
task— string — The job in plain words; URLs and @handles in it are resolved and filled. Omit to list platforms.limit— integer — Endpoints to return (default 3).platform— string — Only this platform's endpoints (slug, e.g. 'tiktok'); alone, lists them.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
socialcrawl_endpointread-onlyRead before calling: one endpoint's purpose, params, where the rows are and up to 25 response fields, cost rule, paging, latency, timeout, next endpoints and a sample link. id (or platform+resource, path), a platform slug (its endpoints) or a guide topic. Free.
Parameters:
id(required) — string — 'platform/resource' for its contract; a platform slug for its endpoint table; or a guide topic (errors, pricing, pagination, judgments, hydration, overview).page— integer — Page of a long guide (default 1).method— string — Only for an id served by several methods.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
socialcrawl_estimateread-onlyExact credits before you spend: one call (id, platform+resource or path, plus the params you will send; calls for a job total; items for a walk) or a plan of several calls. Uses the API's estimator when available, else the bundled pricing. A platform slug gives its price table; no id gives the pricing overview. Free.
Parameters:
id— string — 'platform/resource'; a platform slug for its price table; none for the overview.body— object — POST body, for batch endpoints.plan— array — Several calls to total, instead of id.calls— integer — Number of such calls (an array is read as plan).items— integer — Rows wanted (prices a walk).method— stringparams— object — The exact params you will send.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
socialcrawl_requestCall one endpoint (platform+resource, or id, or path). Validated locally first (a bad call is free), quoted, refused above max_credits and confirmed above the threshold. A large page is cut at row boundaries; socialcrawl_collect result_id reads the rest. Spends credits; needs SOCIALCRAWL_API_KEY.
Parameters:
platform(required) — string — Platform slug, e.g. 'tiktok'. An unknown slug gets a did-you-mean.resource(required) — string — Resource path, e.g. 'post/comments'; path params as 'jobs/{job_id}' + params.job_id, or the concrete path.body— object — JSON body for POST batch endpoints, e.g. { ids: [...] }.fields— string — Row paths exactly as socialcrawl_endpoint lists them, e.g. 'post.id,post.content.text,post.engagement.*' (or an array). Cuts tokens.format— string — json (default), csv (canonical columns) or summary.method— string — Only for a resource served by several methods (prism/jobs). Inferred: a body selects POST.params— object — Query params, e.g. { handle: 'x', limit: 10 }. Arrays join with commas (label). Sent as strings.confirm— boolean — true only once the user approved spending above the threshold (default 100 credits).max_items— integer — Show at most this many rows; the full page stays behind the result link.max_credits— integer — Spend cap: refused free when the quoted hold exceeds it (collect: the walk's budget).idempotencyKey— string — Makes a retry safe: a replay returns the original response for 0 credits (24h).
Hints: read-only no · destructive no · idempotent no · open-world yes
socialcrawl_collectWalk a paged endpoint (id, platform+resource or path) to `items` unique rows, the last page or max_credits: cursors supplied, duplicates dropped, stops on a 402, refused free when one page exceeds max_credits. Small results come back whole. result_id (+offset, limit, format) reads a stored result, free. Spends credits.
Parameters:
id— string — platform/resource of a paged endpoint, e.g. 'tiktok/post/comments'.items— integer — Stop once this many unique rows are collected.limit— integer — result_id: rows (200).fields— string — Row paths as socialcrawl_endpoint lists them, e.g. 'comment.text,comment.engagement.likes'.format— string — jsonl (default), json or csv.offset— integer — result_id: first row.params— object — Params for every page, as in socialcrawl_request. No cursor.confirm— boolean — true only once the user approved spending above the threshold (default 100 credits).result_id— string — Read a stored result instead of walking. Free.max_credits— integer — Spend cap: refused free when the quoted hold exceeds it (collect: the walk's budget).
Hints: read-only no · destructive no · idempotent no · open-world yes
socialcrawl_accountread-onlyFree checks: balance (with this session's spend), transactions (itemised ledger; the receipts for one request_id), status (platform health; read it before retrying a 502/503) and freshness (whether this server's bundled catalogue is behind the API).
Parameters:
view— string — balance (default, with this session's spend), transactions (ledger), status (platform health), freshness (catalogue vs live API).limit— integer — transactions: page size.cursor— string — transactions: next_cursor from the last page.request_id— string — transactions: receipts for one request.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
socialcrawl_managedestructiveStateful work by area + action: monitors (scheduled recipes, webhooks, alerts), cohorts (mention search over your own panel of accounts), web (scrape, search, crawl and agent jobs, change monitors, browser sessions) and jobs (Prism background jobs). A wrong field is refused free with the rules. Managing is free; scrapes, jobs, queries and monitor runs bill credits. dry_run: true validates and quotes a create/update and never creates it. rows_new alerts need track (id=monitors).
Parameters:
area(required) — string — What to manage.action(required) — string — monitors: create|list|get|runs|timeseries|pause|resume|delete. cohorts: create|add_members|estimate_cost|query|query_status|query_results|query_cancel|get|delete. web: scrape|search|map|extract|crawl|batch_scrape|agent|crawl_preview|job_get|job_list|job_cancel|job_errors|monitor_*|session_*. jobs: submit|list|get.id— string — Monitor, cohort, query, web job/monitor/session or prism job id.input— object — The action's fields, e.g. { recipe, cadence }, { url }, { keywords }, or the job body (max_credits, confirm allowed). Monitor alert rules, incl. rows_new: socialcrawl_endpoint id=monitors.dry_run— booleanidempotencyKey— string — For web crawl/batch, cohort writes and job submit.
Hints: read-only no · destructive yes · idempotent no · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.