download_and_play
Search for and play a song. If the song is already in the library it will play the existing version, otherwise it will download it first.
Ask for a song and have it found, downloaded as MP3 and played — on the machine the model is running on.
LABSCO SUMMARY
Everything happens where the server runs — the file lands in your download path and the sound comes out of your speakers — which is what makes it work with a local model in LM Studio and what makes it wrong for anything remote. The author is explicit that this is for content you have the right to download, and that the YouTube terms and local copyright law are yours to comply with.
A Python server that lets a local model search YouTube for music, download and convert it to MP3, and start or stop playback. Searches and downloads are asynchronous, so a long download does not block the conversation.
Ffmpeg on the machine — winget install ffmpeg on Windows, sudo apt install ffmpeg on Debian or Ubuntu. It is launched through uv run with fastmcp, yt-dlp, tinydb and pygame supplied as --with dependencies, pointing at server.py, and DOWNLOAD_PATH set to where files should land. A model actually trained for tool use is needed; the author names Qwen 3 and Gemma 3. The Python package is llm-jukebox, version 0.1.0.
Build from source — git clone https://github.com/jabberjabberjabber/llm-jukebox
USE CASES
Name the track and let the model find it and start it.
Download tracks as MP3 into a folder you nominate rather than streaming them.
Turn on debug logging and read the log file rather than retrying blindly.
Listed in project code.
download_and_playSearch for and play a song. If the song is already in the library it will play the existing version, otherwise it will download it first.
stop_playbackStop any currently playing song.
list_libraryList all songs in the music library.
BEFORE YOU INSTALL
3 tools registered in the project's code.
The documented client runs the server on your machine.
INSTALLATION
git clone https://github.com/jabberjabberjabber/llm-jukeboxMake sure you have ffmpeg. In windows open a terminal and type winget install ffmpeg, in Ubuntu or Debian do sudo apt install ffmpeg
{
"mcpServers": {
"llm-jukebox": {
"command": "uv",
"args": [
"run",
"--with",
"fastmcp",
"--with",
"yt-dlp",
"--with",
"tinydb",
"--with",
"pygame",
"fastmcp",
"run",
"c:/users/<YOUR_USERNAME>/llm-jukebox/server.py"
],
"env": {
"DOWNLOAD_PATH": "c:/users/<YOUR_USERNAME>/downloads"
}
}
}
}