Skip to main content

Youtube MCP

Fast, minimal, and reliable YouTube MCP for AI agents.

Banner

Install

Claude Code

claude mcp add youtube -- uvx youtube-watch-mcp

Before publish (local dev): point uvx at 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: ffmpeg on PATH is required only for --asr (speech-to-text on caption-less videos). Core transcript extraction needs nothing.

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-mcp

Transcript extraction never uses the key (YouTube only allows caption download for video owners).

Tools

Tool Returns Purpose
get_info(url) title, duration, chapters, has_captions Cheap probe before fetching.
get_transcript(url, asr=False) file path + word count + preview Clean transcript to disk. Returns path, not full text.
search_transcript(url, query) timestamped snippets Grep a long video without loading it all.
get_segment(url, start, end) 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 $url

Architecture

Adapters (thin):   cli.py   mcp_server.py   skill
                        │  call
Core (all logic):  fetch → clean → chunk → cache
                        │  uses
Backends:          youtube-transcript-api · yt-dlp · faster-whisper

Fetch fallback chain:

  1. youtube-transcript-api — fastest, no download
  2. yt-dlp auto-captions
  3. yt-dlp manual captions
  4. --asr: audio → local faster-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? --from gotcha? long-video handling?
  • Architecture — core/adapter split, fetch chain, the cleaning moat, cache.

License

MIT

Metadata

Release files for youtube-watch-mcp 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for youtube-watch-mcp 0.1.4
File Size Uploaded Provenance Actions
youtube_watch_mcp-0.1.4.tar.gz 1.3 MB Without provenance Details for youtube_watch_mcp-0.1.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for youtube-watch-mcp 0.1.4
File Interpreter ABI Platform Actions
youtube_watch_mcp-0.1.4-py3-none-any.whl Python 3 none any Details for youtube_watch_mcp-0.1.4-py3-none-any.whl

Total release size: 1.3 MB

Release files / youtube_watch_mcp-0.1.4.tar.gz

Download URL youtube_watch_mcp-0.1.4.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
c431a2c90edcb79b178b37967bedebcf312060e968f8eee6041bc9d0dac07da4
BLAKE2b-256 checksum
How to use checksums
c60ba4da51531e0269a722611357ef31a58d2d18aca61b672996290e67798456
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / youtube_watch_mcp-0.1.4-py3-none-any.whl

Download URL youtube_watch_mcp-0.1.4-py3-none-any.whl
Size 14.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
90c09dcc1f7256982c3695a4a247bdb38c6690709459f7749ef6844357be5393
BLAKE2b-256 checksum
How to use checksums
4d3308759869830f2e6087cac77bac13178c441534382384e9c732f346da560b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Security for youtube-watch-mcp 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page