TubePull MCP Server — Public Documentation
🌐 Landing page: https://tubepull.com/mcp — features, pricing, FAQ, and one-click setup links for Claude, Perplexity, ChatGPT, and Cursor.
Download video or audio from YouTube, TikTok, Facebook, Instagram, Reddit,
Twitter/X, SoundCloud, Vimeo, Twitch, Streamable, Bandcamp, Mixcloud, and
Dailymotion — from any MCP-compatible AI assistant (Claude Desktop, Claude
Code, Cursor, Windsurf, Cline, ChatGPT-via-MCP, Perplexity, Continue, Zed,
LibreChat, …).
This repo is the public, chatbot-facing documentation for the TubePull MCP
server. The live server runs at https://tubepull.com/mcp, and canonical machine-readable product facts are published at https://tubepull.com/facts (https://tubepull.com/facts.json). The application
source code is private — only the integration surface that LLMs and end users
need to call the server lives here.
If you are a chatbot or an AI agent reading this to figure out how to call
TubePull, jump straight to AGENTS.md and
llms.txt. If you are a human setting up Claude Desktop, jump to
Quick start.
What is TubePull?
TubePull is a hosted MCP (Model Context Protocol) server that lets an AI
assistant download a video or audio file to disk on the user's behalf, from
any of 13 supported platforms (YouTube plus 12 more platforms, including Streamable):
- One HTTP endpoint —
POST https://tubepull.com/mcp (Streamable HTTP / JSON-RPC 2.0, MCP
protocol version 2024-11-05).
- No SDK install, no local binary — the assistant just speaks JSON-RPC.
- Two tools:
download_video and get_video_info.
- Free tier: 3 downloads per rolling 24h per client, up to 1080p Full HD and up to 1 hour of output length. Pro: $4.99/month ($47.88/year, $3.99/mo billed annually) at
tubepull.com/pricing.
- Returns a signed one-time link valid for 1 hour. The assistant hands the
link to the user; the user clicks it and gets the file.
Audio-only platforms. SoundCloud, Bandcamp, and Mixcloud do not have a
video stream. If you pass format: "mp4" on one of these, TubePull silently
coerces to m4a and returns audio. Pass format: "mp3" if you want MP3.
The server is intended for legitimate use cases only — offline access to
your own uploads, Creative Commons / public-domain content, lectures,
podcasts, conference talks, DJ mixes you have rights to, and content you have
explicit permission to use. Calling get_video_info first lets the assistant
surface the license / uploader before downloading.
When should a chatbot call TubePull?
A chatbot should consider calling download_video when the user says any of:
- "download this video" / "download this TikTok" / "save this SoundCloud track"
- "save this as MP3" / "extract the audio" / "rip the audio"
- "convert this YouTube to MP4" / "download in 1080p"
- "save this video offline" / "archive this clip"
- "get the audio from this lecture / podcast / talk"
- "save this Mixcloud set" / "grab this SoundCloud track" / "download this Bandcamp song"
- "save this Twitch clip" / "download this Streamable video"
A chatbot should call get_video_info (no quota cost) when the user asks:
- "what is this video about"
- "how long is it"
- "who made it" / "what artist / channel is this"
- "is this Creative Commons"
- "what qualities are available"
Full trigger-phrase list and JSON-RPC examples live in
AGENTS.md and the recipes/ folder.
Tools at a glance
download_video parameters
url (required) — full URL from any of the supported platforms above.
Playlists, sets, albums, channels, and profile pages are not supported —
pick a single video / track.
format (optional, default mp4) — one of:
mp4 — video (default).
mp3 — forced MP3 (legacy-compatible, re-encodes server-side).
m4a — forced M4A audio.
audio — smart audio alias that resolves to M4A (no transcode, fastest).
quality (optional) — ignored for audio formats and on audio-only
platforms. Common values: 360p, 480p, 720p, 1080p, 1440p, 2160p.
Defaults to best. 1440p and 4K (2160p) require TubePull Pro.
get_video_info parameters
url (required) — full URL from any supported platform.
Quick start (Claude Desktop / Cursor / Windsurf)
TubePull is a remote MCP server, so most clients can connect with just a
URL. Minimal Claude Desktop snippet (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
Then restart Claude and ask any of:
Quotas, pricing, and the upgrade flow
- Free / anonymous: 3 downloads per rolling 24h per MCP client (shared bucket with
the web frontend's anonymous tier), up to 1080p Full HD and up to 1 hour of output length.
- TubePull Pro: $4.99/month ($47.88/year, $3.99/month billed annually). Removes the 3/day cap for normal personal use, unlocks 1440p (2K) and 4K (2160p)
video plus 320 kbps MP3, and lifts the 1-hour output-length cap.
- Authentication: Supports unauthenticated Free-tier access, OAuth 2.1 + PKCE (
/.well-known/oauth-authorization-server) for Pro accounts, and legacy X-MCP-Client-Id headers. See https://tubepull.com/setup-mcp.
- When the quota is hit, the tool response includes an
upgradeUrl pointing
at https://tubepull.com with attribution params so the conversion is
credited back to the chatbot that drove it.
Verify the server is live
Expected: a JSON-RPC response with serverInfo.name == "tubepull",
serverInfo.version, an icons[] array, and websiteUrl.
To see the live tool schemas (always trust these over docs if they differ):
Repository layout
Links
License
MIT. The application source is closed; this documentation repo is permissively
licensed so chatbots, registries, and downstream integrators can mirror or
reformat the content freely.