lms-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LMS_URL | Yes | Base URL of the Lyrion Music Server, e.g. http://192.168.1.10:9000 | |
| LMS_PASSWORD | No | HTTP basic auth password, only if password protection is enabled | |
| LMS_USERNAME | No | HTTP basic auth username, only if password protection is enabled | |
| MCP_HTTP_PORT | No | Port for the HTTP transport | 3000 |
| MCP_TRANSPORT | No | Transport mode for the MCP server | stdio |
| MCP_AUTH_TOKEN | No | Bearer token required for the HTTP endpoint | |
| LMS_DEFAULT_PLAYER | No | MAC address or exact name of the player to target by default |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_playersA | List all Squeezebox / squeezelite players known to the server and their state. |
| now_playingA | Show the current track, playback mode, volume and queue position for a player. |
| playback_controlB | Control transport: play, pause, toggle, stop, next or previous track. |
| set_volumeA | Set absolute volume (0-100) or a relative change like +5 / -10. |
| seekA | Seek to a position (seconds from start) in the current track. |
| set_powerB | Turn a player on or off. |
| search_libraryA | Search the music library. Returns matching artists, albums and tracks with the ids used by play_music. |
| play_musicA | Load or queue music by library id (from search_library) or by direct URL. mode 'load' replaces the queue and plays, 'add' appends, 'insert' plays next. |
| show_queueB | List the current play queue (playlist) for a player. |
| queue_editC | Clear the queue, remove a track by index, move a track, or jump to an index. |
| set_repeat_shuffleB | Set repeat (off/one/all) and/or shuffle (off/songs/albums) for a player. |
| raw_commandB | Escape hatch: run an arbitrary LMS CLI command. See http://:9000/html/docs/cli-api.html. Example command: ["mixer","muting","1"]. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Each tool targets a distinct function (search, playback, queue editing, volume, etc.), and raw_command is clearly an escape hatch. Minor overlap exists between play_music's 'insert/add' modes and queue_edit's queue manipulation, but the descriptions make the boundary clear.
Most tools follow a consistent snake_case verb_noun pattern like search_library, set_volume, and show_queue. A few exceptions such as raw_command, seek, and now_playing break the pattern slightly but remain readable and predictable.
Twelve tools is within the ideal range for a media server control surface. Each tool addresses a core playback or queue function without unnecessary duplication.
The set covers the full playback lifecycle: discovering content, controlling transport, managing the queue, adjusting volume/seek/repeat/shuffle/power, and querying status. The raw_command escape hatch also covers edge operations missing from the curated surface.