Lovely Composer MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LC_MUSIC_ROOT | No | Force the music library root instead of auto-detecting it. | |
| LC_MCP_PROTOCOL_VERSION | No | Pin the negotiated MCP protocol revision. | 2025-06-18 |
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": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lc_statusA | Report the detected Lovely Composer installation, music folder root, whether it is writable, and the song data model (channels, pages, ticks, note range). Call this first. |
| lc_list_foldersA | List the song folders inside the Lovely Composer music root, with song counts and a few titles. |
| lc_list_songsB | List the songs (00..99) in one folder with title, speed, page count and note counts per channel. |
| lc_read_songA | Read a song and print its settings plus each channel as compact per-page patterns ("C5@2 . . E5@2 ..."), so you can inspect and edit existing music. |
| lc_create_songA | Create a new empty song file at //.jsonl. Fails if the song already exists unless force=true. Returns the usable tick range and an approximate BPM. |
| lc_write_pageA | Write one page of one channel from a compact pattern string — the main composing tool. One whitespace-separated token per tick starting at tick 0: "." or "R" = empty, "-" = hold the previous note, "<"/">" = hold with fade-in/fade-out, "C5" = note, "C5@25" = note with instrument preset 25. Optional modifiers: *volume(0-7) +effect(letter, e.g. +S slur) ^expression(0-F) ~pan(0-F) %envelope(0-F). Example: "C5@25 . . E5 . G5@25 . . - . . ." The page is replaced entirely. |
| lc_set_notesA | Place individual notes at exact (channel, page, tick) positions — use when a pattern string is awkward. Each event needs channel/page/tick plus note and either instrument (preset id or name) or chord (major/minor/sus4/aug/dim, chord track only). Optional volume/effect/expression/pan/envelope, or clear=true to empty that tick. Events that fail are reported and skipped. |
| lc_clear_pagesC | Erase every note in the given channels and pages (defaults to all of them). |
| lc_set_song_optionsC | Change song-level settings: title, editor, speed, page count, ticks per page, loop points, scale. |
| lc_list_instrumentsA | List every instrument preset (id + name), the note modifier syntax, the effect letters, and the available scales. Call this before composing so you pick real presets. |
| lc_copy_songA | Copy a song to another folder/slot (useful to start from an existing tune). Clears write protection. |
| lc_delete_songA | Delete a song file. Requires force=true; there is no undo. |
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 has a clear, distinct purpose: status, listings, read/create/write/set/clear/copy/delete operations are all separated by resource and action granularity. The closest pair, lc_write_page and lc_set_notes, is distinguished by bulk page replacement versus individual note placement, eliminating confusion.
All tools share the lc_ prefix and follow a verb_noun snake_case pattern (list_folders, read_song, create_song, etc.). The only deviation is lc_status, which uses a noun instead of a verb such as get_status, but the overall pattern remains highly predictable.
With 12 tools, the set is well-scoped for the domain: it covers environment inspection, navigation, song lifecycle, page/note editing, options, and instrument reference without redundancy or bloat. Each tool earns its place in a typical composition workflow.
The tool surface covers the full song lifecycle (create, read, edit, copy, delete), plus detailed editing (page patterns, individual notes, clearing) and reference data (instruments, scales). Minor gaps like a dedicated rename tool or an undo operation are non-critical and workaroundable via copy/delete.