music-player MCP
A Rust music server with MCP: an agent searches tracks, builds a queue and picks the next ones by tempo and energy.
- 533 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The agent controls a local daemon, sees the library and listening history and adds or removes tracks.
- The `curl | sh` installer and package repositories without signature checks are worth reading before running.
Install
- Works in
Manual install
curl -fsSL https://raw.githubusercontent.com/tsirysndr/music-player/master/install.sh | shFirst variant of the README Installation section. `npm install -g @tsiry/music-player` and Homebrew also exist. Then `claude mcp add music-player -- music-player mcp`.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The agent controls a local daemon, sees the library and listening history and adds or removes tracks.
- The `curl | sh` installer and package repositories without signature checks are worth reading before running.
This is third-party code. Review the repository files before installing.
What it does
Music Player is a Rust music server and player in a single binary. `music-player mcp` starts an MCP server over stdio through which an agent drives the running daemon: see what is playing, search the library, pause and build the queue. Audio analysis computes tempo, energy and brightness per track, and auto-DJ keeps a five-track queue and steers the set toward a target energy. A bundled `skills/music-player/SKILL.md` teaches the agent to queue without interrupting and to work from what the library really holds. The player itself reads 40+ formats and has a terminal UI, web UI, desktop app, GraphQL and gRPC.
Who it is for. Owners of a local music library who want to control the player from an agent chat and pick tracks by sound.
Good fit when
- You want to tell an agent "put on something upbeat" and get a queue rather than one track.
- The library is large and tracks are picked by tempo and energy rather than by title.
- A party needs a smooth ramp from 90 to 128 beats per minute.
- Work background music runs with an automatically refilled queue.
- A developer builds a client on top of the same server gRPC or GraphQL API.
Not a fit when
- You need a streaming catalog service: the player plays your library and Subsonic or Jellyfin servers.
- The daemon is not running and you expect the agent to start it: the MCP server connects to a running one.
- A regular player without chat control is enough.
Example request
Check what is playing and add nine upbeat tracks from my library to the queue without interrupting the current one.MCP
- Transport
- stdio
- Authentication
- not required
Limitations
The MCP server connects to an already running daemon over gRPC, so start the player first. Picking by feel needs a library analysis pass that runs in the background at about one second per local file. The macOS app is neither signed nor notarized and Gatekeeper blocks first launch. The install section has `curl ... | sh` lines and repositories with `trusted=yes`: review them before running. The MCP server requires no authentication.
How to disable. Remove the entry with `claude mcp remove music-player` or delete the `music-player` block from the client config. Uninstall the player itself with your package manager; databases and the analysis cache stay in the data folder.
FAQ
How do I connect MCP to Claude Code?
Run `claude mcp add music-player -- music-player mcp`. For file-configured clients add an `mcpServers` entry with command `music-player` and argument `mcp`.
Why a skill?
It teaches the agent to DJ: queue without interrupting, sequence a set and rely on what the library actually holds.
What is auto-DJ?
A mode that keeps the queue five tracks deep, each chosen to follow the last by tempo and energy. You can change the target energy in words.
Which formats does the player read?
More than 40, including MP3, FLAC, Opus, AAC, ALAC and WavPack, with the Rockbox chain: EQ, crossfade and ReplayGain.
Where is analysis data stored?
In SQLite: each track is analysed once. A file `initialkey` and BPM tags are read before anything is computed.
Discussion
No questions or reviews yet.
Related
MCP serversA Spotify MCP server: the agent searches music, controls playback, queue and volume, and builds and edits playlists and the library
An MCP server for a local Rust-based Yandex Music player and sync daemon on Linux: playback control, taste profile, mood picks
MCP Music Studio: music in chat with an agent
mcp-music-studio
An MCP server where an agent writes ABC sheet music or a Strudel live beat and the player with an editor opens in chat
The MCP server of the Audionaut editor: an agent cuts, moves, fades, analyses and exports multitrack audio projects.
Yandex Music MCP server with a native macOS player
yandex-music-mcp
A browser-free Yandex Music MCP server: the agent queues a playlist, a local daemon plays it via mpv with Now Playing in Control Center
The audio package runs an MCP server for sound work: loudness, spec checks, denoise, EQ, cuts and tempo.
README in short
The README lists features, install routes (curl, npm, Homebrew, Debian and RPM packages, AUR), an "AI agents (MCP)" section with dialog examples, audio analysis with auto-DJ and DuckDB listening analytics.