Skip to content
Side-by-side comparison — left shows a GitHub repo install with terminal commands for node, ffmpeg, and yt-dlp; right shows the TubePull hosted MCP card with a single connector URL, no-install checkmarks, eight supported platforms, and free vs unlimited pricing

The Best Hosted MCP Server for YouTube Downloads in 2026 (Honest Comparison)

Comparing TubePull MCP with yt-dlp-mcp, yoink-yt, and other GitHub options. Honest about which tool wins which use case.

Every YouTube downloader MCP available today is a GitHub repository you clone, install, and run locally — except one. That structural fact drives the main choice in this category. 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 requires, and where the trade-offs land.

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.

Setup requires Node.js, a working yt-dlp installation, and — for cookie-gated content — Deno. The README has eight prerequisite steps before 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. A Python-based MCP server that 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: local process only, so it works with Claude Desktop and Cursor, not browser-based AI clients.

SamuelBFavarin/youtube-downloader-mcp-server

SamuelBFavarin/youtube-downloader-mcp-server is a Python-based MCP server requiring Poetry for dependency management and a separate FFmpeg installation. Low star count and minimal documentation. A working implementation, but 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. Apify runs as a cloud platform — no local install required. The YouTube Video Downloader is one actor on that platform. Billing is per-run (actor compute units), making costs variable and harder to predict for regular use. You also need an Apify account. 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. Setup is one URL. 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). Download processing runs on TubePull's servers.

The free tier allows 3 downloads per 24-hour window. Pro 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. Downloading a channel's back catalog, a 200-video playlist, or running automated overnight jobs is best handled by a local yt-dlp installation with --batch-file and custom retry logic. No quota, no rate limit beyond what YouTube itself enforces, full control over the process. The yt-dlp vs GUI comparison guide covers this use case in detail.

Complete control over yt-dlp version. Building an archival pipeline and need a specific version pinned for reproducibility? Local is the only option. Hosted services run whatever version they maintain, and you do not control the update schedule.

Broad site coverage. yt-dlp supports over a thousand sites. If your workflow spans Vimeo, TikTok, Bandcamp, or dozens of other platforms, a local yt-dlp-based MCP can handle all of them. TubePull's MCP server interface is currently scoped to YouTube.

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.

Where hosted MCPs win

The local options have a hard constraint: 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 cannot run a local stdio process. If you use Claude primarily in your browser, yt-dlp-mcp does not work for you. TubePull, as a remote HTTPS endpoint, connects to all of these clients.

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.

Automatic maintenance. When YouTube ships a player change that breaks downloads, you fix a local yt-dlp setup yourself by updating the binary. TubePull handles updates server-side — your connector continues working without any action on your part.

OAuth and no API key management. TubePull uses OAuth 2.1 with PKCE, which modern AI clients auto-discover and walk you through via browser sign-in. No key to paste anywhere. Each AI client gets its own revocable connection, and tokens rotate automatically. When you upgrade to Pro, every existing client connection inherits the new quota without re-configuration.

The honest verdict: which tool for which person

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 one tool to work in both. The hosted option works everywhere the local option works (with the mcp-proxy shim for Claude Desktop), and also works where the local option cannot.

Pricing comparison

kevinwatt/yt-dlp-mcp: Free and open source. The cost is your time: installing prerequisites, maintaining yt-dlp, handling errors when YouTube changes something.

yoink-yt / SamuelBFavarin: Free and open source. Same cost model.

Apify YouTube Video Downloader: Variable, per-run billing in compute units. Low for occasional use; unpredictable for regular use. Requires an Apify account.

TubePull MCP:

  • Free tier: 3 downloads per day, up to 1080p Full HD, no account required
  • Pro: $4.99/month (or $47.88/year, $3.99/mo annual), unlimited downloads, up to 4K, videos of any length

"Pro" means no daily cap on normal personal use — not a license for bulk or automated downloading. TubePull's Pro plan is for the interactive downloads you ask your own AI assistant for, not mass downloads, automated scripts, or integrating TubePull into another application. That heavy-bulk use case is exactly where a local yt-dlp setup belongs. The full policy is in Section 7 of TubePull's Terms.

Flat monthly pricing is a deliberate choice — no per-download charge, no metered billing. TubePull is the only YouTube downloader MCP in this comparison that shows pricing on its landing page.

The setup if you want to try TubePull

Full setup for Claude, Perplexity, ChatGPT, Cursor, and Claude Desktop is at /setup-mcp. The short version for any browser-based client: go to your AI's connector 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.

Frequently asked questions

Can I use yt-dlp-mcp with Claude.ai in a browser?
No. yt-dlp-mcp runs as a local stdio process, which means it can only connect to clients that run on the same machine — primarily Claude Desktop. Browser-based clients like claude.ai web, Perplexity web, and ChatGPT cannot run local stdio processes. If you use Claude primarily in a browser, you need a remote MCP server like TubePull.
Is there an MCP server that can download from both YouTube and other sites?
yt-dlp-mcp supports all 1,000+ sites that yt-dlp itself supports, since it wraps yt-dlp directly. TubePull's MCP server is YouTube-only. If you need cross-platform downloading in an AI conversation, a local yt-dlp-mcp setup on Claude Desktop is currently the only MCP-based option.
How does Apify's YouTube Video Downloader compare to TubePull for MCP use?
Apify is also hosted and requires no local install, which is similar to TubePull. The main differences: Apify bills per compute run (variable cost, harder to predict for regular use), requires an Apify account before you can use it, and is accessed through Apify's broader MCP server rather than a dedicated YouTube endpoint. TubePull is a dedicated YouTube MCP with flat monthly pricing ($4.99/mo Pro) and a free tier that requires no account.
What does 'local stdio MCP' actually mean for non-developers?
A stdio MCP server is a program running on your computer that your AI client talks to through a system pipe. The AI client starts the program, they exchange messages, and the program runs on your machine using your machine's resources. A remote HTTP MCP server, by contrast, is a web service the AI client connects to over the internet. Local stdio requires installation and a running process; remote HTTP requires only a URL.
If I set up TubePull now but later want to switch to a local yt-dlp-mcp, how disruptive is that?
Not disruptive at all. In your AI client's connector settings, you remove the TubePull remote connector and add the local yt-dlp-mcp configuration instead. The two do not conflict. Some users run both simultaneously on Claude Desktop — the local one for bulk work, the remote one for quick conversational downloads in browser-based clients.
Does TubePull handle the PO token / cookie authentication that yt-dlp requires?
Yes. The PO token issue is a YouTube authentication requirement that affects unauthenticated yt-dlp downloads and requires passing browser cookies with --cookies-from-browser. TubePull handles this server-side. You never configure cookies or PO tokens; TubePull manages the authentication layer on its infrastructure so your downloads work without manual cookie configuration.