Every YouTube downloader MCP available today is a GitHub repository that you clone, install, and run locally — except one. That is not a marketing line. It is a structural fact about the current landscape, and it matters for how you choose a tool. A GitHub repo is the right choice for some use cases. A hosted service is the right choice for others. This piece walks through the actual options, what each one requires, where each one wins, and where the trade-offs land honestly.
Looking for the hosted option? TubePull's MCP server is a remote connector with a single URL, zero local dependencies, and support for browser-based AI clients. Free for 3 downloads a day. The rest of this article explains when that matters and when it does not.
The contenders
kevinwatt/yt-dlp-mcp
kevinwatt/yt-dlp-mcp is the most-used YouTube downloader MCP by search volume, with around 245 GitHub stars and roughly 14,800 estimated monthly visitors according to PulseMCP's server index. It wraps yt-dlp in an MCP server that runs locally over stdio.
The setup requires Node.js, a working yt-dlp installation, and — for anything beyond basic downloads — Deno for cookie handling. The README's prerequisites block is eight steps before you get to the first download command. It works with Claude Desktop only; it cannot connect to claude.ai web, Perplexity web, or ChatGPT, because those browser-based clients cannot run a local stdio process. Once configured, it is capable: yt-dlp's full format selection is available, there is no quota, and you control the binary version.
yoink-yt
yoink-yt is a PyPI package, installed with pip install yoink-yt. It is a Python-based MCP server that also runs locally over stdio. The install is lighter than yt-dlp-mcp — Python and pip are sufficient, no Deno required — but the same fundamental constraint applies: it is a local process, so it only works with clients that support stdio transport (primarily Claude Desktop and Cursor with a local config). No browser-based AI client can reach it.
SamuelBFavarin/youtube-downloader-mcp-server
SamuelBFavarin/youtube-downloader-mcp-server is a Python-based MCP server in a similar category. It requires Poetry for dependency management and a separate FFmpeg installation for audio extraction and format conversion. The star count is low and the documentation is minimal. It is a working implementation, but it is not the first choice for anyone without an existing Python development environment.
Apify YouTube Video Downloader
Apify's YouTube Video Downloader is accessible via Apify's MCP server, which is a different model from the others. Apify runs as a cloud platform; you connect their MCP endpoint to your AI client and call their actors remotely. The YouTube Video Downloader actor is one of those actors. This is technically a hosted option — no local install required. The billing model is per-run (actor compute units), which makes costs variable and harder to predict for regular use. You also need an Apify account to use it, and the primary use case is programmatic API access rather than casual conversational downloads.
TubePull MCP
TubePull MCP is a hosted remote MCP server at https://tubepull.com/mcp. The setup is one URL. You add it as a custom remote connector in any MCP-compatible AI client — Claude (web or Desktop), Perplexity, ChatGPT, Cursor — and you can immediately ask your AI to download a YouTube video. Two tools are exposed: download_video (MP3 or MP4, returns a signed link) and get_video_info (metadata, free, no quota). Authentication is None for the free tier or OAuth for Unlimited. The download processing runs on TubePull's servers.
The free tier allows 3 downloads per 24-hour window. Unlimited is $4.99 per month with no per-download charges.
Where local MCPs win
The local options — yt-dlp-mcp in particular — are genuinely better for specific use cases.
Heavy bulk archival. If you are downloading a channel's back catalog, a 200-video playlist, or running automated overnight jobs, a local yt-dlp installation with --batch-file and custom retry logic is the right tool. There is no quota, no rate limit beyond what YouTube itself enforces, and you have full control over the process. No hosted service with a free tier or a flat monthly fee is designed for this kind of scale. The yt-dlp vs GUI comparison guide covers this use case in detail.
Complete control over yt-dlp version. If you are building an archival pipeline and need a specific yt-dlp version pinned for reproducibility — or if you need to test behavior across versions — local is the only option. Hosted services run whatever version they maintain, and you do not control the update schedule.
Non-YouTube platforms. yt-dlp supports over a thousand sites. If your workflow involves downloading from Vimeo, TikTok, Bandcamp, or dozens of other platforms, a local yt-dlp-based MCP can handle all of them in one tool. TubePull's hosted service supports 10 platforms (YouTube, TikTok, Vimeo, SoundCloud, Dailymotion, Bandcamp, Twitter/X, Mixcloud, Twitch, and Streamable), but the MCP server interface is currently scoped to YouTube; non-YouTube platforms are available through the web UI.
Developer environments with existing tooling. If you already have Python, yt-dlp, and Claude Desktop configured, adding yt-dlp-mcp is a thirty-second edit to your claude_desktop_config.json. If the prerequisites are already met, the friction calculus changes.
Where hosted MCPs win
The local options have a hard constraint that makes them unusable for a significant portion of the audience: they require a local process running on the same machine as the AI client. This eliminates them from the following scenarios.
Browser-based AI clients. Claude.ai web, Perplexity web, and ChatGPT do not have access to your local filesystem or local processes. They cannot run a stdio MCP server. If you use Claude primarily in your browser — which is the majority of Claude users — kevinwatt/yt-dlp-mcp does not work for you. Full stop. TubePull, as a remote HTTP endpoint, connects to all of these clients because they can make outbound HTTPS requests.
Zero-install environments. Corporate laptops, managed devices, university computers, and shared machines often cannot run arbitrary Python or Node.js. A hosted MCP server needs only a URL and an AI client that supports custom connectors. No installation privileges required.
Automatic yt-dlp updates. YouTube regularly changes its infrastructure in ways that break yt-dlp. The developers release patches quickly, but you have to update your local installation to get them. If you are running yt-dlp-mcp locally and YouTube changes something, your downloads fail until you run pip upgrade yt-dlp — which might be at 11 PM when you needed that file an hour ago. TubePull handles these updates server-side. When YouTube breaks something and yt-dlp releases a fix, we patch in hours. Your connector continues working without any action on your part.
OAuth and no API key management. The local GitHub repos have no authentication layer — they run with no auth because they are already running on your machine. A hosted service needs authentication, and the question is what kind. TubePull uses OAuth 2.1 with PKCE, which means modern AI clients auto-discover it and walk you through a browser sign-in. You do not paste a key anywhere. Each AI client gets its own revocable connection, and tokens rotate automatically. When you upgrade to Unlimited, every existing AI client connection inherits the new quota without re-configuration.
The honest verdict: which tool for which person
Here is the actual decision tree:
Use yt-dlp-mcp (local) if:
- You are a developer comfortable with Python or Node.js
- You use Claude Desktop as your primary AI client
- You need batch downloads at scale with no daily quota
- You need to download from sites other than YouTube
- You want a specific yt-dlp version pinned
Use TubePull MCP (hosted) if:
- You use Claude.ai in a browser, Perplexity, or ChatGPT
- You want zero local dependencies
- You want a casual conversational download experience
- You are on a managed or shared machine
- You do not want to maintain local tool versions
There is a middle category: developers who would normally use yt-dlp-mcp locally, but who also use browser-based AI clients and want the same tool to work in both. That is a legitimate reason to use TubePull even if you have the technical patience for a local setup. The hosted option works everywhere the local option works (with the mcp-proxy shim for Claude Desktop), and also works everywhere the local option does not.
Pricing comparison
kevinwatt/yt-dlp-mcp: Free and open source. The cost is your time: installing prerequisites, maintaining the yt-dlp version, handling errors when YouTube changes something. There is no dollar cost, but the setup friction is real.
yoink-yt / SamuelBFavarin: Free and open source. Same cost model as above.
Apify YouTube Video Downloader: Variable, per-run billing. Apify charges in compute units. The cost per download depends on the video length and format. For occasional use it may be low; for regular use it is unpredictable. Requires an Apify account before you can use it.
TubePull MCP:
- Free tier: 3 downloads per day, up to 1080p Full HD, no account required
- Unlimited: $4.99/month (or $47.88/year, $3.99/mo annual), unlimited downloads, up to 4K, videos of any length
The flat monthly pricing is a deliberate choice. There is no per-download charge and no metered billing. The TubePull MCP landing page at /mcp has the full comparison table. TubePull is also the only YouTube downloader MCP in this comparison that shows pricing on its landing page — the GitHub repos have no pricing concept, and Apify's pricing requires navigating to their platform.
The setup if you want to try TubePull
The complete setup for TubePull in Claude, Perplexity, ChatGPT, Cursor, and Claude Desktop (with mcp-proxy) is at /setup-mcp. The short version for any browser-based client: go to your AI's connector or integration settings, add a custom remote connector, paste https://tubepull.com/mcp, set Transport to Streamable HTTP and Authentication to None, and you are done.
The MCP landing page at /mcp covers the full capability table, pricing, and per-client setup links in one place. If you are evaluating whether the hosted approach makes sense for your workflow, that page has the details you need to decide.