Metadata-Version: 2.4
Name: iflow-mcp_zerubeus-elektron-mcp
Version: 0.2.4
Summary: MPC to control Elektron machines (Digitakt 2, Digitone 2)
Project-URL: Homepage, https://github.com/zerubeus/elektron-mcp
Project-URL: Bug Tracker, https://github.com/zerubeus/elektron-mcp/issues
Author-email: zerubeus <zerubeus@gmail.com>
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.12
Requires-Dist: mcp[cli]>=1.5.0
Requires-Dist: mido>=1.3.1
Requires-Dist: pydantic>=2.10.6
Requires-Dist: python-rtmidi>=1.5.7
Description-Content-Type: text/markdown

# 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:

[![Claude controlling Elektron Digitone](https://img.youtube.com/vi/EXf6lOTjla8/0.jpg)](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
