youtube-mcp
Provides tools for extracting transcripts, searching videos, and getting metadata from YouTube videos without requiring an API key.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@youtube-mcp get transcript of https://youtu.be/dQw4w9WgXcQ"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Youtube MCP
Fast, minimal, and reliable YouTube MCP for AI agents.

Install
Claude Code
claude mcp add youtube -- uvx youtube-watch-mcpBefore publish (local dev): point
uvxat the checkout instead:claude mcp add youtube -- uvx --from /path/to/youtube-mcp youtube-watch-mcp
Claude Desktop / Codex / other MCP clients
Add to the client's MCP config:
{
"mcpServers": {
"youtube": {
"command": "uvx",
"args": ["youtube-watch-mcp"]
}
}
}CLI only
uvx --from youtube-watch-mcp youtube-watch-mcp-cli info "https://youtu.be/VIDEO_ID"That's it. uvx pulls youtube-watch-mcp, yt-dlp, and dependencies into an isolated environment automatically. Nothing to install globally.
Optional:
ffmpegon PATH is required only for--asr(speech-to-text on caption-less videos). Core transcript extraction needs nothing.
Related MCP server: youtube-mcp
Optional API key
A YouTube Data API key is not needed to read videos. Add one only to enable cross-YouTube search:
claude mcp add youtube -e YOUTUBE_API_KEY=your_key -- uvx youtube-watch-mcpTranscript extraction never uses the key (YouTube only allows caption download for video owners).
Tools
Tool | Returns | Purpose |
| title, duration, chapters, has_captions | Cheap probe before fetching. |
| file path + word count + preview | Clean transcript to disk. Returns path, not full text. |
| timestamped snippets | Grep a long video without loading it all. |
| text slice | Read one time range. |
Design principle: pull, don't dump. Transcripts write to a local cache file; tools return a path and a short preview. The agent reads or searches on demand — long videos never flood the context.
/get_info $url
/get_transcript $url
/search_transcript $url
/get_segment $urlArchitecture
Adapters (thin): cli.py mcp_server.py skill
│ call
Core (all logic): fetch → clean → chunk → cache
│ uses
Backends: youtube-transcript-api · yt-dlp · faster-whisperFetch fallback chain:
youtube-transcript-api— fastest, no downloadyt-dlpauto-captionsyt-dlpmanual captions--asr: audio → localfaster-whisper
On yt-dlp failure the engine self-updates yt-dlp and retries once — most breakage is a stale yt-dlp.
Caching: results are keyed by video ID under ~/.cache/youtube-mcp/<id>/. Repeat calls are instant.
Cleaning: auto-captions are de-duplicated (rolling-caption overlap removed), stripped of timestamps and [Music] noise, and whitespace-collapsed before the agent ever sees them.
Requirements
Python 3.11+ (managed automatically by
uvx)ffmpeg— optional, only for--asr
Docs
FAQ — keyless? no-caption videos?
--fromgotcha? long-video handling?Architecture — core/adapter split, fetch chain, the cleaning moat, cache.
License
MIT
Available Tools
4 toolsget_infoA
Cheap probe of a YouTube video: title, duration, chapters, caption availability.
Call this first to decide whether to fetch a transcript and how to read it.
Inputs: url (required).
get_segmentA
Return transcript text for the time range [start, end) in seconds.
Inputs: end (required), url (required), start (required), lang.
get_transcriptA
Fetch a cleaned transcript and write it to a local file.
Returns the file path plus a short preview and stats — NOT the full text. Read the file, or use search_transcript / get_segment, to pull detail on demand.
Inputs: url (required), lang.
search_transcriptA
Find cues matching a query. Returns timestamped snippets only.
Use for long videos: locate the relevant moments without loading everything.
Inputs: url (required), query (required), lang. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: get_info probes metadata, get_transcript fetches and saves the transcript, search_transcript finds matching cues, and get_segment extracts a specific time range. No two tools overlap in purpose.
All tool names follow a consistent verb_noun pattern with lowercase and underscores: get_info, get_transcript, search_transcript, get_segment. The style is uniform and predictable.
Four tools is an appropriate size for a focused transcript retrieval and search server. Each tool serves a distinct step in the workflow without unnecessary redundancy.
The tool set covers the full lifecycle: probe video info, fetch transcript, search within it, and extract specific segments. There are no obvious gaps for the stated purpose of retrieving and navigating video transcripts.
Related MCP Connectors
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents.
YouTube transcripts, video search, chapters and extractive summaries. No YouTube API key, no LLM.
YouTube for AI agents: transcripts, comments, video stats, channel monitor, Shorts captions.
YouTube transcripts for AI agents: 150+ languages, AI transcription fallback, search, summaries.
Related MCP Servers
- AlicenseAqualityCmaintenanceExtract YouTube transcripts for AI agents, RAG pipelines, and LLM workflows. Supports any YouTube URL. Returns clean text or timestamped segments. No API keys required.14MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to fetch transcripts, metadata, and download videos/audio from YouTube without API keys.33MIT
- AlicenseAqualityDmaintenanceEnables AI agents to search, watch, summarize, clip, and extract transcripts from YouTube videos, all without needing an API key or leaving the chat.927 npm61Apache 2.0
- AlicenseAqualityBmaintenanceAllows AI agents to fetch, search, and summarize YouTube video transcripts without an API key, including chapter summaries.4MIT