HasData YouTube
com.hasdata/youtubeVersion 1.0.9Search YouTube and read video, channel and transcript data as JSON. No Google Cloud project.
Status
Responds453 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:02 UTC
- Latency
- 453 ms
- Remotes responding
- 1 of 1
- Sign-in
- API key
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 21:12 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://mcp.hasdata.com/mcp?apis=youtubeResponds453 msNo sign-in
Claude Code
claude mcp add --transport http youtube 'https://mcp.hasdata.com/mcp?apis=youtube' --header 'x-api-key: <YOUR_X_API_KEY>'Replace <YOUR_X_API_KEY> before running.
Claude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: youtube
Remote MCP server URL: https://mcp.hasdata.com/mcp?apis=youtube
This server expects the header x-api-key.Cursor
{
"mcpServers": {
"youtube": {
"url": "https://mcp.hasdata.com/mcp?apis=youtube",
"headers": {
"x-api-key": "<YOUR_X_API_KEY>"
}
}
}
}Replace <YOUR_X_API_KEY> before running.
VS Code
code --add-mcp '{"name":"youtube","type":"http","url":"https://mcp.hasdata.com/mcp?apis=youtube","headers":{"x-api-key":"<YOUR_X_API_KEY>"}}'Replace <YOUR_X_API_KEY> before running.
Streamable HTTP
npm: @hasdata/youtube-mcp 1.0.9Package only
npm (npx)
claude mcp add youtube -e 'HASDATA_API_KEY=<YOUR_HASDATA_API_KEY>' -- npx -y @hasdata/youtube-mcp@1.0.9Replace <YOUR_HASDATA_API_KEY> before running.
Streamable HTTP
pypi: hasdata-youtube-mcp 1.0.9Package only
PyPI (uvx)
claude mcp add youtube -e 'HASDATA_API_KEY=<YOUR_HASDATA_API_KEY>' -- uvx hasdata-youtube-mcp==1.0.9Replace <YOUR_HASDATA_API_KEY> before running.
Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
4 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
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`, `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. | No | Yes | Not declared | Yes |
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 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. | No | Yes | Not declared | Yes |
hasdata_youtube_transcript_getYoutubeTranscriptGet 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). | No | Yes | Not declared | Yes |
hasdata_youtube_video_getYoutubeVideoGet 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. | No | Yes | Not declared | Yes |
Details
- Registry status
- Active
- Published
- Sep 24, 2026
- Updated
- Sep 24, 2026
- Categories (suggested)
- Design and mediaSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared