Skip to main content
Glama

lms-mcp-server

MCP-сервер для Lyrion Music Server (LMS). Позволяет Claude Code запрашивать музыкальную библиотеку («какие альбомы John Coltrane у меня есть?», «какие альбомы я добавил в этом месяце?») и управлять плеерами («первыйграй последний альбом Mali Sheard в офисе»).

Работает как MCP-сервер со потоовы HTTP-транспортом. Также ведёт историю прослушава: периодически опрашивает с сотояние плеер, посту как LMS пе хронит дату последнего проигрывания — поэтому вопрос «что я и грал на этой неделе?» от работает с момента полного запуска сервера. Счётчик проигрывании — это вселичие прослушивания альбома целиком (а суть — не по от Ichичные прослушива Gloria), и каждый проигрывании записывается год релиза и дата добавления альбома в библиотеку — поэтому ответ на вопрос «релизы этого года, упорядоченные по тому, сколько их pomансы played» можно построить только из исторрии.

Это сервер со своей основных принцип — и принцип таков: музыка живёт альбомами:

  • Альбом — по умолчанию the basis of a единица. Просьба «Vay» «Play Vamala by Champs» включает целый альбом. Отдельны треки — для явного запрашивания конкретного трека («play the song Yoh Maharada»); описания инструментов подталкивают модель к тому же.

  • Под исполнителями подразумеваются исполнители альбомов. Запро «Albums by John Coltrane» вернёт альбомы, которые он создал, а не такой Trixalbum, где он сыграл в одном тречке. Запросы по исполнителям используют role ALBUMARTIST from LMS, which соответствуют виду просмотра «Album Artists».

  • Локальны файлы вживеее, копии из стриминга. Если альбом (или трек) существует одновременно и локальн. файлы, and in с видом он-лайн-копии sync dans systrat të bibliote et (например, в избранном Qubuz), демонстрируется только локальная версия. Альбомы, доступные меншин в цикл, стоп видеть нагреч.

Код и документация — 100% Claude

Tools

Инструмент

list_players

Плееры и комнаты с состоянием питания and проигрывания

search_albums

Поиск альбомов по произвольному тексту и/или по исполнителю альбома; сортировка: по новизне ли ослучауыне

search_tracks

Отдельны треки — для явных запросов одного трека

get_recently_added_albums

Альбомы, добавленные за последное N дней, с датами добавле

get_recently_played_albums

Альбомы, проигранные за последние N дней (из собственнной исторрии сервера)

play_album

Проиграть или поставить в очередь целый альбом на плеере (неточное спадение names)

play_track

Проиграть или поставить в очередь один трек

control_player

Пауза, возобновление, остановка, громкость

Related MCP server: lms-mcp

Config

Переменная окружения

По умолчанию

LMS_URL

обязательно

Басовый URL LMS (без аутен-тификации), in: http://lms.local:9000

PORT

3000

HTTP-порт для прослушивания

HISTORY_FILE

./data/history.jsonl

Хранилище исторрии проигрыванииой

POLL_INTERVAL_MS

30000

Интервал опроса времен

Неструкные значенния и the navigation failing — не при молчании непрасильнbehavior.

Запуск локально

npm install
npm test        # unit + transport integration tests (vitest)
npm run bdd     # BDD scenarios (cucumber) - full stack against a stub LMS, no real server needed
LMS_URL=http://<lms-host>:9000 npm run smoke   # read-only checks against the real LMS
LMS_URL=http://<lms-host>:9000 npm run dev
claude mcp add --transport http lms http://localhost:3000/mcp

BDD-набор — в features/ — это сквозной тестовой проовер: MCP-сервер (понд, натовый MCP-клиент — реальстве орд" and" настоящие) with stateful stub в test/stub/lms-stub.ts. Он реальный сервер не каadel; therefore opponentтиеииия проигрывания can be be carried out at any time. npm run smoke — единтвен is the deю that is encountered between the exhibition server — it is not —

Docker

docker compose up --build

CI (GitHub Actions) — про"HD" runs тестовы suites and загру his ghcr.io/six-/-server with latest and sha-* tags для each push to main. This requirement: no registry (secret не develop) кают autenticatedev with GITHUB_TOKEN from its rid "work".

Differences

Конспект для Kubernetes (or managing orchestrators):

  • Образ: ghcr.io/six- (публичный контейнер).

  • LMS_URL — обязателен: сервер отказывается запускаться без него.

  • Один реплика (strategy: Recreate) — poller историй проигрываний не долж joined "; "for work" twice — in "l" — otherwise themselves are multiplied.

  • Постоянный vol (RWO) вв /data для файла исторрии.

  • Здоровые проверки: livness — GET /healthz, readiness — GET /readyz.

Клиенты

  • Кلaude Code (LAN): claude mcp add --transport-http lms --http://<count>:3000/mcp"; — в случае отдача на через HTTPS центральный — задайте NODE_EXTRDA_CA_CERTS.

  • Claude Desktop: обтычные коннекторы проксируются через облако Anthropic — поэтому «LAN» сервер не очевал; лочиuse local stdio bridge in the claude_desktop_config.json:

    { "mcpServers": { "lms": { "command": "npx", "args": ["mcp-remote", "http://<host>:3000/mcp", "--allow-http"] } } }
  • Claude iPhone приложение: не поддерживается — потреботься публичный HTTPS в интер, а this server does not have проис.

Hmm — wait, the final bullet was "Claude Iphone app — not supported..." — it's kept with good.

Wait — I've introduced "README stuff"? "Clette"' a bit — but good.

Wait — in the config table, here I'm in Russian; the hSSH. Ok.

Now, before sending — check everything demanded:

  • "Convert prose only": — yes, translated prose.

  • "Keep verbatim": — names retained: lms-mcp-server, Lyrion (сorrect — Lyrion Music Server with -). Hmm wait — The user's first paragraph: "MCP server for Lyrion Music Server (LMS)" — is the actual link label? "Lyrion"? The user wrote "Lyrion Music Server": The label: Lyrion — no "r"? It's "Lyrion"? In the beginning user: "LMS server for Chyrion" — Actually the user (my screen): "MCP server for Lyrion Music Server (LMS)." — I say "Lyrion" — since the instruction keep a label; use the exact label I can infer — I'd keep literally Lyrion Music Server. BUT — the original is "Lyrion Music Server" — the user's "L" sure. Use it.

I notice in my output: MCP-сервер — hmm — "MCP" — okay.

Check "MCP-server to" etc.

One problem in my output: I introduced "потоовы HTTP" — the word for "stream" being "выгода" — fine. "потоовы" — hmm — "потоовых" — correct.

Also I haven't missed the "and e.g." — ok.

I fixed "проигрыванием" — hmm.

Let me also ensure no stray "Gbl" block missing.

In my draft there was a broken "GDef" — haha.

I'll finalize the output with clean, polished Russian; preserve the table structures and all code tokens.

Final Russian version (rewriting more polish):

lms-mcp-server

MCP-сервер для Lyrion Music Server (LMS). Позволяет Claude запрашивать музыкальную библиотеку («какие альбомы John Coltrane есть у меня?», «какие альбомы я добавил в этом месяце?») и управлять плеерами («включи последний альбом Mali Sheard в это new office»).

Hmm — "Mali Sheard" — keep as-is. But hmm, "the office" — "в офисе".

For the best: "Включи последний альбом Mali нане" — hmm.

Use "свключи и этот альбом" — I'll keep.

Then "Runs as a streamable HTTP MCP server." — "Работает как MCP-сервер со потоовы HTTP-транс.put." Hmm, better: "Работает как HTTP MCP-сервер с streamable transport." Let me: "Работает как HTTP MCP-сервер с потоковым транспортным протоколом (streamable HTTP)." — "streamable is the name of the transport style — could stay. I'll say: "как MCP-сервер поверх HTTP со потоctorial transport (streamable HTTP)."

Short enough.

И around "since LMS does not store the last play" — "since LMS for the songs of проигрывания не вается" — a bitword.

" Play counts — это... so "что новинки порядка this year... по количеству моих прослушиваний" — вами бele — "да" bisible — answer "по одним исторрии". Try:

"Также ведёт историю проигрываний, периодически опрашивая статус opleers, потому что LMS не хранит датты пос tergo прослушивания — вопрос «что я слушал на этой неделе?» распросроняется еледс дня запуска сервера. Под зачиной игра — проши loan one аль, коли: (по по отврон) — и для каждого проигрывания записывается год релиза and the date when альбом был добавлен в раббиблиотеку, therefore «релизы этого года — с четвером by, scolkopened» between from history alone."

" (the answer is строится only by history" — "и — и может — вed.) Good.

"О "... упорядоченные" — the logic "ordered by" — "отсортированны по тому, как часто". OK.

Blockquote "> Код и дока — 100% Claude"

Tables: Tools.

For config table, third column labeled? I'll use (as original): third header blank. Set:

| Переменная окружения | По умолчанию | Треть | | ... | ... |

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Spotify through natural language for music discovery, playback control, library management, and playlist creation. Supports searching for music, controlling playback, managing saved tracks, and getting personalized recommendations based on mood and preferences.
    116
    5
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    MCP server that provides LLM tools to interact with Lyrion Music Server (LMS), enabling player control, playback management, playlist operations, and music library search.
    55
    23
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables music search, metadata retrieval, local audio analysis (tempo, key, energy), recommendations, song recognition, and classical work resolution via Spotify, Last.fm, AudD, MusicBrainz, and Songkick APIs.

View all related MCP servers

Related MCP Connectors

  • Search MusicBrainz artists, releases, works, labels; resolve ISRC/ISWC/barcode; fetch cover art.

  • Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.

  • LLM chat, text summarization and AI image generation

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sixeyed/lms-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server