Skip to main content
Glama
remymazmanian

ableton-control-deck

Ableton Control Deck

Ableton Control Deckは、Ableton Live用のローカルMCPブリッジです。MCPに対応する任意のクライアント(Claude Code、Claude Desktop、Codex、その他MCPを話すあらゆるツール)に対して、Liveのトラック、クリップ、トランスポート、デバイス、サードパーティプラグインパラメータを、読み戻し確認済みの正確な制御と、ローカルなステータスダッシュボードを提供します。

すべてはあなたのマシン上で動作し、ループバックアドレスにのみバインドします。ネットワークに公開されたり露出したりすることはありません。

AbletonおよびAbleton LiveはAbleton AGの商標です。このプロジェクトは独立したコミュニティツールであり、Abletonとは提携も推奨もされていません。

仕組み

  • Liveリモートスクリプト(remote-script/Control_Deck/)がAbleton Live内でControl Surfaceとして動作し、UDPポート50711で認証付きローカルリクエストプロトコルを待ち受けます。公開されるLive APIは明示的な許可リストであり、汎用的なメソッド実行機ではありません。

  • MCPサーバー(src/index.ts、dist/にコンパイル)はLive制御をMCPツールとして公開し、依存関係のないローカルUDPクライアント(src/ableton-client.ts)を介してリモートスクリプトと通信します。

  • npm run setupによって生成され、決してコミットされないインストールごとのシークレットが、両者間のすべてのリクエストを認証します。

  • 読み取り専用のステータスサービス(src/dashboard-server.mjs、ポート50712)とNext.jsダッシュボード(dashboard/、ポート50713)が、ブリッジの健全性、現在のLiveセッション、ロード済みデバイス、および検索可能なローカルのVST3/VST2/Audio Unit/CLAPプラグインインベントリを表示します。

  • オプションのMax for Liveデバイス Control Deck OmniHost(max-for-live/)は、VST3インストゥルメントを直接ホストし、その完全な公開パラメータカタログ(Liveの自動デバイスパネルをはるかに超える数千ものパラメータ)を独自のループバックチャネル(UDP50714)で公開します。

  • オプションのmacOSネイティブラッパー(macos/)は、ダッシュボードをローカルアドレスにロックされたWebKitウィンドウに表示します。外部ナビゲーションはブロックされます。

  • オプションのローカルSQLiteサンプルインデックス(src/sample-index.ts)は、外部サンプルドライブをキーワード、BPM、キー、ワンショット/ループ種別で検索可能にし、ソースオーディオに書き込むことはありません。

Related MCP server: io.github.peterkolbe/ableton-for-ai

設計ルール

  • トラックおよびデバイスの変更には、インデックスと現在の正確な名前の両方が必要です。古い名前は拒否されます。

  • プラグインのロードは、Live自身のブラウザインデックスを通じて解決され、曖昧な名前は推測せずに拒否されます。

  • 破壊的操作(delete_track、インデックス再構築)には、明示的な確認フラグが必要です。

  • すべての変更の直後に別途読み戻しクエリが実行され、ツールはLiveが実際に表示する値を報告します。

  • 完了したリクエストIDはブリッジによってキャッシュされるため、重複したUDPリクエストが変更を二重に実行することはできません。

ツール

  • ステータス、トランスポート、テンポ、拍子記号、ソングポジションの読み戻し確認付き制御

  • トラックの一覧表示、作成、名前変更、安全な削除

  • Session ViewのMIDIクリップを作成し、検証済みのノート内容を書き込み

  • シーン、クリップ、選択、デバイス、Liveが公開するすべてのパラメータを検査

  • Liveのブラウザを通じて、正確なトラック上のVST3/VST2/AUプラグインを検出、解決、ロード

  • Liveネイティブデバイス(Drum Rack、Echo、Reverbなど)を、正確なブラウザ名で曖昧さを拒否してロード

  • サードパーティプラグインパラメータの正規化された値での読み取りと設定、および読み戻し

  • OmniHostを通じて完全にインデックス化されたVST3インストゥルメントを、Liveのパラメータ上限を超えて制御

  • ローカルサンプルインデックスをキーワード、フォルダ、BPM、キー、長さ、タグで検索

必要条件

  • macOS 13 Ventura以降(AppleシリコンおよびIntel)— macOSが現在サポートされる唯一のプラットフォームです。コア部分はプラットフォームに依存せず、Linux/Windowsへの移植は十分にスコープが定義されています。PORTING.mdを参照してください。

  • Ableton Live 11以降(テスト対象:Live 12)

  • Node.js 20以上

  • Max for Live(オプション — OmniHostデバイスのみ必要)

完全なドキュメント — コンポーネントの説明、Liveのセットアップ、MCPツールリファレンス全体、トラブルシューティング、アンインストール — はHELP.mdにあります。

インストール

クイックスタート(コーディング不要)

  1. Node.jsのインストール — nodejs.orgからLTS版をダウンロードし、デフォルトオプションでインストーラを実行します(Control Deckはその上で動作します。以後触る必要はありません)。

  2. Control Deckのダウンロード — GitHubの緑色のCode → Download ZIPボタンを使用し、ZIPを解凍して、ホームフォルダなどの恒久的な場所にフォルダを移動します。Downloadsフォルダに置いたままにしないでください。インストーラはサービスのパスをフォルダの場所に固定するため、移動を促されます。

  3. インストーラの実行 — Install Ableton Control Deck.commandを右クリックし、開くを選択します(ダウンロードしたファイルの場合、macOSでは最初だけ右クリックが必要です)。これによりすべてがインストールされ、バックグラウンドサービスが起動し、完了時に接続ガイドが開きます。いつでも再度実行しても問題ありません。

  4. LiveでControl Surfaceを有効化 — 設定 → Link, Tempo & MIDI → 空いているControl SurfaceスロットでControl Deckを選択します(セットアップ中にLiveが開いていた場合は、先に再起動してください)。

  5. AIエージェントに接続 — 開いたガイド(http://127.0.0.1:50713/connect)には、各クライアント向けのコピーペースト手順が記載されています。

開発者セットアップ

npm run setupは、インストーラが使用するのと同じエンジンです — 依存関係のインストール、TypeScript + OmniHost + ダッシュボードのビルド、インストールごとのシークレット、リモートスクリプトのインストール、launchdエージェント(作成および有効化)を実行します。冪等性があるため、変更をプルしたりチェックアウトを移動した後に再実行できます。

npm run setup

より短いループを回すためのフラグ:--skip-build(npm install/buildをスキップ)、--skip-remote-script、--skip-agents。細かい部品は個別のスクリプト(build、build:omnihost、install:omnihost、index:plugins、samples:index、およびダッシュボード独自のdev/build/check)として引き続き利用可能です。

setupが管理するもの:

  1. data/bridge-tokenにあるインストールごとのシークレット(リモートスクリプトとクライアントで共有。決してコミットされません)。

  2. ~/Music/Ableton/User Library/Remote Scripts/Control_Deck/にあるリモートスクリプト(シークレットが埋め込まれています)。

  3. このチェックアウトを指す2つのlaunchdエージェント:com.abletondeck.apiおよびcom.abletondeck.dashboard。

次に、MCPサーバーをクライアントに追加します。例としてClaude Codeの場合:

claude mcp add ableton -- node /path/to/ableton-control-deck/dist/src/index.js

Liveで、設定 → Link, Tempo & MIDIを開き、Control DeckがControl Surfaceとして選択されていることを確認します。

他のエージェントへの接続

ダッシュボードの接続ページ(http://127.0.0.1:50713/connect)には、Claude Code、Claude Desktop、Codex、Cursor、VS Code、Windsurf、Gemini CLI、Grok CLI、完全ローカルLLMハーネス(LM Studio、Ollama via mcphost)、その他のMCPクライアント向けのコピーペースト可能なセットアップガイドが、実際のマシンのインストールパスでレンダリングされて表示されます。また、ブリッジをclaude.aiのようなリモートコネクタに公開するために必要なこと(およびセキュリティ上のコスト)についての率直な議論も含まれています。要するに、stdio MCPサーバーを起動できるエージェントであれば、Liveを駆動できます。リモートクラウドコネクタは意図的に対象外としています。

Control Deckダッシュボード

http://127.0.0.1:50713でデッキを開きます(launchエージェントを有効にしていればログイン時に起動します)。ブリッジの健全性、現在のLiveセッション、選択したトラックのデバイスチェーン、インストール済みプラグインの検索可能なローカルインベントリが表示されます。設定ページでは、ブリッジ接続、更新動作、ライブラリのデフォルト、密度、色、モーションを制御できます。プロジェクトの変更は引き続き、読み戻し確認済みの正確なMCPツールを使用します。

オプションのネイティブアプリは、npm run build:macosでAbleton Control Deck.appとしてビルドされます。

ローカルコマンド

npm run check          # type-check + syntax-check all sources
npm test               # unit tests (client, tools, validation, safety)
npm run test:bridge    # remote-script protocol tests (Python)
npm run index:plugins  # rebuild the local plug-in inventory
npm run samples:index  # refresh the sample index
npm run build:macos    # build the native wrapper app

ダッシュボードには独自のビルドチェックがあります:

cd dashboard
npm run check

セキュリティモデル

  • ブリッジは127.0.0.1のUDP50711のみをリッスンします。ステータスサービス、ダッシュボード、OmniHostはすべてループバックのみにバインドします。

  • すべてのブリッジリクエストは、data/bridge-tokenからのインストールごとのシークレットを保持する必要があります。リモートスクリプトは、シークレットが埋め込まれていない場合は起動を拒否します。

  • Live APIの表面は明示的な許可リストであり、正確なターゲット保護機能を備えているため、混乱したエージェントは間違ったものを編集する代わりに大きなエラーを出します。

  • MCPサーバーはリクエストをlogs/control-deck.jsonlにローカルで記録するため、エージェントの動作を監査できます。

ライセンス

MIT

Related MCP Connectors

Related MCP Servers