yt-dlp-mcp
yt-dlp-mcp
A tiny standalone MCP server that wraps yt-dlp so any MCP-compatible client — Claude Desktop, Claude Code, HomeBot, or anything else — can look up video metadata and download videos.
Tools
Tool | Description | Confirmation |
| Title, uploader, duration, view count, thumbnail, available qualities. Read-only. | Not required |
| Downloads a video to | Recommended — tool is annotated |
Requirements
Node.js 18+
yt-dlp installed separately and on
PATH:Windows:
winget install yt-dlp.yt-dlpmacOS:
brew install yt-dlpAny OS:
pip install yt-dlp
This server does not bundle yt-dlp. If it's missing, both tools return a clear error telling the user how to install it instead of failing silently.
Using it from an MCP client
Point any MCP host at this repo with npx — no npm publish or local clone
needed:
{
"mcpServers": {
"yt-dlp": {
"command": "npx",
"args": ["-y", "github:kingithegreat/yt-dlp-mcp"]
}
}
}Claude Desktop / Claude Code: add the block above to your MCP config file.
HomeBot: add the same shape to your
mcp-servers.json(type: "stdio",command: "npx",args: ["-y", "github:kingithegreat/yt-dlp-mcp"]).
Local development
npm install
npm run build # compiles src/ -> dist/
npm test # jest, mocks child_process — no real yt-dlp calls in CI
npm start # run the server on stdio directlySafety notes
All yt-dlp invocations use
execFilewith argv arrays — the URL is never interpolated into a shell string, so there's no shell-injection surface.download_videowrites are confined to the user's home directory (resolveOutputDirrejects anything that resolves outside of it).Playlist URLs are refused by default (
--no-playlist) unlessallow_playlistis explicitly passed, to avoid an accidental mass-download.A single download is capped at a 10-minute timeout.
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kingithegreat/yt-dlp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server