Social Fetch

MCP

Connect Cursor, VS Code, Claude, and other MCP clients to Social Fetch. Sign in with OAuth, call every endpoint as a tool, and let your agent read the docs as it builds.

Model Context Protocol (MCP) turns Social Fetch into tools your AI assistant can call directly — TikTok profiles, Instagram posts, YouTube search, web markdown, account balance, and every other public API endpoint. Endpoint tools are billed exactly like the REST API; docs tools help you implement the API in your project without consuming credits.

The hosted server lives at https://api.socialfetch.dev/mcp. You sign in once with OAuth in your browser — there's no API key to paste into your config.

What you'll need

  • A Social Fetch account with credits for metered routes — see Credits & billing.
  • An MCP client that supports remote (Streamable HTTP) servers with OAuth — Cursor, VS Code, Claude Code, Claude Desktop, or the MCP Inspector.

One-click install

Manual setup

If a one-click link does nothing — your editor isn't installed, blocks custom URL schemes, or has no button — add the server by hand.

Cursor

Add to ~/.cursor/mcp.json (or project .cursor/mcp.json):

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

Restart Cursor, open MCP settings, and complete the OAuth browser flow when prompted.

VS Code

Add to settings.json:

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

Claude Code

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

Then run /mcp and authenticate Social Fetch to finish the OAuth flow.

Claude Desktop

Add a custom connector (remote MCP) with URL https://api.socialfetch.dev/mcp and authorize when asked.

stdio-only clients

If your client only speaks stdio, bridge to the hosted server with mcp-remote:

npx mcp-remote https://api.socialfetch.dev/mcp

Point your client at the stdio process it spawns.

Authentication

Social Fetch uses OAuth 2.1 — your client handles the whole flow:

  1. The client opens the Social Fetch sign-in page in your browser.
  2. You sign in (or create an account) and approve access.
  3. The client receives an access token and sends it on every request.

Credits are charged to your signed-in account, just like the REST API. There's no API key in your MCP config.

Tools

tools/list exposes endpoint tools (one per public API route) plus docs tools for implementation help.

Endpoint tools

Tool names match API operation IDs with dots replaced by underscores:

Tool nameAPI operation
tiktok_profile_gettiktok.profile.get
instagram_post_getinstagram.post.get
web_markdown_generateweb.markdown.generate
auth_whoamiauth.whoami
billing_balance_getbilling.balance.get

Each endpoint tool's arguments mirror the matching route's parameters. Credits are metered the same way as REST — most calls cost 1 credit, while some search and media-download options cost more. See each operation's API reference page for exact pricing.

Docs tools

Two extra tools let your coding agent read the live Social Fetch docs while it builds — picking the right endpoint, following SDK examples, and checking auth, errors, and credits. Both are read-only and don't consume credits.

Tool namePurpose
docs_searchSearch the docs (API, SDK, auth, errors, credits, integrations)
docs_readRead a full docs page as markdown by pathname, e.g. /docs/sdk

Try a prompt like:

Use the Social Fetch MCP docs to add TikTok profile lookup to this app with the TypeScript SDK.

Example: TikTok profile

In Cursor or the MCP Inspector, call tiktok_profile_get with:

{ "handle": "nike" }

The result contains the same data and meta payload you'd get from the REST endpoint.

Troubleshooting

SymptomWhat to check
401 on every callYour token is missing or expired — reconnect and complete OAuth again.
OAuth redirect loopFinish signing in at the Social Fetch app, then approve access to return to your client.
402 responsesYou're out of credits for a metered route — top up in Credits & billing.
No tools listedReconnect the server; if it persists, restart your client.

On this page