Digitakt MIDI MCP Server

Digitakt MIDI MCP Server

Enables control of the Elektron Digitakt II drum machine through MIDI commands. Supports triggering drum sounds, adjusting parameters, switching patterns, and sending note sequences programmatically.

Category
Visit Server

README

Digitakt MIDI MCP Server

An MCP (Model Context Protocol) server for controlling the Elektron Digitakt II via MIDI.

Features

  • Send MIDI Notes: Trigger drum sounds on specific tracks
  • Control Parameters: Adjust filters, envelopes, and other parameters via CC messages
  • Program Changes: Switch between patterns
  • Note Sequences: Send rhythmic patterns programmatically

Installation

  1. Create and activate a virtual environment:
python3 -m venv venv
source venv/bin/activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Make sure your Digitakt II is connected via USB with Overbridge

Usage

Running the Server Manually

source venv/bin/activate
python server.py

Configuring with Claude Desktop

Add this to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "digitakt-midi": {
      "command": "/Users/feamster/src/digitakt-midi-mcp/venv/bin/python",
      "args": ["/Users/feamster/src/digitakt-midi-mcp/server.py"]
    }
  }
}

Then restart Claude Desktop.

Available Tools

send_note

Send a MIDI note to trigger drums on the Digitakt.

Parameters:

  • note (required): MIDI note number (0-127). For Digitakt: 60=C3 (Track 1), 61=C#3 (Track 2), etc.
  • velocity (optional): Note velocity (1-127), default 100
  • duration (optional): How long to hold the note in seconds, default 0.1
  • channel (optional): MIDI channel (1-16), default 1

Example:

Play kick drum on track 1

send_cc

Send a Control Change message to adjust Digitakt parameters.

Parameters:

  • cc_number (required): CC number (0-127)
  • value (required): CC value (0-127)
  • channel (optional): MIDI channel (1-16), default 1

Common CC Numbers for Digitakt:

  • 74: Filter Frequency
  • 71: Filter Resonance
  • 73: Attack
  • 75: Decay
  • 16-23: Track levels (16=Track 1, 17=Track 2, etc.)

Example:

Set filter frequency to maximum on track 1

send_program_change

Switch to a different pattern on the Digitakt.

Parameters:

  • program (required): Pattern number (0-127)
  • channel (optional): MIDI channel (1-16), default 1

Example:

Switch to pattern 5

send_note_sequence

Send a sequence of notes with timing.

Parameters:

  • notes (required): Array of [note, velocity, duration] triplets
  • delay (optional): Time between notes in seconds, default 0.25
  • channel (optional): MIDI channel (1-16), default 1

Example:

Play a simple 4-on-the-floor kick pattern

send_sysex

Send a System Exclusive (SysEx) message to the Digitakt for advanced control and pattern programming.

Parameters:

  • data (optional): Array of bytes (0-127) to send as SysEx data. F0 and F7 bytes are added automatically.
  • hex_string (optional): Alternative to data - provide SysEx as hex string (e.g., "00203C...")

Elektron Manufacturer ID: 0x00 0x20 0x3C

Example:

Send a custom SysEx message to the Digitakt

Note: The exact SysEx format for Digitakt pattern programming is not publicly documented by Elektron. You can:

  • Use this tool to send raw SysEx data you've captured or reverse-engineered
  • Capture SysEx dumps from Elektron Transfer software
  • Experiment with the format by analyzing saved .syx files

request_sysex_dump

Request a SysEx data dump from the Digitakt (pattern, sound, kit, or project).

Parameters:

  • dump_type (required): Type of dump - "pattern", "sound", "kit", or "project"
  • bank (optional): Bank number (0-15)
  • pattern_number (optional): Pattern number within bank (0-15)

Example:

Request a pattern dump from bank 0, pattern 0

Important: This sends a best-guess dump request format. The exact protocol is not publicly documented. You may need to:

  • Monitor SysEx responses using MIDI monitoring software
  • Use Elektron Transfer for official dumps
  • Adjust the command bytes based on experimentation

Resources

midi://ports

Lists all available MIDI input and output ports on the system.

midi://digitakt/status

Shows the current connection status to the Digitakt MIDI ports.

Digitakt MIDI Reference

Note Numbers for Tracks

  • Track 1: C3 (60)
  • Track 2: C#3 (61)
  • Track 3: D3 (62)
  • Track 4: D#3 (63)
  • Track 5: E3 (64)
  • Track 6: F3 (65)
  • Track 7: F#3 (66)
  • Track 8: G3 (67)

Common CC Parameters

Check the Digitakt manual for the full CC map. Some common ones:

  • 16-23: Track levels
  • 71: Filter Resonance
  • 74: Filter Frequency
  • 73: Attack
  • 75: Decay

Troubleshooting

MIDI device not found:

  • Make sure the Digitakt is connected via USB
  • Check that Overbridge is properly installed
  • Verify the device shows up in Audio MIDI Setup (macOS)

Permission errors:

  • On macOS, you may need to grant microphone permissions to Terminal/iTerm
  • Check System Preferences > Security & Privacy > Privacy > Microphone

Working with SysEx

The Digitakt supports SysEx for advanced operations, but Elektron hasn't published the detailed protocol specification. Here are some approaches to work with SysEx:

Capturing SysEx Data

  1. Using Elektron Transfer:

    • Use Elektron Transfer to save patterns/sounds as .syx files
    • Analyze these files to understand the format
    • Use send_sysex with the captured data
  2. MIDI Monitoring:

    • Use tools like MIDI Monitor (macOS) or MIDI-OX (Windows)
    • Capture SysEx dumps from the device
    • Analyze the byte structure
  3. Reverse Engineering:

    • Study community projects like the Analog Rytm SysEx library
    • Experiment with sending modified SysEx data
    • Document your findings

SysEx Structure

All Elektron SysEx messages follow this basic structure:

F0                    - SysEx start byte
00 20 3C              - Elektron manufacturer ID
[device_id]           - Device identifier
[command]             - Command byte
[data...]             - Message-specific data
F7                    - SysEx end byte

Tips for Pattern Programming

  • Start by capturing existing patterns via Transfer
  • Compare multiple patterns to identify fields
  • Test modifications carefully to avoid corrupting device memory
  • Always backup your projects before experimenting

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured