YouTube Search & Download MCP Server
<strong>YouTube API 키 없이 동영상을 검색하고 다운로드하는 MCP 서버</strong>
Bug Report
·
Feature Request
<strong>English</strong>
·
<strong>한국어</strong>
🚀 What is YouTube Search MCP?
This is a production-quality Model Context Protocol (MCP) server that allows you to search, get information about, and download YouTube videos and audio without needing a YouTube API key. It's designed to work seamlessly with MCP clients like Claude Desktop and Cursor.
The server is built with / for robust backend operations and FastMCP for a high-performance server framework.
✨ Key Features
- No API Key Required: Search and download freely using
yt-dlp. - Easy Installation: Simple setup with
uvorpip. Works seamlessly with MCP clients. - Video & Audio Downloads: Download content in various formats (
mp4,mkv,mp3,wav, etc.) and qualities. - Playlist Support: Search for playlists, get playlist details, and retrieve all videos from any playlist.
- Rich Metadata: Get detailed video information, including duration, view count, and chapters.
- Client Compatibility: Works great with Claude, Cursor, and other MCP-compliant clients.
- Robust & Type-Safe: Built on a SOLID architecture with full type safety using Pydantic.
🏁 Getting Started (For Users)
Prerequisites
- Python 3.10 or higher
- uv (recommended) or
pip - FFmpeg (must be installed and available in your system's PATH)
- Windows:
choco install ffmpeg(with Chocolatey) or download from gyan.dev/ffmpeg - macOS:
brew install ffmpeg - Linux:
sudo apt install ffmpeg(Ubuntu/Debian) orsudo dnf install ffmpeg(Fedora)
- Windows:
Installation
Install the package using uv (recommended) or pip:
# Using uv (recommended)
uv pip install youtube-search-mcp
# Or using pip
pip install youtube-search-mcp
Running the Server
After installation, you can run the server directly:
youtube-search-mcp
💻 Client Configuration
Configure your MCP client to connect to the server.
For Claude Desktop or Cursor:
Add this to your MCP client configuration (usually claude_desktop_config.json):
{
"mcpServers": {
"youtube-search": {
"command": "youtube-search-mcp"
}
}
}
Or if using uvx (no installation required):
{
"mcpServers": {
"youtube-search": {
"command": "uvx",
"args": ["youtube-search-mcp"]
}
}
}
🔧 Configuration
You can customize the server's behavior by setting environment variables. These can be added to your MCP client configuration (e.g., claude_desktop_config.json) or set via a .env file in the project root.
| Variable | Description | Default |
|---|---|---|
YT_MCP_DOWNLOAD_DIR |
Directory where videos/audio will be saved | downloads |
YT_MCP_DEFAULT_VIDEO_QUALITY |
Default video quality (best, high, medium, low) |
best |
YT_MCP_DEFAULT_MAX_RESULTS |
Number of search results to return by default | 10 |
YT_MCP_LOG_LEVEL |
Logging level (DEBUG, INFO, WARNING, ERROR) |
INFO |
🛠️ For Developers & Contributors
Interested in contributing? Here’s how to set up your development environment.
Prerequisites
- Git
- Python 3.10+
- uv (recommended) or
pip - FFmpeg (must be installed and available in your system's PATH for development)
- Windows:
choco install ffmpeg(with Chocolatey) or download from gyan.dev/ffmpeg - macOS:
brew install ffmpeg - Linux:
sudo apt install ffmpeg(Ubu
- Windows:
Tools 4
search_videosSearch for YouTube videos based on a query.get_video_infoRetrieve detailed metadata for a specific YouTube video.download_videoDownload a YouTube video or audio in specified format.get_playlist_infoRetrieve details and video list from a YouTube playlist.Environment Variables
YT_MCP_DOWNLOAD_DIRDirectory where videos/audio will be savedYT_MCP_DEFAULT_VIDEO_QUALITYDefault video quality (best, high, medium, low)YT_MCP_DEFAULT_MAX_RESULTSNumber of search results to return by defaultYT_MCP_LOG_LEVELLogging level (DEBUG, INFO, WARNING, ERROR)