sidecaramel
Read and inspect Serato DJ Pro metadata from Claude — cues, loops,
BPM, beatgrids, FLIP, .crate and .serato-stems — with
confirm-gated writers.
What it is
sidecaramel is a local MCP server that exposes the sidecaramel Serato toolkit to Claude. It reads the Serato tags embedded in your audio files and your Serato library, and can render or rewrite specific artifacts. It runs entirely on your machine: no account, no login, no network calls at runtime.
Install
One-click (Claude Desktop): download sidecaramel.mcpb
from the releases, then
Settings → Extensions → Advanced settings → Install Extension… and pick it.
It uses the uv runtime, so the host provisions Python and dependencies per
platform — nothing to pip-install. First launch fetches the environment once
(needs network); after that it starts from cache.
Requires a Claude Desktop build with uv-runtime support.
Manual / other hosts: pip install "sidecaramel[connector]" and run
sidecaramel-mcp — see the
README.
Requirements & authentication
- Claude Desktop (uv-runtime capable) — or any stdio MCP host.
- No authentication, no API keys, no account. The tools act on local files you name.
- No paid plan is required by the extension itself.
Example prompts
Inspect a track
"Read the Serato metadata for ~/Music/track.mp3 and
summarise its BPM, cue points and loops."
→ Returns decoded BPM, beatgrid, cues, loops and FLIP data as JSON.
List the raw blobs
"List every Serato tag blob embedded in
~/Music/track.mp3 with its byte size."
→ Returns the Markers2 / BeatGrid / Overview / … blobs and sizes — the ground truth of what a write must preserve.
Browse the library
"List the first 20 tracks in the Serato database at
~/Music/_Serato_/database V2."
→ Returns track paths plus a total count, paginated.
Tools
| Read-only | Write (gated) |
|---|---|
| serato_track_metadata serato_blob_inventory serato_sidecar_info serato_library_tracks serato_library_format |
serato_render_overview serato_extract_stems serato_write_overview serato_build_stems_sidecar serato_wipe_blobs serato_library_consolidate |
Read tools are annotated read-only. Every write tool is annotated destructive, refuses to run while Serato DJ is open (fail-closed when that can't be determined), and the destructive ones need an explicit confirmation argument.
Known limits
- Overview render / stems extraction shell out to
ffmpeg; without it those tools report an error and the rest keep working. - The write tools can only run while Serato is closed — by design.
- Byte-for-byte rewrite fidelity is verified for the documented formats; see the README's "Byte-for-byte fidelity" section.
Security & privacy
- No telemetry, no analytics, no network at runtime.
- No credentials or secrets are handled, so there is nothing to redact or lock down.
- Destructive operations are gated (Serato-running check + explicit confirmation).
- Read/write intent is exposed to the host via per-tool annotations.
- Full policy: Privacy Policy · Security notes.
Reviewer notes
There is no account to provision. To exercise the tools, point them at
any Serato-tagged audio file (an MP3 tagged in Serato DJ works), e.g. ask
"Read the Serato metadata for <path>". For the library tools, use a
_Serato_/database V2 file or a .crate. The repository's test
fixtures under sidecaramel/tests/fixtures/ also serve as sample inputs.
Support
Issues and questions: github.com/rdkrl/sidecaramel/issues.