dnb-crate
Enriches track metadata by looking up releases, recordings, and published BPM/key information from MusicBrainz to improve the local catalog.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dnb-crateScan my DnB library and list tracks missing BPM or key."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DnB Crate MCP
Local-first catalog for a private drum & bass library. An MCP host (Cursor, Codex, MCP Inspector) talks to a stdio server; the same domain services are also available from a CLI. The app indexes a local crate, analyzes tracks (BPM, grid, key, sections, descriptors), plans a deterministic one-hour set, and renders a gapless 24-bit FLAC with equal-power crossfades plus beat-aligned phrase mixes and bass swaps.
The language model interprets requests. This application owns scanning, storage, search, and validation.
Prerequisites
Node.js 24+ (the version used at repo init was 24.16.0)
pnpm 11+
A folder of audio you own or may access (
.wav,.flac,.mp3,.m4a,.aiff)FFmpeg and ffprobe on
PATHfor rendering (seedocs/rendering.mdanddocs/analysis.md). Status tools report whether they are present.
Related MCP server: rekordbox-mcp
Setup
pnpm install
copy dnb-crate.config.example.json dnb-crate.config.jsonEdit dnb-crate.config.json so libraryRoots points at your music folder and outputRoot points at a directory that is not inside that library. Both dnb-crate.config.json and data/ are gitignored.
Alternatively, use environment variables (see .env.example).
CLI
pnpm cli db:migrate
pnpm cli library:scan
pnpm cli library:scan --dry-run
pnpm cli library:stats
pnpm cli track:search --query "Technimatic" --limit 10
pnpm cli analysis:start --track-id UUID --wait
pnpm cli analysis:get --track-id UUID
pnpm cli analysis:compare --track-id UUID
pnpm cli analysis:report
pnpm cli analysis:cue-preview --track-id UUID --cue drop
pnpm cli transition:plan --from UUID --to UUID --bars 32
pnpm cli plan:create --name "Liquid hour" --duration-ms 3600000 --seed 1 --end-query "Nightfall"
pnpm cli plan:list
pnpm cli plan:get --id UUID
pnpm cli plan:validate --id UUID
pnpm cli render:start --plan-id UUID --wait
pnpm cli render:status --id UUID
pnpm cli render:manifest --id UUIDJSON is written to stdout. Diagnostics go to stderr.
MCP server (stdio)
Stdout is reserved for JSON-RPC. Do not console.log in this process.
pnpm mcpCursor
In your user MCP config (path varies by Cursor version), add a server without hardcoding someone else’s disk layout:
{
"mcpServers": {
"dnb-crate": {
"command": "npx",
"args": ["tsx", "apps/mcp-server/src/main.ts"],
"cwd": "PATH_TO_THIS_REPO",
"env": {
"DNB_CRATE_CONFIG": "PATH_TO_THIS_REPO/dnb-crate.config.json"
}
}
}
}Use pnpm exec tsx instead of npx tsx if you prefer the workspace binary.
MCP Inspector
npx @modelcontextprotocol/inspector pnpm mcpSet the same DNB_CRATE_* environment variables in the Inspector session. Confirm tools/list, call scan_library, then search_tracks.
Tools (33)
Tool | When to use |
| Health: database, root count, ffmpeg/ffprobe, enrichment flags. No secrets or paths. |
| Re-index configured roots. Optional |
| Filter the catalog, including descriptor ranges and genres. Max 50, cursor pages. |
| One track UUID, including cue points. |
| Energy, rating, moods, genres, album/label/date/isrc, plus manual BPM/key. |
| Counts, coverage, and descriptor percentiles. |
| Replace manual cue points; optional beat anchor. |
| Queue analysis by ids or scope ( |
| Poll analysis jobs. |
| Beat grid, confidence, canonical vs analyzed BPM/key, descriptor pack. |
| Per-engine BPM/key/sections plus the five descriptor sliders. |
| Intro/build/drop/breakdown/outro labels. |
| Engine agreement vs published/manual BPM. |
| 8-second WAV around a detected cue. |
| MusicBrainz / Deezer / AcoustID lookup. Optional |
| Poll enrichment jobs. |
| Match counts, needsReview, published BPM writes, disagreements, duplicates. |
| Which tracks lack BPM/key/energy/file. A |
| Rank candidates (BPM/Camelot/energy/tags/descriptors). |
| Deterministic draft from structured constraints, including descriptor/genre filters. |
| Load a saved plan. |
| Errors vs warnings plus energy/duration diagnostics. |
| Explicit replace/trim/transition/rate/applyTransition/reorder edits. |
| Bounded list. |
| Requires |
| Rank phrase-mix / bass-swap / crossfade proposals for a pair. |
| Feasibility of a concrete template (grids, rates, cues). |
| Queue a 30–60s FLAC preview; optional |
| Queue a full 24-bit FLAC render. Returns a job id immediately. |
| Poll progress 0–1 and terminal state. |
| Bounded list of preview/full jobs. |
| Requires |
| Fingerprints, trims, LUFS, true peak, checksum after success. |
Resources: dnbcrate://tracks/{trackId}, dnbcrate://tracks/{trackId}/analysis, dnbcrate://set-plans/{setPlanId}, dnbcrate://renders/{renderJobId}/manifest.
Prompt: build-dnb-set (optional; the tool workflow works without it).
Scoring details: docs/scoring.md. Analysis / templates: docs/analysis.md. Rendering / loudness / jobs: docs/rendering.md. Ear-check lessons for later mixes: docs/mixing-lessons.md. Example plan JSON: docs/examples/one-hour-plan.example.json.
Tests
pnpm test
pnpm typecheck
pnpm lint
pnpm format:checkTests generate tiny sine-wave fixtures. They never read a private library.
Layout
packages/domain— types, config, errors, key normalizationpackages/catalog— SQLite, scanner, search, set plans, analysis jobs, render jobspackages/audio-analysis— envelope BPM/grid analyzer, click-track fixturespackages/audio-renderer— FFmpeg adapter, equal-power / phrase-mix / bass-swap, loudnessapps/cli— deterministic administrationapps/mcp-server— thin MCP adaptersdocs/— decisions, progress, tool contracts, spec
Source-file safety
Source music is read-only. Generated files go under outputRoot. Tools never accept arbitrary paths, SQL, or shell commands.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
TheAudioDB MCP — community music metadata database.
Hosted MCP tools for FFmpeg-style video and audio processing through FFMPEG API.
MCP server for Producer/Riffusion AI music generation
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for rekordbox DJ database access. Provides read-only querying of tracks, playlists, and DJ session history from encrypted rekordbox SQLite databases using pyrekordbox.2594PythonMIT
- AlicenseAqualityDmaintenanceA comprehensive MCP server for rekordbox database management with real-time database access, enabling track search, playlist operations, library analytics, and DJ history retrieval.31MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to programmatically edit, analyze, and export audio projects through MCP tools, including multi-track editing, effects, transcription, and semantic search.1-
- AlicenseCqualityDmaintenanceMCP server for DJs using Pioneer Rekordbox, offering 33 tools for library management, smart playlists, DJ analytics, and safe mutations with complete undo support.33MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/arildgrimstveit/dnb-crate'
If you have feedback or need assistance with the MCP directory API, please join our Discord server