MCP
Connect Cursor, VS Code, Claude, and other MCP clients to Social Fetch. OAuth by default, or an API key if the client never prompts.
Not a developer? Try a live lookup and connect Claude or ChatGPT on For AI — no API key, no curl.
Every public API endpoint is an MCP tool, billed like REST. OAuth is the default — finish the browser prompt once. If the client never opens a sign-in window, send a dashboard sfk_… key as x-api-key (same header as REST).
Install buttons, Skills, and FAQ: /mcp. Consumer starter URL (smaller tool list): https://api.socialfetch.dev/mcp?preset=starter.
For onboarding instructions (read llms.txt, use POST /v1/ask, use real routes only), install the Agent Skills pack: npx skills add social-freak-ltd/socialfetch -s socialfetch.
Connect
Server URL: https://api.socialfetch.dev/mcp
The endpoint uses the current official MCP TypeScript server SDK. It accepts current Claude clients and clients that still open with initialize.
Scope the tool list if you only need certain platforms — fewer tool schemas at connect time.
Manual setup
Cursor — ~/.cursor/mcp.json or project .cursor/mcp.json:
{
"mcpServers": {
"socialfetch": {
"url": "https://api.socialfetch.dev/mcp"
}
}
}Restart Cursor, open MCP settings, and finish the OAuth browser flow when prompted. If Cursor never opens a browser, add x-api-key from an env var — see Auth and billing.
VS Code — settings.json:
{
"mcp": {
"servers": {
"socialfetch": {
"url": "https://api.socialfetch.dev/mcp"
}
}
}
}Claude Code
claude mcp add --transport http socialfetch https://api.socialfetch.dev/mcpThen /mcp → authenticate Social Fetch.
Claude Desktop — add a custom remote connector with the server URL above.
stdio-only clients — npx mcp-remote https://api.socialfetch.dev/mcp
Scope the tool list
The base URL exposes every public API endpoint tool (plus auth, billing, docs, and nl_ask helpers). That works in clients that handle large catalogs, but it can bloat agent context. Scope when you only need certain platforms.
Pick platforms in the builder below, then copy a URL or config snippet. Leave everything clear for the full catalog.
Full catalog
Every tool listed — best when you need the full API
https://api.socialfetch.dev/mcpQuery params only affect tools/list and server/discover. tools/call still works for any valid tool name, even if filtered out of the list.
Every scoped connection still includes these utilities:
auth_whoami, billing_balance_get, docs_search, docs_read, nl_ask_post
You can also hand-edit URLs: ?platforms=twitter,tiktok, ?tools=twitter_profile_get, or both (union). OAuth and one-click install use https://api.socialfetch.dev/mcp without query — authenticate on the base URL, then paste a scoped URL for a smaller tool list.
Auth and billing
Credits charge to the same account as REST. See Credits & billing.
| Client | How to authenticate |
|---|---|
| Cursor, VS Code, Claude | Finish the OAuth browser prompt. The client stores a token — no key in config. |
| Clients that never open a browser | Dashboard sfk_… key as x-api-key (same header as REST). Interpolate from an env var. |
| Anonymous walk-up | x402 — USDC on Base. Register Exact and Upto; metered tools need a one-time Permit2 approve. |
Do not put the key in the URL or in Authorization: Bearer. Bearer is OAuth only. A key in the query string leaks into logs.
{
"mcpServers": {
"socialfetch": {
"url": "https://api.socialfetch.dev/mcp",
"headers": {
"x-api-key": "${env:SOCIALFETCH_API_KEY}"
}
}
}
}Claude Code: claude mcp add --transport http socialfetch https://api.socialfetch.dev/mcp --header "x-api-key: $SOCIALFETCH_API_KEY"
Create a key at API Keys. Whoami, balance, and NL Ask still need OAuth or a key — they are not on the x402 rail. Invalid Bearer or x-api-key returns 401 (no x402 fallback).
Tools
One tool per API operation (tiktok_profile_get ↔ tiktok.profile.get). Arguments and pricing match the API reference.
On connect, the server sends short agent instructions: prefer the most specific typed tool, use docs_search / docs_read when unsure, and read lookupStatus / meta.creditsCharged on responses.
Free helpers: docs_search, docs_read. For natural-language routing, use nl_ask_post (0 routing credits; the nested lookup is metered).
Example
Call tiktok_profile_get with { "handle": "nike" }, or explore with nl_ask_post: { "query": "TikTok profile for @nike" }.
The envelope matches REST — read lookupStatus before using the profile, and keep meta.requestId for support:
{
"data": {
"lookupStatus": "found",
"profile": { "handle": "nike", "platform": "tiktok" }
},
"meta": {
"requestId": "req_…",
"creditsCharged": 1,
"version": "v1"
}
}Troubleshooting
| Symptom | Fix |
|---|---|
401 / missing_bearer_token | Finish OAuth, or add x-api-key from an env var |
401 / invalid_api_key | Create or rotate a key at API Keys. Header is x-api-key, not Authorization |
401 / invalid_bearer_token | Reconnect and re-approve. Do not put an sfk_… key in Bearer |
503 | Transient — retry after Retry-After. Not a bad key |
| OAuth loop | Sign in at Social Fetch first, then approve access |
402 | Signed in: top up in Credits & billing. Anonymous: complete the x402 payment challenge |
| No tools | Reconnect and restart the client. URL should be https://api.socialfetch.dev/mcp with no extra path |
Related
Agent Skills
npx skills install — llms.txt, MCP, /v1/ask, real endpoints only.
API reference
Every operation the MCP tools wrap.
Credits & billing
How credits are metered across MCP and REST.
x402
Pay per tool call in USDC without OAuth (Exact + Upto).
n8n
No-code workflows with an API key.
Apify
Store Actors with Apify-native billing.