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 Codesettings.json:

{
  "mcp": {
    "servers": {
      "socialfetch": {
        "url": "https://api.socialfetch.dev/mcp"
      }
    }
  }
}

Claude Code

claude mcp add --transport http socialfetch https://api.socialfetch.dev/mcp

Then /mcp → authenticate Social Fetch.

Claude Desktop — add a custom remote connector with the server URL above.

stdio-only clientsnpx 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/mcp

Query 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.

ClientHow to authenticate
Cursor, VS Code, ClaudeFinish the OAuth browser prompt. The client stores a token — no key in config.
Clients that never open a browserDashboard sfk_… key as x-api-key (same header as REST). Interpolate from an env var.
Anonymous walk-upx402 — 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_gettiktok.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

SymptomFix
401 / missing_bearer_tokenFinish OAuth, or add x-api-key from an env var
401 / invalid_api_keyCreate or rotate a key at API Keys. Header is x-api-key, not Authorization
401 / invalid_bearer_tokenReconnect and re-approve. Do not put an sfk_… key in Bearer
503Transient — retry after Retry-After. Not a bad key
OAuth loopSign in at Social Fetch first, then approve access
402Signed in: top up in Credits & billing. Anonymous: complete the x402 payment challenge
No toolsReconnect and restart the client. URL should be https://api.socialfetch.dev/mcp with no extra path

On this page