Web Data Toolkit

io.github.leekung125Published by GitHub account leekung125v1.2.0Updated Oct 24, 2026

YouTube transcripts (video, channel, search), Google Trends, Google Play and App Store reviews.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Remote MCP server that gives an assistant YouTube transcripts, Google Trends interest data, and App Store and Google Play app reviews.

What you can do
Fetch transcripts for one or many YouTube videos, with language, auto-generated flag, word count, title and channel. List a channel, handle or playlist's recent videos with transcripts, or search YouTube by query and get the top results with transcripts. Look up Google Trends for up to five keywords: interest over time, by region, and related queries. Get iOS App Store reviews plus the app's metadata. Get Google Play reviews with ratings, thumbs-up counts and developer replies.
When to use it
Use it when you need YouTube transcripts for a video or channel, relative Google search interest for keywords, or a quick read of App Store and Google Play reviews. Suited to market research, content research and competitor review analysis.
Requirements
Remote endpoint; nothing to install or run locally. An API key is required in the x-api-key header; a shared demo key is available to try it, and a personal key must be requested. Network access is needed, and a client timeout of at least 60 seconds is recommended.
Before you install
Requires an x-api-key credential; the demo key is shared, rate limited and capped at 10 rows per call. Every call is a live fetch, so slower requests can exceed short timeouts, and long results are truncated. Public data only; auto-generated captions carry machine errors, and Trends values are relative interest, not search volumes.

Installation

In SourceWeft

  1. Open Web Data Toolkit in the dashboard and add it to a workspace.
  2. Connect x-api-key credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.leekung125%2Fweb-data-toolkit/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "web-data-toolkit": {
      "type": "http",
      "url": "https://web-data-toolkit.vercel.app/mcp",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

Web Data Toolkit — MCP server

Four public-data tools for any MCP client: YouTube transcripts (one video or a whole channel), Google Trends (interest over time, by region, related queries), and Google Play reviews.

Hosted and remote — there is nothing to install, build, or keep running. Point your client at one URL.

json
{  "mcpServers": {    "web-data-toolkit": {      "type": "http",      "url": "https://web-data-toolkit.vercel.app/mcp",      "headers": { "x-api-key": "YOUR_KEY" }    }  }}

Clients that accept only a URL can carry the key in the query string instead: https://web-data-toolkit.vercel.app/mcp?key=YOUR_KEY

Try it before signing up. Put wdt_demo_public in as the key. It is a shared demo key: rate limited, and capped at 10 rows per call, but every tool answers and you can see the exact shape of the data before you decide anything.

Tools

ToolWhat it returnsRequired
youtube_transcriptTranscript text for up to 50 videos, with language, an auto-generated flag, word count, title and channelurl
youtube_channel_transcriptsEvery recent video of a channel, @handle or playlist, each with metadata and transcript — or pass search: your query to search YouTube and get the top results with transcriptssource
google_trendsInterest over time, interest by region, and top plus rising related queries for up to 5 keywordskeyword
google_play_reviewsRating, text, author, thumbs-up, app version and the developer's replyapp

Question to transcripts in one call. {"source": "search: cold plunge recovery", "max": 3} searches YouTube and returns the top results with full transcripts, so an agent does not have to know which creator to ask first.

Optional arguments are described in each tool's input schema, so your client will show them. Full REST documentation, an OpenAPI specification and an llms.txt live at https://web-data-toolkit.vercel.app.

Getting a key

Start with wdt_demo_public. It is shared, rate limited and capped at 10 rows per call, and every tool answers on it — enough to see the exact shape of the data.

For a personal key with higher limits, open an issue and say roughly what volume you need.

⛔ A RapidAPI subscription (https://rapidapi.com/leetanakung98/api/web-data-toolkit) issues a key for RapidAPI's own gateway. That key authenticates against their endpoint, not this one, so it will not work for MCP. Subscribe there if you want the REST API billed through RapidAPI; come here for MCP.

How it behaves

  • Transport: JSON-RPC 2.0 over Streamable HTTP, protocol 2025-06-18 (it will also negotiate 2025-03-26 and 2024-11-05). The server is stateless: it issues no session id, and GET returns 405 because there is no server-initiated stream.
  • Latency: every call is a live fetch from the source, not a cache. Measured 2026-09-14, one call each: a YouTube transcript in 3.7s, Google Play reviews in 3.8s, a Google Trends keyword in 8.6s, and a whole channel of 25 videos with every transcript in 29.8s; the slowest single call that day was 21s. Set your client timeout to at least 60 seconds.
  • Built for a context window: results come back as a reading, not a dump. One Google Trends keyword is 146 rows and about 37,000 characters of JSON; the MCP answer is around 1,200 characters and says where interest sits against the window, the top regions, and the top and rising related queries. Reviews come back as a star distribution plus one line each; transcripts as title, channel, language and text. Pass raw: true on any tool for every field.
  • Large results: a tool result is truncated at 120,000 characters and says so in its first line, so a whole channel cannot silently blow up a context window. Narrow the request for the rest.
  • Errors: a failed call comes back as an MCP tool result with isError set and the reason in the text, rather than as a protocol error, so an agent can read and recover from it.

Honest limits

  • Public data only. Nothing behind a login, and no personal data beyond the public author name a platform already displays on a review.
  • Transcripts are whatever the platform publishes. Auto-generated captions carry the errors the machine made, and the response tells you which kind you received.
  • Google Trends values are relative interest as Google reports them. They are not search volumes.
  • There is no published uptime figure, because there is not yet enough history to state one honestly.

What's in this repo

This is the whole service, not just a manifest.

api/mcp.js        the MCP protocol handler - tool listing and tool callsapi/rest.js       the plain REST surface, one handler behind vercel.json rewriteslib/tools.js      tool definitions and the upstream calls behind themlib/format.js     row shaping, truncation and the per-call output cappublic/           landing page, openapi.json, llms.txt, robotsvercel.json       the rewrites that map /mcp and /api/* onto the two handlersserver.json       the Model Context Protocol registry manifest

Every credential is read from the environment — see .env.example. The upstream token is used server-side only and never reaches a client. The public demo key is rate-limited and row-capped in lib/format.js so an open endpoint can't run up a bill.

License

MIT — see LICENSE. The license covers this repository; the hosted service is a separate offering with its own terms on RapidAPI.

Source: README.md at commit 6a46739

Tools

5

youtube_transcript

Get the full transcript of one or more YouTube videos as clean text.

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.

ParametersrawurlrequiredlangsegmentstranslateTo

youtube_channel_transcripts

Search YouTube, or list a channel or playlist, and return every video with its transcript.

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.

Parametersmaxrawlangsourcerequired

app_store_reviews

App Store customer reviews for an iOS app, by country and sort order.

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

ParametersapprequiredmaxrawsortcountrymaxRatingminRating

google_play_reviews

Google Play reviews for an Android app, by country and language.

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

Parametersapprequiredmaxrawlangratingcountry

Version history

2
  1. v1.2.0LatestOct 1, 2026
  2. v1.1.0Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts