lmms-mcp

lmms-mcp

Enables AI agents to create, modify, and save LMMS music projects programmatically, including tracks, notes, mixer control, effects, and song settings.

Category
访问服务器

README

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 (.mmpz compressed, .mmp XML)
  • 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

Installation

pip install lmms-mcp

Or 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_mcp

Tools

Project Management

Tool Description
create_project Create a new empty LMMS project
load_project Load an existing .mmpz or .mmp file
save_project Save the current project
get_project_info Get project overview (tempo, tracks, mixer)
get_project_xml Get raw XML of the project

Track Operations

Tool Description
add_instrument_track Add a synthesizer/sampler track
add_sample_track Add an audio sample track
add_automation_track Add a parameter automation track
add_pattern_track Add a beat/bassline pattern track
remove_track Remove a track by index
get_track Get detailed track information
list_tracks List all tracks with summary
set_track_volume Set track volume (0-200)
set_track_panning Set track panning (-100 to +100)
mute_track Mute/unmute a track
solo_track Solo/unsolo a track

Notes & Patterns

Tool Description
add_note Add a note by MIDI key number
add_note_by_name Add a note by name (e.g. "C4", "A#3")
add_notes_batch Add multiple notes at once

Mixer

Tool Description
add_mixer_channel Create a new mixer channel
get_mixer_channels List all mixer channels
set_mixer_channel_volume Set channel volume
set_mixer_channel_name Rename a channel

Song Settings

Tool Description
set_tempo Set BPM (10-999)
set_time_signature Set time signature (e.g. 4/4, 3/4)
set_master_volume Set master volume (0-200)
set_master_pitch Set master pitch (-12 to +12 semitones)

Effects (FX Chain)

Tool Description
add_effect Add a built-in effect to a track or mixer channel
remove_effect Remove an effect by name or chain position
toggle_effect Enable/bypass an effect without removing it
get_effect_chain List all effects on a track or mixer channel

ZynAddSubFX Presets & Parameters

Tool Description
list_zyn_presets Browse ~950 factory presets (.xiz) by category
load_zyn_preset Load a preset into a zynaddsubfx track
set_zyn_params Set portamento, filter, FM gain, resonance etc.

Arrangement (Song Editor Timeline)

Tool Description
place_pattern Place an empty pattern clip on an instrument track
place_bb_clip Trigger a BB pattern at a given time
place_sample_clip Place an audio file clip on a sample track
assign_sample_file Assign/replace the audio file on sample clips
move_clip Move a clip to a new position
delete_clip Delete a clip at a position
get_arrangement Full timeline overview of all clips

Automation

Tool Description
add_automation Create automation curves for tempo, master volume/pitch, track volume/panning and mixer channel volume

LMMS App Integration

Tool Description
get_lmms_info Detect installed LMMS version + available plugins
render_project 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
list_available_plugins Dynamically list ALL installed plugins (incl. custom ones)
scan_vst_directory Find VST .dll files in a folder
add_vst_track 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
note_name_to_key Convert note name to MIDI number
key_to_note_name Convert MIDI number to note name
bars_to_ticks_converter Convert bars to ticks
ticks_to_bars_converter Convert ticks to bars
generate_scale Generate a musical scale

Resources

URI Description
lmms://project/info Current project information
lmms://project/tracks All tracks in the project
lmms://project/mixer All mixer channels
lmms://project/xml Raw project XML
lmms://reference/instruments Available LMMS instruments
lmms://reference/effects Available LMMS effects
lmms://reference/note_names MIDI note name mapping
lmms://reference/scales Available musical scales

Prompts

Name Description
create_basic_song Create a song structure with drums, bass, melody
add_drum_pattern Generate a drum pattern (four-on-the-floor, breakbeat, etc.)
create_melody Generate a melody in a given scale
mix_and_arrange Mix and arrange the current project
export_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
tripleoscillator Three-oscillator subtractive synth (default)
kicker Kick drum synth
audiofileprocessor Audio file player/sampler
organic Additive organ synth
malletsstk Physical modeling mallets (STK)
lb302 TB-303 style acid bass
monstro Powerful 3-oscillator polyphonic synth
freeboy Game Boy sound chip emulator
nes NES 8-bit sound chip emulator
sid Commodore 64 SID chip emulator
sfxr Retro sound effect generator
opulenz OPL3 FM synthesizer
watsyn 4-oscillator wavetable-style synth
xpressive Expressive mono lead synth
zynaddsubfx ZynAddSubFX powerful feature-rich synth
sf2player SoundFont (.sf2) sample player
vibedstrings Vibrating string physical model
bitinvader Bit-crushed wavetable synth
patman GUS patch sampler
gigplayer GIG sample library player
slicert Beat slicer for audio loops
vestige 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 -> reverbsc
  • Vocals: eq -> compressor -> reverbsc
  • Master bus: eq -> compressor -> stereoenhancer

Environment Variables

Variable Default Description
LMMS_PROJECTS_DIR ~/Desktop/Media/lmms/AI-Projects Default directory for saving projects
LMMS_PRESETS_DIR auto-detected Path to ZynAddSubFX presets folder (data/presets/ZynAddSubFX)
LMMS_EXECUTABLE auto-detected Path to lmms.exe (for version/plugin checks and rendering)

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.py

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

Links

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选