Skip to main content
Glama
ulm0
by ulm0

Ableton Live MCP

Ableton Live 12用のMCPサーバーで、公式の Ableton Extensions SDK上に構築されています。このMCPサーバーはLiveの内部で 拡張機能として動作します。ブリッジプロセスもMIDIリモートスクリプトも不要です。あらゆるMCPクライアント(Claude Code、 Claude Desktop、Cursorなど)がストリーミングHTTP経由で接続し、Live Setのトラック、クリップ、MIDIノート、デバイス、パラメータ、 ミキサー、シーン、ワーピング、レンダリングなどを完全にプログラム制御できます。

MCP client (Claude, ...) ──streamable HTTP──▶ http://127.0.0.1:8722/mcp
                                                      │
                                     Live Extension Host (Node.js)
                                                      │
                                              Ableton Live 12

要件

  • Ableton Live 12.4.5以降(Extensionsサポート)

  • Node.js >= 24.14(ビルドのみ)

Related MCP server: ableton-mind

インストール

npm install
npm run package        # builds and produces Ableton-Live-MCP-<version>.ablx

その後、.ablxファイルをLiveのSettings → Extensionsにドラッグします。MCPエンドポイントは http://127.0.0.1:8722/mcpでLiveとともに起動します(GET /healthで簡単に確認できます)。

開発モード

LiveでSettings → Extensions → Developer Modeを有効にしてから、次の手順を実行します:

npm start              # builds and runs the extension against the running Live

.envはLiveのインストール先を指す必要があります。例: EXTENSION_HOST_PATH=/Applications/Ableton Live 9 Beta.app

クライアントを接続する

Claude Code:

claude mcp add --transport http ableton-live http://127.0.0.1:8722/mcp

Claude Desktop(またはstdioのみ対応のクライアント)はmcp-remoteを介して:

{
  "mcpServers": {
    "ableton-live": {
      "command": "npx",
      "args": ["mcp-remote", "http://127.0.0.1:8722/mcp"]
    }
  }
}

設定

ポートは拡張機能のストレージディレクトリ内のconfig.jsonに保存されます (初回 実行時に作成され、パスはsong_getenvironment.storage_directoryで確認できます)。デフォルト:

{ "port": 8722 }

仕組み

  • すべてのLiveオブジェクト(トラック、クリップ、デバイス、パラメータなど)は、リストツール(song_gettrack_getdevice_getなど)で見つかる安定したオブジェクトIDで指定されます。

  • IDはオブジェクトが削除または移動されたり、別のLive Setが読み込まれたりするまで有効です。古いIDはクライアントに再リストを促すエラーを返します。

  • すべての時刻・位置は単位です。色は#RRGGBB、MIDIピッチは0~127です。

  • 複数値の書き込み(parameter_set)はLiveで1つのアンドゥステップにまとめられます。

ツール

Song

ツール

説明

song_get

Live Setの状態: テンポ、スケール、グリッド、トラック、リターン/メイントラック、シーン、キューポイント、環境情報。他のすべての場所で使われるオブジェクトIDを返します。includeで指定したセクションだけを取得します。

song_set

ソングのプロパティ(テンポ)を設定します。

トラック

ツール

説明

track_get

トラックの詳細: クリップスロット+クリップ、テイクレーン、アレンジメントクリップ、デバイス、ミキサー(値付き)。track_idtrack_indextrack_nameのいずれかで指定します。includeでセクションを選択します。

track_set

名前/ミュート/ソロ/アームを設定します。

track_create

新しいオーディオまたはMIDIトラックを作成します。

track_delete

トラックを削除します。

track_duplicate

トラックを複製します。

track_clear_clips_in_range

ビート範囲内のアレンジメントクリップを削除/切り詰めます。

take_lane_create

トラックにテイクレーンを追加します。

take_lane_set

テイクレーンの名前を変更します。

シーンとキューポイント

ツール

説明

scene_create/scene_set/scene_delete/scene_duplicate

シーンを管理します。

cue_point_create/cue_point_set/cue_point_delete

アレンジメントロケーターを管理します。

クリップ

ツール

説明

clip_create

セッションスロット(IDまたはトラック+scene_index)、アレンジメントトラック、またはテイクレーンにMIDIまたはオーディオクリップを作成します。MIDIクリップはインラインのnotesを受け取ります。name/colorは作成時に適用されます。オーディオファイルはプロジェクトに自動的にインポートされます。

clip_get

完全なクリップ詳細(オーディオ: ワープ設定+マーカー。MIDI: ノート数)。

clip_set

名前、色、ミュート、ループ、ワープ、ワープモードを設定します。

clip_delete

セッションまたはアレンジメントクリップを削除します。

midi_clip_get_notes

すべてのMIDIノートを読み取ります。

midi_clip_set_notes

ノートを書き込みます: replace(すべて置き換え)またはmerge(上にレイヤリング)。

midi_clip_edit_notes

サーバーサイドのノート変換 — トランスポーズ、時間シフト、ベロシティスケール/オフセット、クォンタイズなどは読み取り/変更/書き込みの往復なしで行えます。

デバイスとラック

ツール

説明

device_get

デバイスの詳細: 値アイテムを持つパラメータ(parameter_filterの部分文字列、include_valuesinclude_value_items)、ラックのチェーン(include_chain_devicesはパッドデバイスをインライン化)、Simplerのサンプル。

device_insert

内蔵Liveデバイスをトラックまたはラックチェーンに挿入します。

device_delete/device_duplicate

デバイスを削除またはコピーします。

chain_get

ラックチェーンの詳細: デバイス+チェーンミキサー。

rack_insert_chain

ラックにチェーンを追加します。

drum_chain_set

ドラムラックパッドのMIDIノートを設定します。

simpler_replace_sample

Simplerのサンプルを交換します。

パラメータとミキシング

ツール

説明

parameter_get

デバイス/ミキサーパラメータの値を読み取ります(バッチ)。

parameter_set

パラメータの値を書き込みます(バッチ。1つのアンドゥステップ)。

mixer_get

トラックまたはチェーンの音量/パン/センドと、パラメータIDと単位のヒントを取得します。

mixer_set

トラックまたはチェーンの音量/パン/センドを1回の呼び出しで設定します(1つのアンドゥステップ)。

ファイルとレンダリング

ツール

説明

import_file

ファイルをLiveプロジェクトにコピーします。

render_track_audio

オーディオトラックのプリFX音声をWAVにレンダリングします。

UIとコマンド

ツール

説明

show_dialog

Live内にモーダルHTMLダイアログを表示します(ユーザーに確認したり、レポートを表示したりするため)。

execute_command

ableton-live-mcp.statusなどのExtension Hostコマンドを呼び出します。

スキル

skills/ableton-live/SKILL.mdはインストール可能なエージェントスキル であり、MCPクライアントにこれらのツールをうまく使う方法(ID発見フロー、拍と秒の扱い、 ノート編集パターン、デバイスのワークフロー)を教えます。

Claude Codeにインストールするには:

mkdir -p ~/.claude/skills && cp -r skills/ableton-live ~/.claude/skills/

接続したアシスタントに依頼できる典型的な作業:

  • 「Drum Rack付きの新しいトラックに、4小節のハウス・ドラムパターンを作成して」

  • 「DrumsトラックのすべてのクリップをComplex Proモードでワープして」

  • 「ボーカルバス以外のすべてのトラックを3dB下げて」

  • 「曲の骨組みを作って: イントロ、Aメロ、サビのシーンとロケーターを」

  • 「Simplerのサンプルを時は、/path/to/kick.wavに交換してC1に割り当てて」

制限事項

  • 拡張機能(つまり MCP エンドポイント)は、Live が起動している間だけ動作します。

  • 挿入できるのは Live 内蔵デバイスのみです。サードパーティ製プラグインは SDK からは読み込めません。

  • トランスポート操作(再生/停止/録音)やクリップの起動はありません — Extensions API v1.0.0 はこれらを公開していません。ブラウザへのアクセスやパラメータ・オートメーションカーブも同様です。

  • show_dialog は、ユーザーが Live でダイアログを閉じるまでブロックします。

テスト

npm test                  # E2E against a mock Extension Host: MCP client ↔ HTTP ↔ all tools
node test/live-smoke.mjs  # against a real running Live with the extension loaded

Live スモークテストは、専用のトラック/クリップ/デバイスを作成し、すべてのツール・ファミリー(MIDIノート、ワペング、ドラムック、レング、...)を検証して、作成したものをすべて削除します。

Extession Host の癖(知っておく価値あり)

このプロジェクトが対応しているのは、ベータ版 Extension Host の2つの癖について説明します:

  1. Bare VM コンテキスト。 拡張機能は global や Web のグローバル(RequestResponseReadableStreamfetchEventTarget、...)を持たない V8 コンテキストで評価されます。これらは MCP SDK がロード時に必要とするものです。build.ts は、それらをメインの Node コンテキストから取り込んだバナーを注入します(コアモジュールの関数は共有されているので、それらの Function コンストラクタはそこで評価されます)。詳細は build.ts を参照してください。

  2. bigint 数値。 ホストは、SDK が number として扱う一部の値(クリップの色、ノートのピッチなど)に対して bigint を返します。src/serialize.ts は、算出/JSON の前に num() で正規化しています。

  3. 非同期の書込み。 SDK のプロパティ・セッター(ノート、名前、値など)は、Live が変更を適用する前に戻ります。ReadableStream direktly 数十 ms 以内に読み取ると、変更前の状態が返ることがあります。が、書き込み後の読み取りをするテストは、しばらくリトライする必要があります(test/live-smoke.mjseventually() を参照)。

また、開発用 Extension Host がクラッシュすると、Live が次のコントロール・チャンネルのハンドシェイク("bring-up timed out")を拒否することがあります — During that time, restart Live and run npm start again.

トラブルシューティング

  • エンドポイントが応答しない: curl http://127.0.0.1:8722/health を確認します。Live 内の任意のトラックを右クリックすると、"Ableton Live MCP: Status" コンテキストメニュー項目で、拡張機能が実際にバインドしたエンドポイントが表示されます。

  • ポートが使用中: 設定したポートを別のプロセスが使用している場合、サーバーは ExtensionHost.txt に失敗を記録して起動しません。拡張機能の config.json 内の port を変更してください(パスは song_getenvironment.storage_directory に表示されます)。このファイルは起動時に一度だけ読み取られるので、その後 Live を再起動してください。

  • config.json を変更したのに反映されない: 設定は拡張機能の起動時にのみ読み取られます。Live(または開発用 Extension Host)を再起動してください。

ライセンス

The code in this repository is MIT. vendor/ 内のターボール(Ableton Extensions SDK & CLI)は Ableton のものであり、その独自のライセンスが適用されます(SDK ディストリビューション内の sdk/LICENSE.md を参照してください)。

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    MCP server for controlling Ableton Live, enabling AI assistants to interact with Live sessions through tools for track/clip/scene management, playback control, and device parameter adjustments.
    48
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that exposes Ableton Live control (session state, transport, tracks, devices, clips, MIDI note editing) as tools for LLM agents, enabling natural language manipulation of a Live session.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for Producer/Riffusion AI music generation

  • Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.

  • MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ulm0/ableton-live-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server