FetchFox

YouTube transcripts, Instagram profiles and posts, and TikTok data as MCP tools.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
100%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,161Tokens (tool definitions)
~1.0 KBTypical response size
Moderate attention impact (0.91% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "fetchfox": {
      "url": "https://mcp.fetchfox.net/mcp"
    }
  }
}

Remote endpoints

https://mcp.fetchfox.net/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢youtube_transcript(url)

Get the transcript (captions) of a YouTube video. Returns the full text plus per-segment timings.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public YouTube video URL"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡tiktok_stats(url)

Get engagement stats for a single TikTok video (views, likes, comments, shares, publish date, author).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public TikTok video URL"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢tiktok_search(query, limit, cursor, country)

Search TikTok videos by query.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Search keywords"
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50,
      "description": "Maximum items requested; collection can return fewer."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque cursor returned by this endpoint; omit on the first call."
    },
    "country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "Two-letter country code for supported regional results."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡tiktok_channel_videos(url, limit, cursor)

Get a list of recent videos from a TikTok channel. Returns up to 100 videos with metadata (id, description, URL, thumbnail, duration, publish date, views, likes, comments, shares, saves). Supports pagination via the cursor field.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "TikTok channel/profile URL, e.g. https://www.tiktok.com/@username"
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100,
      "description": "Number of videos to return (default 30, max 100)"
    },
    "cursor": {
      "type": "string",
      "description": "Pagination cursor from a previous response"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡instagram_stats(url, requireViews)

Get metadata and a video CDN URL for an Instagram post or reel. Views are optional (null when unavailable); requireViews=true enables strict count recovery. Shares are null when not exposed; unavailable duration is null. Never treat null as zero.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public Instagram post or Reel URL"
    },
    "requireViews": {
      "type": "boolean",
      "description": "Require verified views; defaults to false for immediate media delivery."
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡instagram_channel_stats(url)

Get channel-level stats for an Instagram profile (user ID, followers, following, post count, bio, verified).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public instagram channel/profile URL"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢instagram_channel_posts(url, limit, cursor)

List recent posts from an Instagram profile URL.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public instagram channel/profile URL"
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50,
      "description": "Maximum items requested; collection can return fewer."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque cursor returned by this endpoint; omit on the first call."
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢instagram_channel_reels(url, limit, cursor)

List recent reels from an Instagram profile URL.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public instagram channel/profile URL"
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50,
      "description": "Maximum items requested; collection can return fewer."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque cursor returned by this endpoint; omit on the first call."
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools