lmms-mcp
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., "@lmms-mcpCreate a new LMMS project, set tempo to 90 BPM, and add a basic drum pattern."
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.
LMMS MCP Server
An MCP (Model Context Protocol) server for LMMS - the free, open-source digital audio workstation. Lets AI agents create, modify, and save LMMS music projects programmatically.
Features
Create & save LMMS projects (
.mmpzcompressed,.mmpXML)Add tracks: Instrument, Sample, Pattern (Beat/Bassline), Automation
Add notes with MIDI key, position, velocity, and panning
Effects: 18 built-in effects on tracks and mixer channels (delay, reverb, EQ, compressor...)
ZynAddSubFX presets: Load any of ~950 factory instruments (.xiz), tune parameters
Arrangement: Place patterns, BB clips and audio clips on the song timeline
Automation: Tempo ramps, volume swells, panning curves - linked to real LMMS models
Mixer control: Create channels, set volume, name channels
Song settings: Tempo (BPM), time signature, master volume/pitch
Musical utilities: Note name conversion, scale generation, tick/bar conversion
Full project inspection: Read tracks, patterns, notes, mixer channels
Related MCP server: FL Studio MCP Server
Installation
pip install lmms-mcpOr from source:
git clone https://github.com/TypeWolf/lmms-mcp.git
cd lmms-mcp
pip install -e .Requirements
Python 3.10+
An MCP host (opencode, Claude Desktop, Cursor, etc.)
Quick Start
With opencode
Add to your opencode.json:
{
"mcp": {
"lmms": {
"type": "local",
"command": ["python", "-m", "lmms_mcp"],
"environment": {
"LMMS_PROJECTS_DIR": "/path/to/your/lmms/projects"
}
}
}
}With Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"lmms": {
"command": "python",
"args": ["-m", "lmms_mcp"],
"env": {
"LMMS_PROJECTS_DIR": "/path/to/your/lmms/projects"
}
}
}
}Run directly
python -m lmms_mcpTools
Project Management
Tool | Description |
| Create a new empty LMMS project |
| Load an existing |
| Save the current project |
| Get project overview (tempo, tracks, mixer) |
| Get raw XML of the project |
Track Operations
Tool | Description |
| Add a synthesizer/sampler track |
| Add an audio sample track |
| Add a parameter automation track |
| Add a beat/bassline pattern track |
| Remove a track by index |
| Get detailed track information |
| List all tracks with summary |
| Set track volume (0-200) |
| Set track panning (-100 to +100) |
| Mute/unmute a track |
| Solo/unsolo a track |
Notes & Patterns
Tool | Description |
| Add a note by MIDI key number |
| Add a note by name (e.g. "C4", "A#3") |
| Add multiple notes at once |
Mixer
Tool | Description |
| Create a new mixer channel |
| List all mixer channels |
| Set channel volume |
| Rename a channel |
Song Settings
Tool | Description |
| Set BPM (10-999) |
| Set time signature (e.g. 4/4, 3/4) |
| Set master volume (0-200) |
| Set master pitch (-12 to +12 semitones) |
Effects (FX Chain)
Tool | Description |
| Add a built-in effect to a track or mixer channel |
| Remove an effect by name or chain position |
| Enable/bypass an effect without removing it |
| List all effects on a track or mixer channel |
ZynAddSubFX Presets & Parameters
Tool | Description |
| Browse ~950 factory presets (.xiz) by category |
| Load a preset into a zynaddsubfx track |
| Set portamento, filter, FM gain, resonance etc. |
Arrangement (Song Editor Timeline)
Tool | Description |
| Place an empty pattern clip on an instrument track |
| Trigger a BB pattern at a given time |
| Place an audio file clip on a sample track |
| Assign/replace the audio file on sample clips |
| Move a clip to a new position |
| Delete a clip at a position |
| Full timeline overview of all clips |
Automation
Tool | Description |
| Create automation curves for tempo, master volume/pitch, track volume/panning and mixer channel volume |
LMMS App Integration
Tool | Description |
| Detect installed LMMS version + available plugins |
| Export to WAV/FLAC/OGG/MP3 via headless LMMS render |
The server reads and writes project files directly - it never launches the LMMS GUI. The installed LMMS is only used for: preset discovery, plugin availability checks (warns about plugins your version lacks, e.g. SlicerT/Xpressive require LMMS 1.3+) and audio rendering.
Custom Plugins & VST
Tool | Description |
| Dynamically list ALL installed plugins (incl. custom ones) |
| Find VST .dll files in a folder |
| Add a track hosting a VST plugin (Vestige) |
Custom LMMS plugins dropped into the plugins folder are detected automatically and can be used directly by name - no server update needed.
Utilities
Tool | Description |
| Convert note name to MIDI number |
| Convert MIDI number to note name |
| Convert bars to ticks |
| Convert ticks to bars |
| Generate a musical scale |
Resources
URI | Description |
| Current project information |
| All tracks in the project |
| All mixer channels |
| Raw project XML |
| Available LMMS instruments |
| Available LMMS effects |
| MIDI note name mapping |
| Available musical scales |
Prompts
Name | Description |
| Create a song structure with drums, bass, melody |
| Generate a drum pattern (four-on-the-floor, breakbeat, etc.) |
| Generate a melody in a given scale |
| Mix and arrange the current project |
| Export/save the project |
LMMS Concepts
Concept | Value |
Ticks per bar | 192 (in 4/4 time) |
Default tempo | 140 BPM |
Note 60 | C4 (middle C) |
Note 69 | A4 (440 Hz) |
Volume range | 0-200 (100 = normal) |
Panning range | -100 (left) to +100 (right) |
Track type 0 | Instrument |
Track type 1 | Pattern (Beat/Bassline) |
Track type 2 | Sample |
Track type 5 | Automation |
Available Instruments
All built-in LMMS instruments (verified against LMMS source). LMMS has no plugin download mechanism - only these can be used:
Plugin ID | Name |
| Three-oscillator subtractive synth (default) |
| Kick drum synth |
| Audio file player/sampler |
| Additive organ synth |
| Physical modeling mallets (STK) |
| TB-303 style acid bass |
| Powerful 3-oscillator polyphonic synth |
| Game Boy sound chip emulator |
| NES 8-bit sound chip emulator |
| Commodore 64 SID chip emulator |
| Retro sound effect generator |
| OPL3 FM synthesizer |
| 4-oscillator wavetable-style synth |
| Expressive mono lead synth |
| ZynAddSubFX powerful feature-rich synth |
| SoundFont (.sf2) sample player |
| Vibrating string physical model |
| Bit-crushed wavetable synth |
| GUS patch sampler |
| GIG sample library player |
| Beat slicer for audio loops |
| VST plugin host (Windows only) |
Available Effects
Built-in LMMS effects for add_effect: amplifier, bassbooster,
bitcrush, compressor, crossovereq, delay, dispersion,
dualfilter, dynamicsprocessor, eq, flanger, frequencyshifter,
multitapecho, reverbsc, slewdistortion, stereoenhancer,
stereomatrix, waveshaper.
Typical chains:
Lead synth:
delay->reverbscVocals:
eq->compressor->reverbscMaster bus:
eq->compressor->stereoenhancer
Environment Variables
Variable | Default | Description |
|
| Default directory for saving projects |
| auto-detected | Path to ZynAddSubFX presets folder ( |
| auto-detected | Path to |
Configuration
opencode.json
{
"mcp": {
"lmms": {
"type": "local",
"command": ["python", "-m", "lmms_mcp"],
"cwd": ".",
"enabled": true,
"environment": {
"LMMS_PROJECTS_DIR": "C:\\Users\\you\\Music\\LMMS\\Projects"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"lmms": {
"command": "python",
"args": ["-m", "lmms_mcp"],
"env": {
"LMMS_PROJECTS_DIR": "/home/you/music/lmms/projects"
}
}
}
}Development
# Clone and install
git clone https://github.com/TypeWolf/lmms-mcp.git
cd lmms-mcp
pip install -e ".[dev]"
# Run tests
pytest
# Run in development mode
mcp dev src/lmms_mcp/server.pyLicense
MIT License - see LICENSE for details.
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
Links
LMMS - The DAW this server controls
MCP Protocol - Model Context Protocol specification
MCP Python SDK - Official Python SDK
opencode - AI coding assistant with MCP support
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 Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to control FL Studio through MIDI communication, providing transport control, mixer adjustments, channel rack manipulation, plugin parameter automation, and piano roll note editing capabilities.105MIT
- AlicenseNot gradedqualityCmaintenanceReal-time AI-assisted music production, advanced composition, mixing, and VST coordination for FL Studio via bidirectional MIDI & WebSockets, exposing over 100 tools for comprehensive DAW control.8MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to control Reaper DAW by parsing .rpp project files and generating Lua ReaScripts for project-level tasks.
- AlicenseBqualityAmaintenanceEnables AI agents to control a browser-based digital audio workstation (openDAW) for music production, including track creation, effects, MIDI, automation, and rendering.100Apache 2.0
Related MCP Connectors
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Create and track AI music videos and audio-reactive visuals from songs.
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/TypeWolf/lmms-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server