mcpField
N
NUX MG-30

NUX MG-30

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

NUX MG-30 について

NUX MG-30は、AIアシスタントからUSB MIDI経由でギタープロセッサーを操作するMCPサーバーです。音色編集、プリセット確認、保存や復元に対応します。

主な機能

  1. 01アンプ、エフェクト、ブロック設定の編集
  2. 02プリセットの読み取りと解析
  3. 03プリセットの保存、名称変更、バックアップ、復元
  4. 04JSON音色レシピの適用

活用シーン

  1. 01文章で指定したギター音色の作成
  2. 02編集バッファーや保存済みプリセットの確認
  3. 03機器への書き込み前のプリセットバックアップ
  4. 04JSONパッチの音色レシピの再利用

MCP 対応

MCPクライアントに、USB MIDI経由でNUX MG-30を操作するツールを提供します。プロセッサーを接続したコンピューター上で実行する必要があります。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"voronkovd-nux-mg30": {
"command": "uvx",
"args": [
"nux-mg30-mcp"
],
"env": {
"MG30_PORT": "<MG30_PORT>",
"MG30_CHANNEL": "<MG30_CHANNEL>",
"MG30_DATA_DIR": "<MG30_DATA_DIR>"
}
}
}
}
起動コマンドuvx nux-mg30-mcp
設定が必要な環境変数
MG30_PORTSubstring of the MIDI port name (default: auto-detect)
MG30_CHANNELMIDI channel set on the device, 1-16 (default 1)
MG30_DATA_DIRWhere backups, patch files and logs are stored (default ~/.nux-mg30-mcp)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypinux-mg30-mcp0.1.1

ツール

18

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

nux-mg30-mcp

PyPI CI

AI アシスタント(Claude Desktop またはその他の MCP クライアント)から、USB MIDI 経由で NUX MG-30 ギタープロセッサーを操作できる MCP サーバーです。

作りたいサウンドを日常的な言葉で説明すると(「Children of Bodom のタイトなリズムトーン」「リードのファズを抑えて、中域を増やす」など)、アシスタントがモデルを選び、ノブを調整し、プリセットを保存して本体に名前を付けます。

非公式プロジェクトです。 NUX / Cherub Technology とは提携しておらず、推奨も受けていません。プリセットのプロトコルはファームウェア 5.0.2 をもとにリバースエンジニアリングされており、ほかのファームウェアバージョンでは異なる場合があります。プリセットを書き込むと本体のスロットが上書きされるため、まず backup_presets を実行してください。

できること

  • リアルタイム編集: 任意のブロックでモデルを選択し(アンプ 35 種、キャビネット/IR 24 種、ドライブ 15 種、モジュレーション 14 種、ディレイ 8 種、リバーブ 6 種など)、ブロックのオン/オフを切り替え、名前でノブを設定できます(gain、middle、1.2k、subd など)。
  • プリセットの読み込み: 名前とアンプを含む全 128 個のプリセットを一覧表示し、任意のプリセットをデコードして(名前、シグナルチェーン、モデル、ノブの値)、未保存の編集内容を含む編集バッファーを読み取れます。
  • プリセットの書き込み: 名前を付けて編集バッファーを任意のスロットに保存し、プリセットの名前を変更し、JSON ファイルとの間でプリセットをバックアップまたは復元できます。書き込みのたびに、読み戻して検証します。
  • トーンレシピ: JSON パッチファイルからトーン全体を適用できます。例は examples/patches にあります。

要件

  • USB 接続された NUX MG-30。本体はクラスコンプライアントな MIDI ポートとして認識されます。
  • Python 3.10 以降。
  • MCP クライアント(例:Claude Desktop)。

USB MIDI ポートに直接アクセスする必要があるため、サーバーは MG-30 を接続したコンピューター上で実行してください。開発とテストは macOS で行いました。Linux と Windows でも python-rtmidi 経由で動作するはずですが、テストはしていません。

インストール

最も簡単な方法は uv です。uvx がサーバーをダウンロードして実行するため、手動でのセットアップは不要です。

Claude Desktop

Settings → Developer → Edit Config を開き、次の設定を追加します。

{
  "mcpServers": {
    "nux-mg30": {
      "command": "uvx",
      "args": ["nux-mg30-mcp"]
    }
  }
}

Claude Desktop を完全に再起動します。ツールは nux-mg30 サーバーの下に表示されます。Claude が uvx を見つけられない場合は、絶対パスを指定してください(which uvx で確認できます。通常は ~/.local/bin/uvx です)。

または、pipx install nux-mg30-mcp もしくは pip install nux-mg30-mcp でインストールし、"command": "nux-mg30-mcp" を使用します。

ソースから
git clone https://github.com/voronkovd/nux-mg30-mcp.git
cd nux-mg30-mcp
python3 -m venv .venv
.venv/bin/pip install -e .

次に、クライアント設定で "command": "/absolute/path/to/nux-mg30-mcp/.venv/bin/nux-mg30-mcp" を使用します。

AI クライアントを使わずに確認する場合は、音量を下げてから python scripts/midi_check.py を実行してください。このスクリプトは AMP ブロックを 1.5 秒間ミュートし、その後元に戻します。

設定
変数デフォルト意味
MG30_PORTauto (MG-30 / NUX)MIDI ポート名に含まれる文字列
MG30_CHANNEL1本体に設定されている MIDI チャンネル
MG30_DATA_DIR~/.nux-mg30-mcpバックアップ、パッチファイル、ログの保存先
MG30_DEVICE_MAPbundledカスタム device_map.json のパス
MG30_DEBUG_TOOLSoff1 にすると低レベルの調査用ツールを公開

これらの設定は、MCP クライアント設定の "env" の下に指定します。

はじめに

  1. アシスタントにすべてのプリセットをバックアップするよう依頼します(backup_presets)。
  2. アシスタントにプリセット一覧を表示するよう依頼し、各スロットの内容を確認します。
  3. 空いているスロット、または重要でないスロットを選び、サウンドを説明します。例:「12C に切り替えて、Death の『Sound of Perseverance』のリズムトーンを作り、『Chuck Rhythm』という名前で保存してください。」

ツール

ツール機能
connect, list_midi_portsMG-30 を検出して開きます
device_state編集バッファの現在のプリセット、モデル、オン/オフ状態、ノブを確認します
set_model(block, model, on)名前または番号でモデルを選択します
set_block(block, on)ブロックをオンまたはオフにします
set_knob(block, knob, value)ラベルまたはインデックスでノブを設定します(0~100)
apply_patch(patch)複数のブロックのモデル、オン/オフ状態、ノブをまとめて適用します
select_preset(preset)プリセットを切り替えます('07A' または 0~127)
list_presets, preset_info(preset)保存済みのプリセットまたは編集バッファを読み取り、デコードします
save_preset(preset, name)編集バッファをスロットに保存し、読み戻して検証します
rename_preset(preset, name)保存済みのプリセット名を変更します
backup_presets, list_backups, restore_preset全体バックアップと単一プリセットの復元を行います
save_patch_file, list_patch_files, load_patch_file音色の設定を JSON ファイルとして扱います

ブロックは wah、comp、efx、amp、eq、ng(ゲート)、mod、dly、rvb、ir(キャビネット)、sendreturn です。delay、reverb、cab、gate などの一般的なエイリアスも使用できます。モデル名とノブ名は device_map.json に記載されています。

パッチ形式

{
  "blocks": {
    "efx": {"model": "T Scream", "knobs": {"drive": 15, "tone": 55, "level": 85}},
    "amp": {"model": "Vivo", "knobs": {"gain": 68, "middle": 68, "treble": 58}},
    "ir":  {"model": "V412"},
    "dly": {"model": "Digital Delay", "knobs": {"e.level": 30, "feedback": 32, "subd": 5}},
    "mod": {"on": false}
  }
}

モデルを選択すると、そのブロックのノブはモデルのデフォルト値にリセットされます。そのため、モデルを選択した後にノブを設定してください(apply_patch は正しい順序で処理します)。examples/patches 内のファイルは、録音を聴いて再現した設定例です。公式アーティストプリセットではありません。

制限事項

  • デバイス本体のコントロールで行ったノブの変更は、デバイスから通知されません。サーバーは現在の状態が必要なときに編集バッファを再読み込みします。
  • MIDI 経由では、シグナルチェーンの順序をまだ変更できません。別のチェーンにするには、そのチェーンがすでに設定されているプリセットを使用してください(たとえば、ファクトリーのアコースティックプリセットでは IR がアンプの前に配置されています)。
  • プリセット形式にはまだ不明な部分があります。各プリセットのパート 1~2 と、名前の後のデータ(おそらくフットスイッチおよびエクスプレッションの割り当て)が該当します。これらは書き込み時に変更されず、そのまま保持されます。
  • 未検証:ワウペダルの位置(CC11)、センド/リターンのノブ、パッチ音量、CC79。
  • MG-30 は約 40 ms より短い間隔で送信された MIDI メッセージを受信できないため、サーバーは送信速度を自動的に調整します。

動作の仕組み

すべての仕様は docs/PROTOCOL.md に記載されています。CC マップ、SysEx の読み取り/書き込み/確定コマンド、プリセットデータの 7 ビットスロット構成を確認できます。他のファームウェアバージョンや NUX 製品についての調査結果もぜひお寄せください。

開発

.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest

テストは偽のデバイスと実際のプリセットダンプを使って実行されるため、ハードウェアは不要です。MG30_DEBUG_TOOLS=1 を指定すると、サーバーで debug_monitor(受信 MIDI の記録)、debug_sysex_query、debug_send_cc、debug_send_sysex、debug_probe_cc(CC によってプリセットのどのビットが変化するかを調べる)も使用できるようになります。これらのツールは、形式のリバースエンジニアリングに使用されました。

ライセンス

MIT。詳細は LICENSE をご覧ください。

NUX、MG-30、QuickTone は、それぞれの所有者の商標です。アンプやペダルなど、デバイスが使用するモデル名は、エミュレートする製品を指すものであり、ここではモデルの識別にのみ使用しています。

コメント

MCP は初めてですか?

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

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