YouTube MCP Server
Connect your AI agents to HasData's YouTube MCP server. Scrape channel stats, video metadata, and timed transcripts in structured JSON over streamable HTTP.
https://mcp.hasdata.com/api/mcp?apis=youtube - Transport
- Streamable HTTP
- Auth
- OAuth or API key
- Tools
- 4 YouTube tools
- Price
- 10 credits / call


See the YouTube MCP server in action
Select a sample prompt to inspect the tool it chooses and the JSON payload your agent receives.
Find the most-viewed videos about the model context protocol from the last month
Give me the stats on the video "MCP Was Wrong From The Start"
Summarise what "MCP Was Wrong From The Start" actually says
What else has the Better Stack channel posted?
The YouTube tools your agent can call
4 toolsTyped parameters, required flags, and structured JSON fields for each tool. The transcript tool is the one with no equivalent in the official API, and it returns the timed track rather than a wall of text.
+ hasdata_youtube_search_getYoutubeSearchResults Search with the real filter set 5 params 10 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| q | string | required | "model context protocol" |
| sortBy | enum | optional | "views" |
| date | enum | optional | "month" |
| length | enum | optional | "plus20" |
| videoType | enum | optional | "video" |
- searchInformation
- videoResults
- videoId
- title
- views
- length
- publishedDate
- pagination
+ hasdata_youtube_video_getYoutubeVideo One video's metadata by id 3 params 10 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| v | string | required | "dQw4w9WgXcQ" |
| gl | string | optional | "US" |
| hl | string | optional | "en" |
- title
- extractedViews
- extractedLikes
- lengthSeconds
- publishedDate
- category
- keywords
- channel
- captions
- aiSummary
+ hasdata_youtube_transcript_getYoutubeTranscript The timed transcript of a video 3 params 10 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| v | string | required | "dQw4w9WgXcQ" |
| languageCode | string | optional | "en" |
| type | enum | optional | "asr" |
- transcript
- startMs
- endMs
- startTimeText
- snippet
- chapters
- availableTranscripts
+ hasdata_youtube_channel_getYoutubeChannel Channel identity and one tab 3 params 10 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| channelId | string | required | "UCLA_DiR1FfKNvjuUpBHmylQ" |
| tab | enum | optional | "videos" |
| paginationToken | string | optional | "4qmFsgJ…" |
- channelInfo
- name
- handle
- description
- rssUrl
- availableTabs
- videos
- pagination
Every call is 10 credits. Failed calls are not billed.
One endpoint, any MCP client
Config blocks for Claude Desktop, Cursor, VS Code, Windsurf and Claude Code, in each one’s native format. Authenticate with browser OAuth or an x-api-key header.
Claude Code
hasdata-youtube · connected · 4 toolsCursor
hasdata-youtube · 4 tools enabledClaude Desktop
hasdata-youtube · connected · 4 toolsVS Code / Copilot
hasdata-youtube · running · 4 toolsWindsurf
hasdata-youtube · 4 toolsCodex CLI
hasdata-youtube · 4 toolsRaw HTTP / curl
{ "tools": [ … 4 items ] }YouTube plus whatever else you need
Name the services in the query string and the server exposes only their tools. Every one draws from the same key and the same balance.
Free on GitHub, paid in hours
Anyone can clone a free MCP to scrape YouTube. Whether that stays free depends on the shape of your project.
A script I run once
A weekly report
A pipeline in production
A feature in my product
One balance, every interface
A flat monthly price against a known credit ceiling. Move up a plan when you outgrow it.
Free
Startup
Basic
RecommendedGrowth
Monthly tool call volume
Custom price based on required volume
Past 20M credits a month, or terms the self-serve plans do not cover. We shape the contract around your workload.
The same data, without the agent.
Before you wire it in
Do I need a Google account or an API key from YouTube?
No. The only credential is your HasData key. Every tool reads the public pages a signed-out visitor sees.
How is this different from the YouTube Data API?
Two things. The official API runs on a daily quota that a search burns through quickly, and it does not return transcripts at all. These tools have no quota beyond your credit balance, and the transcript is a first-class call.
Which videos have a transcript?
Any video with a subtitle track, and most large channels have one. <code>languageCode</code> picks the track, and <code>type=asr</code> asks for the auto-generated speech-recognition version when a human-written one is missing.
Is the transcript one block of text?
No. Each cue carries its own <code>start</code> and <code>duration</code>, so a summary can point at a timestamp instead of paraphrasing the whole thing.
Can I use the real search filters?
Yes. Upload date, duration, sort order and video type are enums, and <code>filters__</code> covers the rest, including HD, subtitles and live. An agent picks documented values rather than assembling a search URL.
How fresh is the data? Is anything cached?
Every tool call fetches the page at that moment, so view and like counts are the ones on screen right now. Nothing is served from a cache.
How many calls can run in parallel?
One on the free tier, five on Startup, fifteen on Basic, and fifty on Growth. The larger Growth volumes raise it to 200, 300 and 500.
What happens when I run out of credits?
Nothing is charged on top of the plan. Calls stop until the billing cycle renews.
Does it work with Claude Desktop, Cursor, VS Code and Claude Code?
Yes, all four, plus anything else that speaks MCP over streamable HTTP. Claude Desktop connects through OAuth, and the rest take the URL and an API key header.
Is HasData affiliated with YouTube?
No. HasData is an independent service and is not affiliated with, endorsed by, or sponsored by Google LLC. YouTube is a trademark of its respective owner.