library
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHADOW_LIBRARY_DB | No | Overrides the default library database path (~/Documents/ShadowRoom/_library/library.db). | ~/Documents/ShadowRoom/_library/library.db |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| scan_folderB | Index/refresh a folder of audio files into the library (fingerprint = size + mtime + head/tail 64KB hash; only changed files are re-read). |
| list_tracksA | Search the library: query (title/artist/album), bpm range, camelot code, genre tags, limit/offset. |
| track_detailC | Full row for one track (tags, BPM/key/camelot, energy, 64-bucket peaks, crates). |
| analyze_missingA | Fill in missing BPM/key by running the local analysis plugin (detect_tempo/detect_key) over the files that lack them. |
| crate_createA | Create a named crate (idempotent: same name returns the existing id). |
| crate_listA | List crates with their track counts. |
| crate_addA | Append tracks to a crate (keeps insertion order; duplicates are skipped). |
| statsB | How many tracks, how many still missing BPM/key, crates, db size. |
| import_historyA | READ-ONLY import of Rekordbox (master.db opened read-only) / Serato crates into sets/history tables. Never writes your DJ libraries. |
| learn_preferencesA | Learn a preference model from imported sets: genre weights, ΔBPM, Camelot moves, energy steps, set shape. Explainable, one-click forgettable. |
| preference_summaryB | One human-readable Chinese sentence about what you favour and how you transition (falls back to defaults when there is not enough history). |
| forget_preferencesB | Wipe the learned model (optionally also sets/history); summary returns to the cold-start default. |
| import_rekordbox_xmlA | Import a Rekordbox 'Export Collection in xml' file (6.3.0+, plaintext): tracks with BPM/key/genre, cues, playlists → sets. Read-only on the XML. |
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 13 tools
Most tools are clearly distinct, but the two import tools (import_history and import_rekordbox_xml) could be confused despite different input formats. Preference and crate tools are well-separated.
Most tools follow verb_noun pattern (e.g., scan_folder, list_tracks), but 'stats' and 'preference_summary' deviate, breaking the consistency slightly.
13 tools is within the well-scoped range for a library management server, covering imports, preferences, crates, analysis, and stats without excess.
Core workflows are covered (import, scan, search, detail, analysis, crate management, preferences), but there are no update/delete tools for tracks or crates, leaving minor gaps.