Ableton Mcp Lofifren

by LofiFren

3 213 downloads Not rated yet MIT
GitHub

About

Fork of ahujasid/ableton-mcp adding a 33-personality style system, ~35 extra MCP tools, batch commands, and arrangement-view BETA

Details

License
MIT

Explore

- Two-way communication: Connect Claude AI to Ableton Live through a socket-based server
- One-call session bootstrap: setup_session creates a whole project (tempo, time sig, tracks, instruments, mix) in a single round-trip
- Batched commands: send N commands at once with atomic undo via batch_commands
- 33 personalities, 4 roles: solo / comp / bass / drums in the style of Coltrane, Bill Evans, Jaco, Questlove, Timbaland, Dr. Dre, Metro Boomin, etc. — BPM-aware, blendable
- Track manipulation: Create, name, mute, solo, arm, delete, and mix MIDI/audio tracks
- Devices: Read every device's parameter list with min/max values; set parameters by raw Live value
- Instrument and effect selection: Search the browser by name, or load with a single composite call
- Clip creation and editing: Create, edit, read, duplicate (cross-track), resize, loop, and delete MIDI clips and notes (with auto-extending clip length)
- Music theory primitives: Chord progressions, scale runs, drum patterns, quantize, transpose
- Mixer control: Track and master volume, pan, and return-track sends
- Session control: Start/stop playback, fire individual clips or whole scenes, create scenes
- Arrangement view (BETA): Capability-probed support for dropping clips onto the timeline, setting the arrangement loop, adding locators, and bouncing a scene order to a full arrangement
- Undo support: Revert the last action — including a whole batch as one step

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Ableton Mcp Lofifren
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

> Note: the upstream ableton-mcp PyPI package and @ahujasid/ableton-mcp Smithery listing install the original project — they will not include the personality system or the ~35 additional tools in this fork. To get this fork, install ableton-mcp-lofifren from PyPI as shown below.

Follow along with the setup instructions video

1. Download the AbletonMCP_Remote_Script/__init__.py file from this repo

2. Copy the folder to Ableton's MIDI Remote Scripts directory. Different OS and versions have different locations. One of these should work, you might have to look:

For macOS:
- Method 1: Go to Applications > Right-click on Ableton Live app → Show Package Contents → Navigate to:
Contents/App-Resources/MIDI Remote Scripts/
- Method 2: If it's not there in the first method, use the direct path (replace XX with your version number):
/Users/[Username]/Library/Preferences/Ableton/Live XX/User Remote Scripts

For Windows:
- Method 1:
C:\Users\[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote Scripts
- Method 2:
C:\ProgramData\Ableton\Live XX\Resources\MIDI Remote Scripts\
- Method 3:
C:\Program Files\Ableton\Live XX\Resources\MIDI Remote Scripts\
Note: Replace XX with your Ableton version number (e.g., 10, 11, 12)

4. Create a folder called 'AbletonMCP' in the Remote Scripts directory and paste the downloaded '\_\_init\_\_.py' file

3. Launch Ableton Live

4. Go to Settings/Preferences → Link, Tempo & MIDI

5. In the Control Surface dropdown, select "AbletonMCP"

6. Set Input and Output to "None"

- add_personality(track, clip, personality, chord_progression, bars_per_chord?, tempo?, octave_offset?, seed?) — Generate a part in the named personality's style and write it into an existing MIDI clip. Auto-dispatches by role (solo / comp / bass / drums). Tempo defaults to the live session tempo.
- add_blended_personality_solo(track, clip, personality_a, personality_b, ratio, chord_progression, ...) — Generate a solo from a profile that's interpolated between two personalities (e.g. 70% Coltrane + 30% Kenny G). Numeric fields are linearly blended; categorical pools take from A when ratio<0.5, from B otherwise.
- list_personalities() — Returns every personality grouped by role with name, sweet-spot tempo, and one-line description.
- add_personality_solo(...) — Legacy alias for add_personality restricted to solo personalities.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "ableton mcp lofifren": {
            "ableton-mcp-lofifren": {
                "command": "uvx",
                "args": [
                    "ableton-mcp-lofifren"
                ]
            }
        }
    }
}

McpServers

{
    "ableton-mcp-lofifren": {
        "command": "uvx",
        "args": [
            "ableton-mcp-lofifren"
        ]
    }
}

AbletonMCP - Ableton Live Model Context Protocol Integration

> Fork notice: This is a fork of ahujasid/ableton-mcp extending it with a 33-personality style system and ~35 additional MCP tools. The original project is by Siddharth Ahuja and remains MIT-licensed. This fork is published to PyPI as ableton-mcp-lofifren.

PyPI
Add MCP server to Cursor
Install in VS Code

AbletonMCP connects Ableton Live to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Ableton Live. This integration enables prompt-assisted music production, track creation, and Live session manipulation.

Join the Community

Give feedback, get inspired, and build on top of the MCP: Discord. Made by Siddharth

What's New in This Fork

This fork extends the upstream ahujasid/ableton-mcp with significantly more capability — the goal is a full song in one prompt. The original PR #84 changes (clip editing, mixer controls, scene firing, audio-track creation, undo) are still present and proposed upstream as ahujasid/ableton-mcp#84. On top of that, this fork now adds ~35 additional MCP tools across six tiers, plus a 33-personality rule-based style system spanning jazz, fusion, R&B, hip-hop, and modern trap — from Coltrane and Bill Evans to Timbaland and Metro Boomin.

Tier 1 — Composite "song scaffold" tools (one call, many steps)

- setup_session(tempo, time_signature, tracks=[…]) — Bootstrap an entire session in a single round-trip: tempo, time signature, plus N tracks each with optional name, instrument, volume, and pan.
- create_clip_with_notes(track, clip, length, notes, name?) — Fuses create_clip + add_notes_to_clip + set_clip_name.
- create_track(type, name?, instrument_uri?, volume?, pan?, index?) — Single-call replacement for the create → name → load chain.
- duplicate_clip(src_track, src_slot, dst_track, dst_slot) — Cross-track clip duplication. (Upstream's duplicate_clip_to only works within a single track.)

Tier 2 — Missing primitives

- Time signature — set_time_signature(numerator, denominator)
- Clip editing — set_clip_loop, set_clip_length
- Mixer state — set_track_arm, set_track_mute, set_track_solo, set_master_volume
- Track lifecycle — delete_track
- Devices — set_device_parameter (raw Live values, clamped to the parameter's min/max)
- Scenes — create_scene, set_scene_name, set_scene_tempo

Tier 3 — Browser improvements

- search_browser(query, category?) — Walk Ableton's browser tree by name (case-insensitive). Returns up to 50 matches with URIs ready to load.
- load_instrument_by_name(track_index, name, category?) — Server-side composite: search + load in one call. No more URI hunting.
- get_track_devices(track_index) — List the devices on a track plus every device's parameters with their value, min, and max — needed before calling set_device_parameter.

Tier 4 — Musical helpers (pure server-side, no remote round-trips for note math)

- add_chord_progression(track, clip, chords, rhythm?, octave?) — Write a progression like ["Cm","Fm","G7","Cm"] straight into a clip. Supports triads, 7ths, sus, dim, aug, 9ths, 11ths, 13ths.
- add_scale_run(track, clip, scale, start_beat, end_beat, direction?) — Generate scalar runs in any of major / minor / harmonic_minor / dorian / phrygian / lydian / mixolydian / locrian / pentatonic / blues / chromatic.
- add_drum_pattern(track, clip, pattern, length, kit_map?) — Preset patterns: four_on_floor, trap, breakbeat, boom_bap. Defaults to GM drum mapping.
- quantize_clip(track, clip, grid?) — Snap notes to 1/4, 1/8, 1/16, or 1/32.
- transpose_clip(track, clip, semitones) — Shift every note by a fixed interval.

Tier 4 Plus — Personality system (27 named players, 4 roles, BPM-aware)

A personality is a rule-based profile capturing the surface stylistic features of a real-world player: note density, swing, register, scale pool, chromatic usage, dynamics, articulation. Generators combine those rules with a chord progression to produce a coherent MIDI part that reads as "in the style of" that player. Not ML — deterministic, rule-based, fast, extensible (a new personality is one dict entry).

Each personality declares a tempo_sweet_spot and a comfortable tempo_min/tempo_max range. Generators auto-pull the current session tempo and scale density / swing to compensate when the song tempo is outside the personality's range — and emit a warning so you know.

Tools

- add_personality(track, clip, personality, chord_progression, bars_per_chord?, tempo?, octave_offset?, seed?) — Generate a part in the named personality's style and write it into an existing MIDI clip. Auto-dispatches by role (solo / comp / bass / drums). Tempo defaults to the live session tempo.
- add_blended_personality_solo(track, clip, personality_a, personality_b, ratio, chord_progression, ...) — Generate a solo from a profile that's interpolated between two personalities (e.g. 70% Coltrane + 30% Kenny G). Numeric fields are linearly blended; categorical pools take from A when ratio<0.5, from B otherwise.
- list_personalities() — Returns every personality grouped by role with name, sweet-spot tempo, and one-line description.
- add_personality_solo(...) — Legacy alias for add_personality restricted to solo personalities.

Personality reference (33 total)

Solo (9) — melodic / lead lines

| Key | Player | Sweet spot | Surface style |
|---|---|---|---|
| coltrane | John Coltrane | 200 BPM | Sheets of sound, modal scalar runs with chromatic approach |
| kenny_g | Kenny G | 95 BPM | Sparse high-register sustained chord tones, lots of space |
| oscar_peterson | Oscar Peterson | 160 BPM | Swung bebop with octave doublings, blues turns, dramatic dynamics |
| miles_davis | Miles Davis | 120 BPM | Cool / modal — half the bar is silence, target chord tones |
| charlie_parker | Charlie Parker | 230 BPM | Bebop dense — chromatic approach into every chord tone |
| wayne_shorter | Wayne Shorter | 140 BPM | Modern angular — wide intervallic leaps, modal/altered |
| pat_metheny | Pat Metheny | 130 BPM | Lyrical guitar — long phrases over lydian/dorian, mostly straight |
| stan_getz | Stan Getz | 100 BPM | Cool / bossa — smooth long melodic phrases, mostly chord tones |
| dizzy_gillespie | Dizzy Gillespie | 240 BPM | Bebop trumpet — fast chromatic runs in the screaming register |

Comp (6) — chord voicings / comping

…

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.