REAPER MCP について
TwelveTake REAPER MCP は、AI アシスタントが REAPER のプロジェクトを調査・操作し、オーディオ制作や MIDI 作業を行うための MCP サーバーです。トラック、ルーティング、FX、オートメーション、編集に加え、複数手順の制作ワークフローや測定機能を備えています。
主な機能
- 01トラックとプロジェクトの操作
- 02FX、ルーティング、オートメーション編集
- 03MIDI とオーディオアイテムの編集
- 04複数手順のミキシングツール
- 05ラウドネスとスペクトルの測定
- 06REAPER で取り消せる変更
活用シーン
- 01サイドチェインまたはパラレルコンプレッションの設定
- 02マスタリングチェーンやルーティングバスの構築
- 03MIDI ノートとベロシティの編集
- 04プロジェクトのレベルとスペクトルの確認
MCP 対応
この MCP サーバーは、互換性のある AI クライアントに REAPER の操作・分析ツールを公開します。メールボックスディレクトリ内の JSON ファイルを介して、REAPER 内で動作する Lua ブリッジと通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
179掲載時のツール一覧 · 今日に更新
このツールにパラメーターはありません。
詳細
TwelveTake REAPER MCP
TwelveTake Studios のプロジェクトです。
セットアップガイド、使用例、FAQ → twelvetake.com/tools/reaper-mcp
MCP Registry に mcp-name: com.twelvetake/reaper-mcp として登録されています。
TwelveTake REAPER MCP は、ミキシング、マスタリング、MIDI 作曲、音楽制作のために、AI アシスタントが REAPER を操作できるようにする Model Context Protocol サーバーです。
バージョン: 1.9.3
このサーバーを選ぶ理由
ワークフローツール
REAPER を直接操作できるだけでなく、このサーバーには、複数の制作タスクを 1 回の呼び出しで完了するワークフローツールが含まれています。
| ツール | できること |
|---|---|
setup_sidechain_compression() | センドを作成し、チャンネル 3~4 にルーティングし、ReaComp のディテクター入力を設定します。1 回の呼び出しでサイドチェーンを完全にセットアップします |
add_mastering_chain() | 適切な信号の流れで、マスタートラックに ReaEQ → ReaComp → ReaEQ → ReaLimit を追加します |
add_parallel_compression() | バストラックを作成し、センドを設定してコンプレッサーを追加します。NY スタイルのコンプレッションをすぐにミックスできます |
create_bus() | サブミックストラックを作成し、指定したトラックをルーティングします |
get_project_summary() | トラック数、すべてのトラック名/音量/パン/FX、マーカー、リージョン、テンポ、拍子など、AI が必要とする情報を 1 回の呼び出しですべて返します |
設定不要
- ファイルベースの通信により、ネットワークのセットアップやポートの設定をせずにすぐ使えます
- 標準の REAPER のみ:ブリッジはプレーンな Lua スクリプト、アナライザーは JSFX プラグインなので、REAPER にほかのものをインストールする必要はありません
- スクリプトをコピーして実行し、AI アシスタントを接続するだけです
実際の制作ニーズに対応する 180 のツール
- FX の完全な制御 — プラグインの追加/削除、インデックスによる任意のパラメーターの取得/設定、プリセットの管理、バイパス
- FX パラメーターのオートメーション — 任意のプラグインのノブ(フランジャーの深さ、フィルターのカットオフなど)をオートメーション化
- 完全なルーティング — センド、受信、特定のチャンネルペアへのサイドチェーンルーティング
- オートメーション — エンベロープの作成、ポイントの追加/編集、オートメーションモードの設定
- MIDI — アイテムの作成、ノートの個別または一括追加、ベロシティの編集
- MIDI 編集 — 移調、スウィング付きクオンタイズ、ヒューマナイズ、スケールへのスナップ、ストレッチ、レガート、ストラム、ベロシティランプ。いずれもピッチ範囲、拍の範囲、またはチャンネルを指定できます
- オーディオアイテム — 読み込み、分割、複製、フェード、配置、ミュート
- マーカーとリージョン — 作成、編集、移動、リージョンごとのレンダリング
- 測定:マスター、トラック、またはアイテムのラウドネス、ラウドネスレンジ、トゥルーピーク、オクターブバンドスペクトル、ステレオ相関を測定します。ラウドネス、トゥルーピーク、ラウドネスレンジについて、EBU の合成コンプライアンス信号によるテストに合格しています。
- 取り消し可能な編集:AI による変更はすべて、REAPER の取り消し履歴に名前付きの 1 ステップ(「MCP: delete track」など)として記録されるため、REAPER で Ctrl+Z を押すとツールの呼び出しを 1 回ずつ元に戻せます
必要条件
- REAPER(最近のバージョン。ライブテストスイート全体で REAPER 7.79 まで正常に動作)
- Python 3.10 以降(MCP サーバー用)
- MCP 対応の AI アシスタント
インストール
1. REAPER にブリッジスクリプトをインストールする
ブリッジは REAPER 内で動作する Lua スクリプトです。MCP サーバーはこのスクリプトを通じてプロジェクトを操作します。次の 3 つの方法のいずれかでインストールしてください。
オプション A:コマンドを 1 つ実行し、REAPER で一度起動する
uvx twelvetake-reaper-mcp --install-bridge
これにより、reaper_mcp_bridge.lua がご使用のプラットフォーム用の REAPER の Scripts フォルダーに、測定ツールが使用する JSFX プラグインの TwelveTake MCP Analyzer が Effects/TwelveTake にコピーされます。別のブリッジがすでに存在する場合は、先にバックアップが作成されます。それ以外には何も書き込まず、サーバーが独自に REAPER のインストール環境にアクセスすることもありません。REAPER がポータブル版の場合や、通常とは異なる場所にインストールされている場合は、パスを指定してください:--install-bridge "/path/to/REAPER/Scripts"。
次に、REAPER で読み込みます。Actions → Show action list を開きます。

New action → Load ReaScript をクリックします。

Scripts フォルダーで reaper_mcp_bridge.lua を選択し、Open をクリックします。

これで、スクリプトがアクションリストに表示されます。スクリプトを選択し、Run をクリックします。

ブリッジはウィンドウを開かずにバックグラウンドで動作し、REAPER を終了すると停止します。ステップ 3 で動作を確認します。
次回からは、アクションリストのフィルターボックスに mcp bridge と入力して見つけるか、REAPER の起動時に自動で開始するように設定できます(以下を参照)。
オプション B:ReaPack
ReaPack を使用している場合は、Extensions → ReaPack → Import repositories を開きます。

次のアドレスを貼り付けます。
https://github.com/TwelveTake-Studios/reaper-mcp/raw/main/index.xml

次に、Extensions → ReaPack → Browse packages を開き、TwelveTake REAPER MCP bridge を見つけて右クリックし、Install を選択して OK をクリックします。

ReaPack により、スクリプトがアクションリストに追加され、アナライザーがインストールされます。オプション A と同じ方法で、そこからスクリプトを実行してください。
オプション C:手動でインストールする
reaper_mcp_bridge.luaを REAPER の Scripts フォルダーにコピーします。- Windows:
%APPDATA%\REAPER\Scripts\ - macOS:
~/Library/Application Support/REAPER/Scripts/ - Linux:
~/.config/REAPER/Scripts/
- Windows:
twelvetake_mcp_analyzer.jsfxを Scripts フォルダーと同じ階層にあるEffects/TwelveTake/にコピーします。測定ツールに必要ですが、それ以外では使用しません。- オプション A と同じ方法でスクリプトを読み込み、実行します。
REAPER とともにブリッジを起動する
REAPER を終了すると、スクリプトも停止します。REAPER の起動時に毎回ブリッジを開始するには、次を実行します。
uvx twelvetake-reaper-mcp --install-bridge --autostart
これにより、REAPER の Scripts フォルダーにある __startup.lua に、目印付きのブロックが追加されます。ファイルは先にバックアップされ、それ以外の内容は変更されません。--remove-autostart を指定すると、ブロックを削除できます。ReaPack でインストールした場合は、代わりに uvx twelvetake-reaper-mcp --autostart を実行してください。これにより、REAPER は ReaPack のコピーを参照します。
更新
1.7.8 以降は、REAPER 内で更新のための操作は必要ありません。
uvx twelvetake-reaper-mcp@latest --install-bridge
実行中のブリッジが新しいスクリプトを自動的に読み込み、コマンドでその旨が通知されます。例:
The running bridge reloaded itself: 1.7.8 -> 1.7.9.
ReaPack を使用している場合は、Extensions → ReaPack → Synchronize packages で新しいスクリプトを取得します。ブリッジの次回起動時に実行されるほか、uvx twelvetake-reaper-mcp --reload-bridge を使えばすぐに実行できます。また、ブリッジのバージョンが古すぎる場合、サーバーは実行中のブリッジに再読み込みを要求します。
1.7.7 以前から更新する場合は、最後に手動での操作が必要です。インストール後、REAPER でもう一度スクリプトを実行してください。
2. MCP サーバーのインストールと設定
サーバーは PyPI で twelvetake-reaper-mcp として公開されています。最も簡単な方法は、MCP クライアントから uvx(または pipx)を使って起動することです。手動でインストールする必要はありません。
MCP クライアントの設定(例:.mcp.json またはクライアントの MCP 設定)に追加します。
{
"mcpServers": {
"reaper": {
"command": "uvx",
"args": ["twelvetake-reaper-mcp"]
}
}
}
VS Code では、最上位の
serversキーを使用し、"type": "stdio"を指定します。mcpServersは使用しません。
サーバーが単独で起動することを確認するには、次のコマンドを実行します。
uvx twelvetake-reaper-mcp
# or: pipx run twelvetake-reaper-mcp
クライアントが接続するまで何も表示せずに待機します。停止するには Ctrl+C を押してください。
3. 確認
REAPER を開き、ブリッジを実行した状態で、アシスタントに 「プロジェクトにはトラックがいくつありますか?」 と尋ねます。数字が返ってくれば、サーバー、ブリッジ、REAPER がすべて通信できています。
ソースから実行する(開発用)
サーバー自体を開発する場合は、PyPI からではなく、クローンしたリポジトリから実行します。依存関係をインストールします。
pip install -r requirements.txt # or: pip install "mcp>=1.2.0,<2.0"
MCP クライアントでローカルのスクリプトを指定します。
{
"mcpServers": {
"reaper": {
"command": "python",
"args": ["path/to/reaper_mcp_server.py"]
}
}
}
次に、以下を実行して接続を確認します。
python test_connection.py
Nix flake(任意)
Nix を使用している場合、リポジトリには Python 3.12 を提供し、仮想環境を作成して有効化する、flake ベースの開発シェルが用意されています。
# Enter the dev shell manually
nix develop
# Or, with direnv, auto-activate on cd:
direnv allow
次に、通常どおり依存関係をインストールします。
pip install -r requirements.txt
これにより Python のバージョンが固定され、依存関係がシステム環境から分離されます。
注:
x86_64-linuxの開発シェルはテスト済みで、動作しています。macOS(Darwin)用のシェルも用意されていますが、テストされていません。macOS ユーザーからの動作確認を歓迎します。
通信の仕組み
サーバーとブリッジは、ブリッジスクリプトが REAPER 内からポーリングするメールボックスディレクトリで JSON ファイルをやり取りします。ネットワーク設定は不要で、ポートを開く必要もありません。
MCP Server REAPER Bridge
│ │
├── writes request_N.json ────►│
│ ├── processes request
│◄── reads response_N.json ────┤
ブリッジディレクトリ: プラットフォームごとに解決される、REAPER 自身の Scripts/mcp_bridge_data ディレクトリです。
| プラットフォーム | パス |
|---|---|
| Windows | %APPDATA%\REAPER\Scripts\mcp_bridge_data |
| macOS | ~/Library/Application Support/REAPER/Scripts/mcp_bridge_data |
| Linux | ~/.config/REAPER/Scripts/mcp_bridge_data(古いインストールでは ~/.reaper/...) |
ポータブルインストールでは REAPER_BRIDGE_DIR で上書きできます。サーバーは起動時に、解決されたディレクトリを stderr に出力し、タイムアウトエラーにもそのディレクトリを含めます。
これと併せて提供されていた HTTP トランスポートは、v1.7.2 で削除されました。v1.2.1 以降非推奨となっており、リクエストパーサーは POST ボディを読み取れなかったため、受け取った呼び出しが REAPER に到達することはありませんでした。REAPER_COMM_MODE は現在、何の効果もありません。
クイックスタートの例
基本的なトラック操作
"How many tracks are in my project?"
"Create a new track called 'Vocals'"
"Set track 0 volume to -6dB"
"Mute track 2"
"Solo the drums track"
ミキシング
"Add ReaComp to the bass track"
"Set up sidechain compression from the kick to the bass"
"Create a drum bus and route tracks 0-3 to it"
"Add a mastering chain to the master track"
FX とパラメーター
"What plugins are on track 0?"
"Get the parameters for the compressor on track 1"
"Set the threshold to -20dB"
"Bypass the EQ on the vocal track"
MIDI 作曲
"Create a 4-bar MIDI item on track 0"
"Add a C major chord at the start"
"Get all the notes in the MIDI item"
"Set the velocity of note 0 to 100"
トランスポートとナビゲーション
"Play the project"
"Stop playback"
"Set the cursor to 30 seconds"
"Add a marker called 'Chorus' at the current position"
プロジェクト管理
"What's the project tempo?"
"Set the tempo to 120 BPM"
"Save the project"
"Render to D:/Output/mix.wav"
ツールのリファレンス
トラック操作(23 ツール)
| ツール | 説明 |
|---|---|
get_track_count() | トラックの合計数を取得します(マスターを除く) |
get_track(index) | トラック情報を取得します(名前、音量、パン、ミュート、ソロ) |
get_all_tracks() | すべてのトラック情報を取得します |
get_master_track() | マスタートラック情報を取得します |
insert_track(index, name) | 新しいトラックを作成します |
create_click_track(start, end, name) | テンポマップに従うクリックトラックを追加します |
delete_track(index) | トラックを削除します |
set_track_name(index, name) | トラック名を変更します |
set_track_volume(index, db) | 音量を dB で設定します |
set_track_pan(index, pan) | パンを設定します(-1~1) |
set_track_mute(index, mute) | トラックをミュート/ミュート解除します |
set_track_solo(index, solo) | トラックをソロ/ソロ解除します |
set_track_phase(index, invert) | 位相を反転します |
set_track_width(index, width) | ステレオ幅を設定します(0~2) |
set_track_color(index, r, g, b) | トラックの色を設定します |
get_track_peak(index, channel) | 現在のピークレベルを取得します(dB) |
get_track_peak_hold(index, channel) | 前回のリセット以降に保持されているピークを取得します(dB) |
clear_all_peak_indicators() | すべてのトラックのピークホールドをリセットします |
get_track_master_send(index) | マスター/親へのセンド状態を取得します |
set_track_master_send(index, enabled) | マスターへのセンドを有効/無効にします |
set_track_as_folder(index, depth) | フォルダの親/子として設定します |
arm_track(index, arm) | 録音待機状態にします |
set_track_input(index, input) | 録音入力を設定します |
set_track_monitor(index, mode) | モニターモードを設定します |
FX 操作(16 ツール)
| ツール | 説明 |
|---|---|
track_fx_get_count(index) | トラック上の FX 数を取得します |
track_fx_get_list(index) | 詳細情報付きですべての FX を一覧表示します |
track_fx_add_by_name(index, name, position?) | FX プラグインを追加します(位置の指定は任意) |
track_fx_move(index, fx_index, new_position) | FX チェーン内の順序を変更します |
track_fx_delete(index, fx_index) | FX を削除します |
track_fx_get_name(index, fx_index) | FX 名を取得します |
track_fx_get_enabled(index, fx_index) | 有効かどうかを確認します |
track_fx_set_enabled(index, fx_index, enabled) | FX を有効化/バイパスします |
track_fx_get_num_params(index, fx_index) | パラメーター数を取得します |
track_fx_get_param_name(index, fx_index, param) | パラメーター名を取得します |
track_fx_get_param(index, fx_index, param) | パラメーター値を取得します |
track_fx_set_param(index, fx_index, param, value) | パラメーター値を設定します |
get_fx_presets(index, fx_index) | 利用可能なプリセットを一覧表示します |
get_fx_preset(index, fx_index) | 現在のプリセットを取得します |
set_fx_preset(index, fx_index, name) | プリセットを読み込みます |
save_fx_preset(index, fx_index, name) | 非対応:REAPER の API では名前付き FX プリセットを保存できないため、常にエラーを返します |
ReaEQ 操作(5 ツール)
REAPER の EQ 専用 API を使用して ReaEQ のバンドを操作します。この API により、ReaEQ の非線形パラメーターカーブ(dB ゲイン、対数周波数、対数 Q)を正しく扱えます。
| ツール | 説明 |
|---|---|
find_eq(track, instantiate?) | トラック上の ReaEQ を検索します(追加するかどうかは任意) |
get_eq_bands(track, fx) | 人が読みやすい値ですべての ReaEQ バンドを読み取ります |
set_eq_band(track, fx, bandtype, bandidx, paramtype, value, is_normalized?) | バンドパラメーターを設定します(Hz、dB、または Q) |
get_eq_band_enabled(track, fx, bandtype, bandidx?) | バンドが有効かどうかを確認します |
set_eq_band_enabled(track, fx, bandtype, bandidx?, enabled?) | バンドを有効/無効にします |
テイク FX 操作(11 個のツール)
テイク単位(アイテム単位)の FX で、トラック FX ツールと同様です。各テイクは
(track_index, item_index, take_index) で指定します。
| ツール | 説明 |
|---|---|
take_fx_get_count(track, item, take) | テイク上の FX の数を取得 |
take_fx_get_list(track, item, take) | 詳細情報付きでテイク上のすべての FX を一覧表示 |
take_fx_add_by_name(track, item, take, name) | FX プラグインをテイクに追加 |
take_fx_delete(track, item, take, fx) | テイクから FX を削除 |
take_fx_get_name(track, item, take, fx) | テイク FX の名前を取得 |
take_fx_get_enabled(track, item, take, fx) | 有効かどうかを確認 |
take_fx_set_enabled(track, item, take, fx, enabled) | テイク FX を有効化/バイパス |
take_fx_get_num_params(track, item, take, fx) | パラメーター数を取得 |
take_fx_get_param_name(track, item, take, fx, param) | パラメーター名を取得 |
take_fx_get_param(track, item, take, fx, param) | パラメーター値を取得 |
take_fx_set_param(track, item, take, fx, param, value) | パラメーター値を設定 |
テイク管理とコンピング(7 個のツール)
複数テイクのワークフロー:テイクの一覧表示/切り替え/削除、展開/トリミング、REAPER 7 の固定レーンコンピングに対応します。
| ツール | 説明 |
|---|---|
get_takes(track, item) | すべてのテイクを一覧表示(名前+アクティブフラグ) |
get_active_take(track, item) | アクティブなテイクのインデックスを取得 |
set_active_take(track, item, take) | 再生するテイクを切り替え |
explode_takes(track, item) | テイクを重なり合うアイテムに展開(その場で実行) |
crop_to_active_take(track, item) | アクティブなテイクのみを残す |
delete_take(track, item, take) | 指定したテイクを削除 |
select_comp_lane(track, lane) | 固定レーンを 1 つだけ再生(レーンコンピング) |
ルーティング(9 個のツール)
| ツール | 説明 |
|---|---|
create_send(src, dest) | トラック間にセンドを作成 |
delete_send(index, send_index) | センドを削除 |
set_send_volume(index, send_index, db) | センドレベルを設定 |
get_track_num_sends(index) | トラックからのセンド数を取得 |
set_send_dest_channels(index, send_index, chan) | 特定のチャンネルにルーティング |
set_send_source_channels(index, send_index, chan) | ソースチャンネルを設定 |
setup_sidechain_send(src, dest, db) | サイドチェーンセンドを作成 |
configure_reacomp_sidechain(index, fx_index, use) | ReaComp のサイドチェーンを設定 |
setup_sidechain_compression(trigger, target, fx, db) | サイドチェーンの設定をすべて行う |
トランスポート(10 個のツール)
| ツール | 説明 |
|---|---|
play() | 再生を開始 |
stop() | 再生を停止 |
pause() | 再生を一時停止 |
record() | 録音を開始 |
get_play_state() | 現在の状態を取得(再生中/一時停止中/録音中) |
get_cursor_position() | 編集カーソル位置を取得(秒) |
set_cursor_position(seconds) | 編集カーソルを移動 |
get_play_position() | 再生位置を取得(秒) |
toggle_repeat() | ループモードを切り替え |
get_repeat_state() | ループ中かどうかを確認 |
プロジェクト(15 個のツール)
| ツール | 説明 |
|---|---|
get_project_summary() | 1 回の呼び出しでプロジェクトの状態を包括的に取得します |
save_project() | 現在のプロジェクトを保存します |
create_project() | 新しいプロジェクトを作成します(REAPER では、未保存のプロジェクトに名前を付けられません) |
open_project(path) | プロジェクトファイルを開きます |
get_project_path() | プロジェクトのディレクトリを取得します |
get_project_name() | プロジェクトのファイル名を取得します |
get_project_length() | プロジェクトの長さ(秒)を取得します |
get_tempo() | プロジェクト開始時のテンポ(BPM)と、すべてのテンポマーカーを取得します |
set_tempo(bpm) | プロジェクトのテンポを設定します |
get_time_signature() | 拍子記号を取得します |
set_time_signature(num, denom) | 拍子記号を設定します |
render_project(path, start, end, tail, skip_postprocessing) | オーディオファイルにレンダリングします。プロジェクトのノーマライズ、フェード、その他の処理を一覧表示するか、それらをスキップします |
render_region(index, path) | 未実装です。常にエラーを返します。リージョンの開始位置と終了位置を指定して render_project を使用してください |
zoom_to_selection() | 時間選択範囲にズームします |
zoom_to_project() | プロジェクト全体が表示されるようにズームします |
MIDI 操作(8 個のツール)
| ツール | 説明 |
|---|---|
create_midi_item(track, pos, length) | 空の MIDI アイテムを作成します |
get_midi_item(track, item) | MIDI アイテムの情報を取得します |
add_midi_note(track, item, pitch, vel, start_beat, length_beats, chan) | ノートを 1 つ追加します(拍単位) |
add_midi_notes_batch(track, item, notes) | 複数のノートを追加します |
get_midi_notes(track, item) | すべてのノートを取得します |
delete_midi_note(track, item, note) | ノートを削除します |
clear_midi_item(track, item) | すべてのノートを削除します |
set_midi_note_velocity(track, item, note, vel) | ノートのベロシティを変更します |
MIDI ユーティリティ(14 個のツール)
既存のノートを編集するツールです。すべてに共通の省略可能なフィルターがあり、ピッチ範囲、アイテム開始位置から拍単位で指定する発音開始位置の範囲、チャンネルを指定できます。手動で選択しなくても、フレーズを対象にできます。タイミングは拍単位、ピッチは半音単位です。それぞれの操作は 1 回の取り消しステップになります。
| ツール | 説明 |
|---|---|
transpose_midi_notes(track, item, semitones, ...) | ピッチを移動します。0~127 の範囲外に移動するノートはそのままにし、折り返しません |
snap_midi_notes_to_scale(track, item, root, mode, ...) | スケールから外れたノートをスケールに合わせます(名前付きスケール、またはカスタム音程リストを指定できます) |
quantize_midi_notes(track, item, grid, strength, swing, ...) | 強さとスウィングを指定して、発音開始位置をプロジェクトのグリッドに合わせます |
nudge_midi_notes(track, item, amount_beats, ...) | ノートのタイミングを移動します。長さは維持されます |
stretch_midi_notes(track, item, factor, pivot_beat, ...) | ピボットを基準にタイミングを伸縮します(ハーフタイム/ダブルタイム) |
legato_midi_notes(track, item, mode, voice, ...) | 音の並びの隙間を埋めるか、すべてのノートの長さを統一します |
humanize_midi_notes(track, item, timing, velocity, seed, ...) | シードを指定して、再現可能なタイミングとベロシティの揺らぎを加えます |
strum_midi_notes(track, item, spread_beats, direction, ...) | 和音を順番に弾くストロークに展開します |
ramp_midi_note_velocities(track, item, start_vel, end_vel, ...) | フレーズ全体にベロシティのリニアランプを適用します(クレッシェンド) |
scale_midi_note_velocities(track, item, mode, ratio, ...) | ベロシティを乗算、設定、または圧縮します |
set_midi_note(track, item, note, ...) | 1 つのノートのピッチ、ベロシティ、タイミング、チャンネルを編集します |
get_selected_midi_notes(track, item) | REAPER のエディターで選択されているノートを読み取ります |
select_midi_notes(track, item, ...) | ピッチ/拍/チャンネルのフィルターに一致するノートを選択します |
remove_overlapping_midi_notes(track, item, mode, ...) | 同じピッチで重複するノートを短縮または削除します |
ここにあるツールのうち、ノートを削除できるのは remove_overlapping_midi_notes だけです。それ以外は既存のノートを移動するだけです。これは destructive として指定されているため、クライアントは先に確認を促すことができます。
オーディオアイテム(17 個のツール)
| ツール | 説明 |
|---|---|
insert_audio_file(track, path, pos) | オーディオファイルを読み込みます |
get_track_items(track) | トラック上のすべてのアイテムを一覧表示します |
get_item_info(track, item) | アイテムの詳細を取得します |
set_item_position(track, item, pos) | アイテムを移動します |
set_item_length(track, item, length) | アイテムの長さを変更します |
delete_item(track, item) | アイテムを削除します |
duplicate_item(track, item) | アイテムを複製します |
split_item(track, item, pos) | 指定位置でアイテムを分割します |
set_item_mute(track, item, mute) | アイテムをミュート/ミュート解除します |
set_item_volume(track, item, db) | アイテムの音量を設定します |
set_item_fade_in(track, item, length) | フェードインを設定します |
set_item_fade_out(track, item, length) | フェードアウトを設定します |
select_all_items() | すべてのアイテムを選択します |
unselect_all_items() | すべてのアイテムの選択を解除します |
get_selected_items() | 選択中のアイテムを取得します |
copy_selected_items() | クリップボードにコピーします |
paste_items() | クリップボードから貼り付けます |
マーカーとリージョン(8 個のツール)
| ツール | 説明 |
|---|---|
add_marker(pos, name, color) | マーカーを追加します |
add_region(start, end, name, color) | リージョンを追加します |
get_markers() | すべてのマーカーを取得します |
get_regions() | すべてのリージョンを取得します |
delete_marker(index) | マーカーを削除します |
delete_region(index) | リージョンを削除します |
go_to_marker(index) | マーカーに移動します |
go_to_region(index) | リージョンの開始位置に移動します |
オートメーション(8 個のツール)
| ツール | 説明 |
|---|---|
get_track_envelope(track, name) | 名前でエンベロープを取得します |
get_envelope_point_count(track, name) | エンベロープポイントの数を取得します |
add_envelope_point(track, name, time, value, shape, value_db) | オートメーションポイントを追加します。トラックにエンベロープがない場合は作成します(value_db:dB 単位の音量レベル) |
get_envelope_points(track, name) | すべてのポイントを取得します |
delete_envelope_point(track, name, index) | ポイントを削除します |
clear_envelope(track, name) | すべてのポイントを消去します |
set_track_automation_mode(track, mode) | オートメーションモードを設定します |
arm_track_envelope(track, name, arm) | エンベロープを録音用にアームします |
FX パラメーターのオートメーション(5 個のツール)
| ツール | 説明 |
|---|---|
get_fx_envelope(track, fx, param) | 任意の FX パラメーターのエンベロープを取得または作成します |
add_fx_envelope_point(track, fx, param, time, value, shape) | FX パラメーターにオートメーションポイントを追加します |
get_fx_envelope_points(track, fx, param) | FX エンベロープのすべてのポイントを取得します |
delete_fx_envelope_point(track, fx, param, point) | FX エンベロープからポイントを削除します |
clear_fx_envelope(track, fx, param) | FX エンベロープのすべてのポイントを消去します |
選択と編集(11 個のツール)
| ツール | 説明 |
|---|---|
undo() | 直前の操作を元に戻します |
redo() | 最後に元に戻した操作をやり直します |
get_undo_state() | 元に戻す/やり直す状態を取得します |
select_track(index, exclusive) | トラックを選択します |
select_all_tracks() | すべてのトラックを選択します |
unselect_all_tracks() | すべてのトラックの選択を解除します |
get_selected_tracks() | 選択中のトラックのインデックスを取得します |
set_time_selection(start, end) | 時間範囲の選択を設定します |
get_time_selection() | 時間範囲の選択を取得します |
clear_time_selection() | 時間範囲の選択を解除します |
delete_selected_items() | 選択中のアイテムを削除します |
測定(2 個のツール)
| ツール | 説明 |
|---|---|
measure_loudness(track, item, start, end) | 統合ラウドネス、短時間最大ラウドネス、モーメンタリー最大ラウドネス(LUFS)、ラウドネスレンジ、サンプルピーク、トゥルーピーク |
measure_spectrum(track, item, start, end) | オクターブバンドレベル、スペクトル重心、傾き、ステレオ相関、サイド対ミッド、バランス |
トラックまたはアイテムを指定しない場合、どちらのツールもマスターミックスを測定します。ラウドネス値は REAPER 独自のラウドネス測定機能から取得します。トゥルーピーク、スペクトル、ステレオの測定値は TwelveTake MCP Analyzer から取得します。このアナライザーは --install-bridge でインストールされ、ReaPack パッケージにも含まれています。
ミキシングヘルパー(6 個のツール)
| ツール | 説明 |
|---|---|
add_mastering_chain() | マスターに EQ→Comp→EQ→Limiter を追加 |
add_parallel_compression(track, db) | NY コンプレッションを設定 |
create_bus(name, tracks) | サブミックスバスを作成 |
add_eq(track) | ReaEQ を追加 |
add_compressor(track) | ReaComp を追加 |
add_limiter(track) | ReaLimit を追加 |
高度な機能(4 個のツール)
| ツール | 説明 |
|---|---|
run_action(action_id) | ID で REAPER アクションを実行 |
run_action_by_name(name) | 名前でアクションを実行 |
get_track_fx_chunk(track, fx) | FX の生の状態データを取得 |
cut_selected_items() | アイテムをクリップボードに切り取り |
トラックのインデックス指定
- 通常のトラック: 0 始まりのインデックス(最初のトラック = 0)
- マスタートラック: インデックス
-1を使用
"Set the master track volume to -3dB" → track_index = -1
"Mute track 1" → track_index = 1 (second track)
一般的なプラグイン名
track_fx_add_by_name() では、次の名前を使用します。
| プラグイン | 名前 |
|---|---|
| EQ | ReaEQ |
| コンプレッサー | ReaComp |
| リミッター | ReaLimit |
| ゲート | ReaGate |
| ディレイ | ReaDelay |
| リバーブ | ReaVerbate または ReaVerb |
サードパーティ製プラグインには、REAPER の FX ブラウザーに表示されている正式名称を使用します。
トラブルシューティング
「REAPER に接続できません」
- REAPER が起動していることを確認します
- ブリッジスクリプトが実行されていることを確認します。アクションリストで起動してください(フィルターボックスに
mcp bridgeと入力します) - ブリッジディレクトリが存在することを確認します
「トラックが見つかりません」
- トラックのインデックスは 0 始まりです
- マスタートラックには
-1を使用します get_track_count()でトラック数を確認します
ブリッジスクリプトが読み込まれない
twelvetake-reaper-mcp --install-bridgeでデプロイしてから、REAPER のアクションリストで読み込み、実行します。REAPER が実行するのはデプロイされたコピーであり、クローン内のコピーではありません。
応答が遅い
- ファイルベースのモードでは、1 回の呼び出しあたり約 50ms の遅延が発生します
- 可能な場合は操作をまとめて実行してください(例:
add_midi_notes_batch)
環境変数
| 変数 | デフォルト値 | 説明 |
|---|---|---|
REAPER_BRIDGE_DIR | REAPER の Scripts/mcp_bridge_data。プラットフォームごとに解決されます | ファイルブリッジディレクトリ |
REAPER_FILE_TIMEOUT | 5.0 | レンダリングおよび以下の計測ツールを除き、ブリッジからの応答を待つ秒数です。ブリッジは処理の完了後にのみ応答するため、トラックのフリーズやプロジェクトを開くといった時間のかかる操作では、REAPER が正常に処理を完了してもタイムアウトが報告されることがあります。値を大きくすると、ブリッジが実行されていない場合の報告も遅くなります。 |
REAPER_RENDER_TIMEOUT | 600 | おおむねリアルタイムで実行される render_project、measure_loudness、measure_spectrum の応答を待つ秒数です。10 分を超えるレンダリングでは値を大きくしてください。 |
REAPER_MCP_DEBUG | 未設定 | REAPER の起動前に 1 に設定すると、ブリッジの起動メッセージと、呼び出しごとのコンソール行が表示されます |
コントリビューション
CONTRIBUTING.md を参照してください。パッチを作成する前に最初のセクションをお読みください。このリポジトリは、明示的な許可リストを通じて非公開の作業用リポジトリから公開されているため、PR はマージではなく手作業で移植されます。事前にこの点を知っておくとよいでしょう。適切に原因を特定した課題報告も、ここではパッチと同じくらい価値があり、労力はずっと少なくて済みます。
貢献者
このソフトウェアに貢献したプロジェクト外の方々は、CONTRIBUTORS.md に掲載されています。ここにいる誰もが調査に思い至る前に、その診断が採用された方々も複数含まれています。
ライセンス
MIT License — LICENSE を参照してください
TwelveTake Studios LLC ウェブサイト: twelvetake.com 連絡先: [email protected]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。