Skip to main content

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 uv and mutagen, and inspired by the legendary Filesystem MCP Server — major shoutout for the idea and foundational reference!


🛠 How It Works

  1. User sets up the MCP server using Python and uv.
  2. Server listens for requests from Claude or any LLM agent.
  3. Based on the request (e.g., "make a chill evening playlist"), it:
    • Scans local music files.
    • Uses mutagen to read metadata (genre, title, artist, etc.).
    • Filters songs matching the vibe.
    • Creates an .m3u playlist.
    • Saves it at the desired location on the user's machine.

🔧 Tech Stack

  • Python
  • uv — for the async web server
  • mutagen — for metadata extraction

📦 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-index the 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

iflow_mcp_m4dd0c_playlist_mcp_server-0.1.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Hashes for iflow_mcp_m4dd0c_playlist_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8672d68ee2ef50c13f68db6f6e7750812319f2d7d2beb4d5d46115a30b5215a1
MD5 e5c170faa301ee07c7eefec966fee38d
BLAKE2b-256 8c2f0ed526ebbafa8e40dfb8c3e8b894fc46e57dc69ad43d6b913716852188c3

See more details on using hashes here.

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

Hashes for iflow_mcp_m4dd0c_playlist_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b0ddb691acf37a6cca440d352c58a7f71c2188cb5d5fa0c92ef3847aa1d29c9
MD5 fd6e810a32769ca63105fba40cefe99f
BLAKE2b-256 c3f5d3f9c2ad4d08e4d0eda32dcc8d8bd2129b64852f14062817065e0ada2182

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page