Decent-Sampler Drums MCP Server

by dandeliongold
Verified

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Schema

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
analyze_wav_samples

Analyze WAV files to get sample lengths and metadata. Use this tool to get accurate end markers for your samples to prevent looping issues in DecentSampler.

generate_drum_groups

Generate DecentSampler <groups> XML for drum kits.

Best Practices:

  • Group all samples for a drum piece (e.g., all kick mics) into a single group to prevent voice conflicts
  • Each sample should have start/end markers to prevent looping issues
    • Use the analyze_wav_samples tool to get accurate sample lengths: analyze_wav_samples(["Kick_Close_Soft.wav"]) -> {"sampleLength": 60645} Then use start="0" end="60645" in your sample definition
  • When using multiple mic positions (e.g., Close, OH, Room), include them all in the same group
  • Use velocity layers within a group to control dynamics

Example Structure: { "drumPieces": [{ "name": "Kick", "rootNote": 36, "samples": [ // All mic positions for soft velocity {"path": "Kick_Close_Soft.wav", "start": 0, "end": 60645}, // Length from analyze_wav_samples {"path": "Kick_OH_L_Soft.wav", "start": 0, "end": 60000}, {"path": "Kick_OH_R_Soft.wav", "start": 0, "end": 60000}, // All mic positions for medium velocity {"path": "Kick_Close_Medium.wav", "start": 0, "end": 70162}, // Length from analyze_wav_samples ... ] }] }

Workflow:

  1. First use analyze_wav_samples to get accurate lengths for all your WAV files
  2. Use those lengths to set the end markers in your drum pieces configuration
  3. Pass the complete configuration to generate_drum_groups to create the XML