web-data-toolkit

Search YouTube or a channel for transcripts, Google Trends, and Google Play reviews.

Should I use this

Quality & Safety

A
Description quality
100%
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

~986Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (0.77% 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": {
    "web-data-toolkit": {
      "url": "https://web-data-toolkit.vercel.app/mcp"
    }
  }
}

Remote endpoints

https://web-data-toolkit.vercel.app/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪youtube_transcript(url, lang, translateTo, segments, raw)

Returns the transcript text for each video plus its language, whether the captions were auto-generated, word count, title and channel. Comma-separate up to 50 video URLs or ids. Videos with no captions come back with a status instead of text.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "YouTube URL or 11-character video id. Comma-separate up to 50."
    },
    "lang": {
      "type": "string",
      "description": "Preferred language codes in order, comma separated. Default en."
    },
    "translateTo": {
      "type": "string",
      "description": "Translate the transcript into this language code."
    },
    "segments": {
      "type": "boolean",
      "description": "Include timestamped segments as well as full text."
    },
    "raw": {
      "type": "boolean",
      "description": "Return every field as JSON instead of a compact summary. Default false."
    }
  },
  "required": [
    "url"
  ]
}
⚪youtube_channel_transcripts(source, max, lang, raw)

Enumerates the newest videos of a channel, @handle or playlist and returns each video's metadata and transcript in a single call. Pass "search: your query" instead of a channel to go straight from a question to transcripts without knowing which creator to ask - the top results come back with full transcripts. Useful for building a corpus on a topic or from one creator.

Input Schema

{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "description": "@handle, channel URL or id, a playlist URL, or \"search: your query\" to search YouTube."
    },
    "max": {
      "type": "integer",
      "description": "How many of the newest videos to fetch. Default 25, max 500."
    },
    "lang": {
      "type": "string",
      "description": "Preferred caption language. Default en."
    },
    "raw": {
      "type": "boolean",
      "description": "Return every field as JSON instead of a compact summary. Default false."
    }
  },
  "required": [
    "source"
  ]
}
🟢google_trends(keyword, geo, timeframe, byRegion, related, ...)

For up to five keywords: relative search interest over a timeframe, interest broken down by region, and the top and rising related queries. No browser, straight from the Trends endpoints.

Input Schema

{
  "type": "object",
  "properties": {
    "keyword": {
      "type": "string",
      "description": "Search term. Comma-separate up to 5 to compare."
    },
    "geo": {
      "type": "string",
      "description": "Country or region code such as US or GB. Empty means worldwide."
    },
    "timeframe": {
      "type": "string",
      "description": "Any Trends range, e.g. now 7-d, today 3-m, today 5-y. Default today 12-m."
    },
    "byRegion": {
      "type": "boolean",
      "description": "Include the interest-by-region breakdown. Default true."
    },
    "related": {
      "type": "boolean",
      "description": "Include top and rising related queries. Default true."
    },
    "raw": {
      "type": "boolean",
      "description": "Return every field as JSON instead of a compact summary. Default false."
    }
  },
  "required": [
    "keyword"
  ]
}
⚪app_store_reviews(app, country, sort, max, minRating, ...)

Rating, title, text, author, app version and the review date for any iOS App Store app, plus the app's own metadata row (name, seller, price, average rating, rating count).

Input Schema

{
  "type": "object",
  "properties": {
    "app": {
      "type": "string",
      "description": "App Store URL or numeric app id such as 389801252."
    },
    "country": {
      "type": "string",
      "description": "Two-letter country code. Default us."
    },
    "sort": {
      "type": "string",
      "description": "mostRecent (default) or mostHelpful."
    },
    "max": {
      "type": "integer",
      "description": "Maximum reviews per app, 1-500. Default 100."
    },
    "minRating": {
      "type": "integer",
      "description": "1-5. Keep only reviews at or above this rating."
    },
    "maxRating": {
      "type": "integer",
      "description": "1-5. Keep only reviews at or below this rating."
    },
    "raw": {
      "type": "boolean",
      "description": "Return every field as JSON instead of a compact summary. Default false."
    }
  },
  "required": [
    "app"
  ]
}
⚪google_play_reviews(app, country, lang, max, rating, ...)

Rating, text, author, thumbs-up count, app version and the developer's reply for any Google Play app.

Input Schema

{
  "type": "object",
  "properties": {
    "app": {
      "type": "string",
      "description": "Google Play URL or package name such as com.whatsapp."
    },
    "country": {
      "type": "string",
      "description": "Two-letter country code. Default us."
    },
    "lang": {
      "type": "string",
      "description": "Language code. Default en."
    },
    "max": {
      "type": "integer",
      "description": "Maximum reviews per app. Default 100."
    },
    "rating": {
      "type": "integer",
      "description": "1-5 to keep only that star rating."
    },
    "raw": {
      "type": "boolean",
      "description": "Return every field as JSON instead of a compact summary. Default false."
    }
  },
  "required": [
    "app"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded4 tools