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, 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. 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 ten supported platforms:
| Platform | Hosts | Default medium |
|---|---|---|
| YouTube | youtube.com, youtu.be | video |
| TikTok | tiktok.com, vm.tiktok.com | video |
| Twitter / X | twitter.com, x.com (status URLs with video) | video |
| Vimeo | vimeo.com | video |
| Twitch | twitch.tv, clips.twitch.tv (VODs and clips) | video |
| Streamable | streamable.com | video |
| Dailymotion | dailymotion.com, dai.ly | video |
| SoundCloud | soundcloud.com, on.soundcloud.com | audio |
| Bandcamp | bandcamp.com (artist subdomains included) | audio |
| Mixcloud | mixcloud.com | audio |
- One HTTP endpoint β
POST https://tubepull.com/mcp(JSON-RPC 2.0, MCP protocol version2024-11-05). - No SDK install, no local binary β the assistant just speaks JSON-RPC.
- Two tools:
download_videoandget_video_info. - Free tier: 3 downloads per 24h per client. Unlimited: $3.99/mo at tubepull.com.
- 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 tom4aand returns audio. Passformat: "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
| Tool | Cost | Returns |
|---|---|---|
download_video(url, format?, quality?) | counts against quota | signed download link (1 hour TTL), filename, format, quality, title, channel/artist, duration |
get_video_info(url) | free | title, channel/artist, duration, view count (when available), upload date, thumbnail, description, available qualities, license type (YouTube only) |
download_video parameters
url(required) β full URL from any of the ten supported platforms above. Playlists, sets, albums, channels, and profile pages are not supported β pick a single video / track.format(optional, defaultmp4) β 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 Unlimited.
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):
{
"mcpServers": {
"tubepull": {
"url": "https://tubepull.com/mcp"
}
}
}
Then restart Claude and ask any of:
- "download this YouTube video as MP3: https://youtu.be/dQw4w9WgXcQ"
- "save this TikTok: https://www.tiktok.com/@username/video/1234567890"
- "grab this SoundCloud track: https://soundcloud.com/artist/track-slug"
- "download this Mixcloud set: https://www.mixcloud.com/channel/show-slug/"
- "save this Twitch clip: https://clips.twitch.tv/"
- "download this Streamable: https://streamable.com/"
Quotas, pricing, and the upgrade flow
- Free / anonymous: 3 downloads per 24h per MCP client (shared bucket with the web frontend's anonymous tier).
- Unlimited: $3.99/mo. Removes the 3/day cap, unlocks 1440p and 4K video, and unlocks videos longer than 2 hours.
- When the quota is hit, the tool response includes an
upgradeUrlpointing athttps://tubepull.comwith attribution params so the conversion is credited back to the chatbot that drove it.
Verify the server is live
curl -sS -X POST https://tubepull.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}'
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):
curl -sS -X POST https://tubepull.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
Repository layout
tubepull-mcp/
βββ README.md β you are here
βββ llms.txt β top-level summary for LLM crawlers
βββ AGENTS.md β explicit "how to call this" recipes for agents
βββ server.json β MCP registry manifest
βββ recipes/
β βββ download-mp3.md
β βββ download-mp4.md
β βββ download-non-youtube.md
β βββ get-info.md
βββ assets/ β brand marks (favicon, logo)
Links
- Live MCP endpoint β https://tubepull.com/mcp
- Web app β https://tubepull.com
- MCP spec β https://modelcontextprotocol.io
- mcp.so listing β https://mcp.so (search "tubepull")
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.