Koskamo

Web Data Toolkit MCP

A remote MCP server providing five public-data tools: YouTube transcripts (single video or channel), Google Trends interest and related queries, and Google Play and App Store reviews. It returns structured data optimized for LLM context windows, requiring only a single API key for authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Web Data Toolkit MCP logo, by leekung125Community listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by leekung125
MCP endpoint (Streamable HTTP)
https://web-data-toolkit.vercel.app/mcp
Vendor documentation

What its tools do

5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

5 of 5 have a description · 0 of 5 declare behavior hints · 5 of 5 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Retrieve full transcript text for YouTube videos or entire channels
  • Get Google Trends interest over time and related queries for keywords
  • Fetch Google Play app reviews including developer replies
  • Fetch App Store customer reviews for iOS apps

Source and maintenance

Community listingRegistry 1.2.0
Maintenance checked

Protocol and capabilities

Server
web-data-toolkit 1.0.0
MCP protocol negotiated in check
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Public-data tools behind one key: YouTube transcripts for a single video or a whole channel, Google Trends interest and related queries, and Google Play and App Store reviews. Call tools/list for the current set. tools/call needs a key: the shared demo key wdt_demo_public works for a trial (rate limited, capped rows). Calls take roughly 4 to 25 seconds because they fetch live from the source.

Tools

5 advertised

youtube_transcript — Get the full transcript of one or more YouTube videos as clean text.
Advertised by the server during the last successful anonymous check.

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.

youtube_transcript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "raw": {
      "type": "boolean",
      "description": "Return every field as JSON instead of a compact summary. Default false."
    },
    "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."
    },
    "segments": {
      "type": "boolean",
      "description": "Include timestamped segments as well as full text."
    },
    "translateTo": {
      "type": "string",
      "description": "Translate the transcript into this language code."
    }
  }
}
youtube_channel_transcripts — Search YouTube, or list a channel or playlist, and return every video with its transcript.
Advertised by the server during the last successful anonymous check.

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.

youtube_channel_transcripts input schema
{
  "type": "object",
  "required": [
    "source"
  ],
  "properties": {
    "max": {
      "type": "integer",
      "description": "How many of the newest videos to fetch. Default 25, max 500."
    },
    "raw": {
      "type": "boolean",
      "description": "Return every field as JSON instead of a compact summary. Default false."
    },
    "lang": {
      "type": "string",
      "description": "Preferred caption language. Default en."
    },
    "source": {
      "type": "string",
      "description": "@handle, channel URL or id, a playlist URL, or \"search: your query\" to search YouTube."
    }
  }
}
google_trends — Google Trends interest over time, interest by region and related queries.
Advertised by the server during the last successful anonymous check.

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.

google_trends input schema
{
  "type": "object",
  "required": [
    "keyword"
  ],
  "properties": {
    "geo": {
      "type": "string",
      "description": "Country or region code such as US or GB. Empty means worldwide."
    },
    "raw": {
      "type": "boolean",
      "description": "Return every field as JSON instead of a compact summary. Default false."
    },
    "keyword": {
      "type": "string",
      "description": "Search term. Comma-separate up to 5 to compare."
    },
    "related": {
      "type": "boolean",
      "description": "Include top and rising related queries. Default true."
    },
    "byRegion": {
      "type": "boolean",
      "description": "Include the interest-by-region breakdown. Default true."
    },
    "timeframe": {
      "type": "string",
      "description": "Any Trends range, e.g. now 7-d, today 3-m, today 5-y. Default today 12-m."
    }
  }
}
app_store_reviews — App Store customer reviews for an iOS app, by country and sort order.
Advertised by the server during the last successful anonymous check.

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

app_store_reviews input schema
{
  "type": "object",
  "required": [
    "app"
  ],
  "properties": {
    "app": {
      "type": "string",
      "description": "App Store URL or numeric app id such as 389801252."
    },
    "max": {
      "type": "integer",
      "description": "Maximum reviews per app, 1-500. Default 100."
    },
    "raw": {
      "type": "boolean",
      "description": "Return every field as JSON instead of a compact summary. Default false."
    },
    "sort": {
      "type": "string",
      "description": "mostRecent (default) or mostHelpful."
    },
    "country": {
      "type": "string",
      "description": "Two-letter country code. Default us."
    },
    "maxRating": {
      "type": "integer",
      "description": "1-5. Keep only reviews at or below this rating."
    },
    "minRating": {
      "type": "integer",
      "description": "1-5. Keep only reviews at or above this rating."
    }
  }
}
google_play_reviews — Google Play reviews for an Android app, by country and language.
Advertised by the server during the last successful anonymous check.

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

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

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
574 ms
95th percentile latency
574 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 574 ms · metadata changed · 5 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http web-data-toolkit-mcp https://web-data-toolkit.vercel.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add web-data-toolkit-mcp --url https://web-data-toolkit.vercel.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable web-data-toolkit-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "web-data-toolkit-mcp": {
      "url": "https://web-data-toolkit.vercel.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "web-data-toolkit-mcp": {
      "type": "streamableHttp",
      "url": "https://web-data-toolkit.vercel.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start web-data-toolkit-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "web-data-toolkit-mcp": {
      "type": "http",
      "url": "https://web-data-toolkit.vercel.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http web-data-toolkit-mcp https://web-data-toolkit.vercel.app/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://web-data-toolkit.vercel.app/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "web-data-toolkit-mcp": {
      "serverUrl": "https://web-data-toolkit.vercel.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Web Data Toolkit MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.