Skip to content

HasData YouTube

by hasdata.com · remote · local (npm, pypi) · no sign-in to list tools · v1.0.9 · published by com.hasdata

Search YouTube and read video, channel and transcript data as JSON. No Google Cloud project.

Read only

4 tools: 4 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http youtube https://mcp.hasdata.com/mcp?apis=youtube --header 'x-api-key: <your-x-api-key>'

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

4 tools

Only reads 4Claude Code: allow
  • hasdata_youtube_channel_getYoutubeChannelGet YouTube Channel Data Fetches a YouTube channel by its ID (`UC…`) or handle (`@name`) and returns structured data for any channel tab — `featured`/Home, `videos`, `shorts`, `str…No findings

    Why it is in this group

    • The name "hasdata_youtube_channel_getYoutubeChannel" says "get": a word for reading.
    Description, as the server wrote it
    Get YouTube Channel Data Fetches a YouTube channel by its ID (`UC…`) or handle (`@name`) and returns structured data for any channel tab — `featured`/Home, `videos`, `shorts`, `streams`, `playlists`, `posts`, `podcasts`, `releases`, `store` (desktop only), `about`. Returns channel identity (title, description, avatar, banner), subscriber count, country, join date, total-view count and social links (on the `about` tab), and the items on the requested tab (videos with views and publish date, playlists, posts, podcasts, etc.). Use to monitor competitor channels, build creator/brand directories, track posting cadence and growth signals, or feed `videoId` into the YouTube Video / Transcript endpoints.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
  • hasdata_youtube_search_getYoutubeSearchResultsGet YouTube Search Results Searches YouTube for a query and returns the full results page split into `videoResults` (videoId, title, views, length, publish date, chapters, channel …No findings

    Why it is in this group

    • The name "hasdata_youtube_search_getYoutubeSearchResults" says "search": a word for reading.
    Description, as the server wrote it
    Get YouTube Search Results Searches YouTube for a query and returns the full results page split into `videoResults` (videoId, title, views, length, publish date, chapters, channel info, extensions like 4K/CC), `channelResults` (channelId, handle, subscribers, verified flag), `shortsResults` / `inlineShortsResults`, themed `shelves` (e.g. 'People also watched', 'Latest from <creator>'), `adsResults` and `sponsoredResults` (advertiser, landing URL, position), plus `searchInformation.totalResults`. Each block preserves its `positionOnPage` so the original layout is reconstructable. Use for competitor and topic monitoring, brand-mention tracking, ad-placement intelligence, creator discovery, trend research, or to feed `videoId` / `channelId` into the YouTube Video, Channel, or Transcript endpoints.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
  • hasdata_youtube_transcript_getYoutubeTranscriptGet YouTube Video Transcript Returns the timed transcript (subtitles) of a YouTube video by its 11-character `videoId`.No findings

    Why it is in this group

    • The name "hasdata_youtube_transcript_getYoutubeTranscript" says "get": a word for reading.
    Description, as the server wrote it
    Get YouTube Video Transcript Returns the timed transcript (subtitles) of a YouTube video by its 11-character `videoId`. `languageCode` selects the track (e.g. `en`, `de-DE`, `pt-BR`); `type=asr` requests the auto-generated speech-recognition track. Each segment in `transcript[]` carries `startMs`, `endMs`, `snippet`, and a formatted `startTimeText`. The response also includes `availableTranscripts[]` listing every track on the video (language name + code, `type: asr` for auto-generated, `selected: true` for the one returned) so callers can discover what else is available. Use to feed a video's spoken content into RAG/LLM pipelines, generate summaries or chapter outlines, build searchable archives, run translation or accessibility workflows, or analyze talking points across a creator's catalog (pair with the YouTube Channel endpoint to enumerate videos, then fetch transcripts).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
  • hasdata_youtube_video_getYoutubeVideoGet YouTube Video Data Fetches a single YouTube video by its 11-character `videoId`.No findings

    Why it is in this group

    • The name "hasdata_youtube_video_getYoutubeVideo" says "get": a word for reading.
    Description, as the server wrote it
    Get YouTube Video Data Fetches a single YouTube video by its 11-character `videoId`. Returns title, thumbnail, raw + normalized views and likes, `lengthSeconds`, publish date, category, keywords/tags, `isFamilySafe` / `isUnlisted` flags, the uploading channel (id, link, subscribers, avatar), the full description with parsed links and hashtags, available `captions` tracks (with `kind: asr` for auto-generated), Content-ID `music` matches (song/artist/album), creator `socialLinks`, and the `relatedVideos`, `endScreenVideos`, and `relatedShorts` rails. Use to enrich a video URL with metadata, monitor view/like growth, extract music or sponsor/affiliate links, gather features for recommender or RAG pipelines, or detect caption tracks before calling the YouTube Transcript endpoint.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.9. Values in angle brackets are yours to fill in.

claude mcp add --transport http youtube https://mcp.hasdata.com/mcp?apis=youtube --header 'x-api-key: <your-x-api-key>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__youtube__hasdata_youtube_channel_getYoutubeChannel",
      "mcp__youtube__hasdata_youtube_search_getYoutubeSearchResults",
      "mcp__youtube__hasdata_youtube_transcript_getYoutubeTranscript",
      "mcp__youtube__hasdata_youtube_video_getYoutubeVideo"
    ],
    "ask": [],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as youtube. Review it before you use it.