mcpField
R
Reaper Reapy Mcp

Reaper Reapy Mcp

ローカル
github.com/wegitorメディア・デザイン8716 週間前に更新

Reaper Reapy Mcp について

reaper_reapy_mcp は MCP を通じてデジタルオーディオワークステーション REAPER を操作する Python アプリケーションです。python-reapy 上に構築されており、作曲、ミキシング、プロジェクト管理を AI アシスタントで支援したい音楽制作者や開発者を対象としています。

主な機能

  1. 01トラックの作成・名前変更・色設定
  2. 02FX の追加とパラメーター制御
  3. 03テンポ、マーカー、リージョンの設定
  4. 04MIDI ノートの追加と取得
  5. 05秒または小節:拍によるアイテム位置指定

活用シーン

  1. 01アシスタントによるトラック構成と色設定の高速化
  2. 02作曲のための MIDI ノートの一括追加
  3. 03マスタートラックの音量、パン、ミュート、ソロの調整

MCP 対応

MCP サーバーとしてトラック、FX、プロジェクト、MIDI、オーディオアイテムのツールを公開し、stdio と HTTP の両方のモードで動作します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Reaper と MCP または AI の連携

MCP(Model context protocol)を使用して、REAPER Digital Audio Workstation(DAW)を操作する Python アプリケーションです。

REAPER MCP MIDI 生成デモ

REAPER MCP プロジェクト機能デモ

機能

  • トラック管理:トラックの作成、名前の変更、色の設定
  • FX 管理:エフェクトパラメーターの追加、削除、操作
  • プロジェクト制御:テンポの設定、リージョンとマーカーの管理
  • マスタートラック制御:音量、パン、ミュート、ソロの操作
  • MIDI 操作:音楽的な位置指定によるアイテムの作成、ノートの追加・取得、アイテムの消去
  • オーディオアイテム操作:位置指定の拡張機能を使った挿入、複製、変更
  • 2 種類の位置形式:時間(秒)と小節:拍表記の両方をサポート
  • 信頼性の高い複製:正確なアイテムのコピーに REAPER の組み込みコマンドを使用
  • MCP 連携:AI アシスタントが操作するための Model Context Protocol サーバー

ステータス

  • Linux で確認済み:はい
  • MCP HTTP モード:パラメーターに対応

必要条件

  • Python 3.7 以降
  • REAPER DAW
  • python-reapy Python モジュール
  • MCP サーバー用の mcp[cli] パッケージ
  • インターネット接続(サンプルオーディオファイルのダウンロード用)

インストール

  1. まだインストールしていない場合は、REAPER をインストールします
  2. REAPER のスクリプト機能で reapy サーバーを有効にします
    reaper_side_enable_server.py を REAPER のアクションに追加し、REAPER Studio 内で実行します
  3. パッケージをインストールします:
    # From PyPI
    pip install reaper_reapy_mcp
    
    # From GitHub repository
    pip install git+https://github.com/wegitor/reaper-reapy-mcp.git
    
  4. REAPER で Python を有効にします

wheel パッケージには必要な依存関係がすべて含まれており、REAPER との連携を必要とするほかの Python プロジェクトでも使用できます。このプロジェクトでは、最新の Python パッケージ設定に pyproject.toml を使用しており、依存関係の管理とビルドシステムの設定が改善されています。

サンプルオーディオファイル

このアプリケーションでは、オーディオ操作のテストにサンプル MP3 ファイルを使用します。必要に応じて、次の場所からファイルが自動的にダウンロードされます:

https://www2.cs.uic.edu/~i101/SoundFiles/StarWars3.mp3

これは、オーディオアプリケーションのテストによく使われる、短いスター・ウォーズのテーマ曲のクリップです。

サーバーの実行

uv を使ってサーバーを直接実行できます:

uv --directory <project_path> run -m reaper_reapy_mcp

現在のディレクトリで HTTP MCP モードを使用する場合:

uv --directory . run -m reaper_reapy_mcp --mode http

たとえば、Windows の場合:

uv --directory C:\path\to\reaper_reapy_mcp run -m reaper_reapy_mcp

または、インストール後に Python モジュールを直接使用する場合:

python -m reaper_reapy_mcp
HTTP モード

デフォルト設定で HTTP モードのサーバーを実行します:

python -m reaper_reapy_mcp --mode http

ホストとポートを指定して実行します:

python -m reaper_reapy_mcp --mode http --http-host example_host --http-port 3958
MCP Inspector を使ってツールをテストします:
test_mcp.bat

利用可能な MCP ツール:

トラック管理
  • test_connection:REAPER への接続を確認
  • create_track:新しいトラックを作成
  • rename_track:既存のトラック名を変更
  • set_track_color:トラックの色を設定
  • get_track_color:トラックの色を取得
  • get_track_count:プロジェクト内のトラック数を取得
  • get_track_list:すべてのトラックとそのプロパティの一覧を取得
FX 管理
  • add_fx:トラックに FX を追加
  • remove_fx:トラックから FX を削除
  • set_fx_param:FX パラメーターの値を設定
  • get_fx_param:FX パラメーターの値を取得
  • get_fx_param_list:FX パラメーターの一覧を取得
  • get_fx_list:トラック上の FX の一覧を取得
  • get_available_fx_list:利用可能な FX プラグインの一覧を取得
  • toggle_fx:FX の有効・無効を切り替え
プロジェクト制御
  • set_tempo:プロジェクトのテンポを設定
  • get_tempo:現在のテンポを取得
  • get_time_signature:現在の拍子記号を取得
  • set_project_time_signature:プロジェクトのデフォルトの拍子記号を設定
  • set_time_signature:指定位置の拍子記号を設定
  • create_region:リージョンを作成
  • delete_region:リージョンを削除
  • create_marker:マーカーを作成
  • delete_marker:マーカーを削除
  • render_project:プロジェクトをオーディオファイルにレンダリング
マスタートラック
  • get_master_track:マスタートラックの情報を取得
  • set_master_volume:マスタートラックの音量を設定
  • set_master_pan:マスタートラックのパンを設定
  • toggle_master_mute:マスタートラックのミュートを切り替え
  • toggle_master_solo:マスタートラックのソロを切り替え
MIDI 操作
  • create_midi_item:トラックに空の MIDI アイテムを作成します
    • 時間(秒)と小節:拍のどちらの形式でも位置を指定できます
  • add_midi_note:MIDI アイテムに MIDI ノートを追加します
  • add_midi_notes:複数の MIDI ノートを一度に追加します
  • get_midi_notes:MIDI アイテムからすべての MIDI ノートを取得します
  • clear_midi_item:MIDI アイテムからすべての MIDI ノートを消去します
オーディオアイテム操作
  • insert_audio_item:オーディオファイルをメディアアイテムとして挿入します
    • 時間(秒)と小節:拍のどちらの形式でも位置を指定できます
  • duplicate_item:既存のアイテム(MIDI またはオーディオ)を複製します
    • 信頼性の高い複製のため、REAPER に組み込まれた複製機能を使用します
    • 時間(秒)と小節:拍のどちらの形式でも位置を指定できます
  • get_item_properties:メディアアイテムのプロパティを取得します
  • set_item_position:メディアアイテムの位置を設定します
    • 時間(秒)と小節:拍のどちらの形式でも位置を指定できます
  • set_item_length:メディアアイテムの長さを設定します
  • delete_item:メディアアイテムを削除します
  • get_items_in_time_range:時間範囲内のアイテムを取得します
    • 時間(秒)と小節:拍のどちらの形式でも範囲を指定できます
アイテム ID システム

すべてのアイテム操作では、アイテムを識別するために連続したインデックスシステム(0..n)を使用します。これにより、スクリプトや自動化でアイテムを扱いやすくなります。

  • アイテム ID は 0 から始まるインデックスです
  • 各トラックはそれぞれ独自のアイテムインデックス列を保持します
  • インデックスはアイテムが削除または並べ替えられるまで安定しています
  • すべてのアイテム操作(MIDI、オーディオ、プロパティ)で同じインデックスシステムを使用します
位置形式のサポート

多くの MCP ツールで、音楽制作ワークフローをより便利にする 2 種類の位置形式をサポートするようになりました。

時間形式(秒)
{
  "start_time": 15.5,
  "new_time": 30.0
}
小節:拍形式
{
  "start_measure": "3:2,500",
  "new_measure": "5:1,000"
}

形式:「"measure:beat,fraction"」で、各項目は次のとおりです。

  • measure:1 から始まる小節番号
  • beat:1 から始まる拍番号
  • fraction:拍の小数部分を表すミリ秒(000~999)
  • 例:「"4:2,500"」=4 小節目、2 拍目、半拍(500ms)
両方の形式に対応するツール:
  • create_midi_item - start_time または start_measure で位置を指定
  • insert_audio_item - start_time または start_measure で位置を指定
  • duplicate_item - new_time または new_measure で位置を指定
  • set_item_position - new_time または new_measure で位置を指定
  • get_items_in_time_range - 時間または小節のパラメーターで範囲を指定
Claude の設定(uv run を使用):
{
    "mcpServers": {
        "reaper-reapy-mcp": {
            "type": "stdio",
            "command": "uv",
            "args": [
                "--directory",
                "<path to folder>",
                "run",
                "-m",
                "reaper_reapy_mcp"
            ]
        }
    }
}
Claude の設定(直接実行):
{
    "mcpServers": {
        "reaper-reapy-mcp": {
            "type": "stdio",
            "command": "python",
            "args": [
                "-m",
                "reaper_reapy_mcp"
            ]
        }
    }
}

または

{
    "mcpServers": {
        "reaper-reapy-mcp": {
            "type": "stdio",
            "command": "python",
            "args": [
                "<path to folder>\\src\\reaper_reapy_mcp.py"
            ]
        }
    }
}

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。