https://github.com/zerubeus/elektron-mcp
MCP sever for controlling Elektron devices using LLMs
https://github.com/zerubeus/elektron-mcp
generative-ai llm mcp python
Last synced: 4 months ago
JSON representation
MCP sever for controlling Elektron devices using LLMs
- Host: GitHub
- URL: https://github.com/zerubeus/elektron-mcp
- Owner: zerubeus
- Created: 2025-03-22T10:57:24.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-17T20:34:53.000Z (about 1 year ago)
- Last Synced: 2026-02-14T12:36:08.708Z (5 months ago)
- Topics: generative-ai, llm, mcp, python
- Language: Python
- Homepage:
- Size: 123 KB
- Stars: 93
- Watchers: 4
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-mcp-servers - **elektron-mcp** - MCP sever for controlling Elektron devices using LLMs `http` `llm` `git` `github` `python` `pip install git+https://github.com/zerubeus/elektron-mcp` (📦 Other)
- metorial-index - Elektron Digitone Controller - Facilitates real-time MIDI control and programmatic sound design for Elektron Digitone synthesizers, enabling interactions through AI models. Generate and modify various sound designs using the Digitone's capabilities. (Content Creation)
- awesome-mcp-servers - Elektron MCP - MCP server for controlling Elektron music devices using LLMs. ([Read more](/details/elektron-mcp.md)) `Elektron` `Music` `Hardware Synth` (Smart Home & IoT Mcp Servers)
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.
#### If you have a Moog Sub37/Subsequent37, check out our dedicated MCP server for it at [moog-sub37-mcp](https://github.com/zerubeus/moog-sub37-mcp).
#### A web-based version of this MCP server can be found at [senthgenie.com](https://www.synthgenie.com/). (You can ask for API key for free on discord)
#### If you want help or would like to contribute to development, please join our [Discord community](https://discord.gg/ZFuSuegBMS).
# Prompt examples
```
"Use Digitone MCP to design an evolving dark pad using the Wavetone machine on track 1."
"Use Digitone MPC to design a Dark thick pad using Wavetone machine on track 1."
```
Only Wavetone machine is supported for now, other machines will be added soon, stay tuned!
## Features
- [x] Complete MIDI control interface for the Elektron Digitone synthesizer
- [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.)
- [x] LFOs control
- [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:
[](https://www.youtube.com/watch?v=EXf6lOTjla8)
## Installation and Usage
### Prerequisites
- Python 3.10+
- [uv](https://github.com/astral-sh/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:
```bash
brew install uv
```
#### For Windows:
Follow the instructions [here](https://docs.astral.sh/uv/getting-started/installation/)
### 3. Installing with Claude Desktop
To use with Claude AI, add the MCP server configuration in Claude Desktop:
⚠️ **Important**: You don't need to clone the repository or install the packages, all you need is to add the MCP server configuration to your claude_desktop_config.json file the MPC server is already published on pypi.
Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:
```json
{
"mcpServers": {
"Digitone 2": {
"command": "uvx",
"args": ["elektron-mcp"]
}
}
}
```
## 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