MCP sever for controlling Elektron devices using LLMs
Overview
A Model Context Protocol (MCP) server that allows Claude and other MCP-compatible LLMs to interact with and control Elektron synthesizers via MIDI. - [x] Complete MIDI control interface for the Elektron Digitone synthesizer - [ ] Complete MIDI control interface for the Elektron Digitakt sampler - [x] Structured controllers for all Digitone sound engines: - [x] Wavetone (waveshaping synthesis) - [ ] FM Tone (FM synthesis) - [ ] FM Drum (percussive FM synthesis) - [ ] Swarmer (unison/swarm synthesis) - [x] Comprehensive parameter control for: - [x] All filter types - [x] MultiMode - [ ] Lowpass4 - [ ] Equalizer - [ ] LegacyLpHp - [ ] CombMinus - [ ] CombPlus - [ ] BaseWidth - [x] Amplitude and envelope settings - [x] Effects processing (delay, reverb, chorus, bit reduction, etc.
README
Elektron MCP
A Model Context Protocol (MCP) server that allows Claude and other MCP-compatible LLMs to interact with and control Elektron synthesizers via MIDI.
Features
- [x] Complete MIDI control interface for the Elektron Digitone synthesizer
- [ ] Complete MIDI control interface for the Elektron Digitakt sampler
- [x] Structured controllers for all Digitone sound engines:
- [x] Wavetone (waveshaping synthesis)
- [ ] FM Tone (FM synthesis)
- [ ] FM Drum (percussive FM synthesis)
- [ ] Swarmer (unison/swarm synthesis)
- [x] Comprehensive parameter control for:
- [x] All filter types
- [x] MultiMode
- [ ] Lowpass4
- [ ] Equalizer
- [ ] LegacyLpHp
- [ ] CombMinus
- [ ] CombPlus
- [ ] BaseWidth
- [x] Amplitude and envelope settings
- [x] Effects processing (delay, reverb, chorus, bit reduction, etc.)
- [ ] LFOs control
- [x] All filter types
- [x] MCP server exposing all synth parameters as tools for LLMs
- [x] Type-safe parameter validation using Pydantic
- [x] Modular architecture for easy extension to other Elektron devices
Demo
Watch Claude control the Elektron Digitone synthesizer in real-time:
Installation and Usage
Prerequisites
- Python 3.10+
- uv for package management
- An Elektron Digitone connected via USB
- Claude Desktop app (for full integration)
Installing Dependencies
uv is mandatory for this project so start by installing it:
For macOS:
brew install uv
For Windows:
Follow the instructions here
3. Installing with Claude Desktop
To use with Claude AI, add the MCP server configuration in Claude Desktop:
Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:
{
"mcpServers": {
"Digitone 2": {
"command": "uvx",
"args": ["elektron-mcp"]
}
}
}
Architecture
The library is designed with a clean, object-oriented architecture:
- Base Controllers: Common functionality abstracted into base classes
- Specialized Controllers: Dedicated controllers for each synth engine and module
- MCP Tools: Direct interface between LLMs and the synth’s parameters
- MIDI Interface: Reliable communication with Digitone hardware
Implementation Details
This library uses:
- FastMCP: For exposing synth controls to LLMs
- Pydantic models: For data validation, serialization, and type safety
- mido: For MIDI communication
Use Cases
- Allow Claude and other LLMs to create and modify sounds on the Digitone
- Programmatically control Digitone parameters for automated sound design
- Bridge between AI-generated music and hardware synthesis
Future Extensions
- Support for additional Elektron devices (Analog Four, Octatrack, etc.)
- Pattern sequencing and automation
- Sound preset management
- Additional synthesis parameters
Install
uvx elektron-mcpConfiguration
{
"mcpServers": {
"Digitone 2": {
"command": "uvx",
"args": ["elektron-mcp"]
}
}
}
