MCP Playlist Generator - Generate .m3u playlists based on mood or theme
Project description
🎧 MCP Playlist Generator
This project is a Model Context Provider (MCP) server designed to work with Claude or any AI assistant that supports tool usage. It generates .m3u playlists on the user's PC based on their current mood or theme. The playlist gets saved to a user-specified directory, ready to be queued up in your favorite media player.
Built with Python, powered by
uvandmutagen, and inspired by the legendary Filesystem MCP Server — major shoutout for the idea and foundational reference!
🛠 How It Works
- User sets up the MCP server using Python and
uv. - Server listens for requests from Claude or any LLM agent.
- Based on the request (e.g., "make a chill evening playlist"), it:
- Scans local music files.
- Uses
mutagento read metadata (genre, title, artist, etc.). - Filters songs matching the vibe.
- Creates an
.m3uplaylist. - Saves it at the desired location on the user's machine.
🔧 Tech Stack
📦 Installation
pip install uv mutagen
Clone this repo and run:
uvicorn mcp_server:app --reload
🧠 Example Claude Prompt
"Hey Claude, can you make me a happy vibe playlist."
Claude will then use the MCP server tool and boom — you get a playlist in your music app.
[!important] Make sure you
re-indexthe Music app after creating the playlist.
🙏 Special Thanks
Massive thanks to the Filesystem MCP Server — this project was built with your idea as the spark.
💬 Got Feedback?
Open an issue or hit me up. PRs are welcome, mood-based jams even more so 🎶
Need:
- What's the default directory fallback if user doesn't pick a location?
- Are you supporting MP3 only, or other formats too?
- Should I include API route structure for devs?
Lemme know and I’ll update it.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_m4dd0c_playlist_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: iflow_mcp_m4dd0c_playlist_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 18.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8672d68ee2ef50c13f68db6f6e7750812319f2d7d2beb4d5d46115a30b5215a1
|
|
| MD5 |
e5c170faa301ee07c7eefec966fee38d
|
|
| BLAKE2b-256 |
8c2f0ed526ebbafa8e40dfb8c3e8b894fc46e57dc69ad43d6b913716852188c3
|
File details
Details for the file iflow_mcp_m4dd0c_playlist_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_m4dd0c_playlist_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b0ddb691acf37a6cca440d352c58a7f71c2188cb5d5fa0c92ef3847aa1d29c9
|
|
| MD5 |
fd6e810a32769ca63105fba40cefe99f
|
|
| BLAKE2b-256 |
c3f5d3f9c2ad4d08e4d0eda32dcc8d8bd2129b64852f14062817065e0ada2182
|