mcpField
S
Sonic Pi MCP

Sonic Pi MCP

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

Sonic Pi MCP について

Sonic Pi MCP は、AI アシスタントが自然言語で記述された音楽を Sonic Pi のコードに変換し、OSC で送信する MCP サーバーです。対話を通じて音楽のアレンジや実験を行いたい方に向いており、Sonic Pi 側のキュー用ランナーがセグメント間のクロスフェードを担当します。

主な機能

  1. 01queue_segment による次の音楽セグメントの送信
  2. 02stop_all による OSC 経由の即時停止
  3. 03play_note によるテスト用ノートの再生
  4. 04DJ セッション向けのリソースとプロンプト
  5. 05環境変数による OSC ホスト・ポート・パスの設定

活用シーン

  1. 01自然言語の記述から Sonic Pi 用の楽曲セグメントを生成
  2. 02Sonic Pi でのセクション間のクロスフェード
  3. 03ライブ演奏中のセグメント投入と管理

MCP 対応

本プロジェクトは MCP サーバーであり、queue_segment、run_code、stop_all、play_note などのツールに加え、リソースとプロンプトを MCP クライアントに公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Sonic Pi MCP

Sonic Pi 用の Model Context Protocol(MCP)サーバーです。LLM クライアントで音楽を自然言語で記述すると、モデルが Sonic Pi コードを生成し、このサーバーが OSC 経由で送信します。セグメント間のクロスフェードには、Sonic Pi に含まれる キューランナー を使用します。

特長

  • queue_segment — 次の楽曲セグメント全体(名前付きの live_loop、use_bpm など)を送信します。
  • run_code — queue_segment と同じです(互換性のため)。
  • stop_all — OSC(/stop-all-jobs)経由で即時停止します。Sonic Pi の Stop と同様です。
  • play_note — テスト用の音を手早く再生します。
  • リソース — DJ セッションの作り方、語彙、ツールの使い方を提供します(MCP クライアントから読み込みます)。
  • プロンプト next_performance_segment — 長時間のセットで次のブロックを組み立てる際に役立ちます。
  • 環境変数 — OSC_HOST、OSC_PORT、OSC_CODE_PATH、OSC_STOP_ALL_PATH。

前提条件

  • Sonic Pi v4.x
  • Node.js 18+(npx / node)
  • MCP 対応クライアント(Cursor、Claude Desktop、MCP 対応の VS Code など)

任意:ローカル開発には Bun を使用できます(bun run dev)。

Sonic Pi の初回セットアップ(キューランナー)

  1. Sonic Pi を開きます。
  2. sonic-pi-queue.rb をバッファーにコピーします。
  3. Run を押して、実行したままにします。

このバッファーはデフォルトの OSC ポートで待ち受け、MCP から送信されたセグメント間をクロスフェードします。

MCP サーバーのインストール

npx -y sonic-pi-mcp

このコマンドを stdio 経由で実行するようにクライアントを設定します(以下を参照)。

Cursor

プロジェクトで ~/.cursor/mcp.json および/または .cursor/mcp.json を使用します。

{
  "mcpServers": {
    "sonic_pi_mcp": {
      "command": "npx",
      "args": ["-y", "sonic-pi-mcp"]
    }
  }
}

ローカルクローン(npm install または bun install と bun run build の実行後):

{
  "mcpServers": {
    "sonic_pi_mcp": {
      "command": "node",
      "args": ["/absolute/path/to/sonic-pi-mcp/bin/cli.mjs"]
    }
  }
}

ビルドせずに Bun を使用する場合 — クライアントによっては cwd が無視されるため、src/server.ts には絶対パスを指定するか、ランチャーを使用してください。

{
  "mcpServers": {
    "sonic_pi_mcp": {
      "command": "/absolute/path/to/sonic-pi-mcp/bin/mcp-dev.sh",
      "args": []
    }
  }
}

chmod +x bin/mcp-dev.sh を一度実行します。このスクリプトはリポジトリに移動して bun run src/server.ts を実行します。

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(Windows ではパスが異なります):

{
  "mcpServers": {
    "sonic_pi_mcp": {
      "command": "npx",
      "args": ["-y", "sonic-pi-mcp"]
    }
  }
}

ローカルクローンの場合、Module not found "src/server.ts" または spawn bunx ENOENT が表示されたら、上記の bin/mcp-dev.sh を使用してください。古い定義がキャッシュされている場合は、アプリで MCP を削除して再追加します。

VS Code

拡張機能のドキュメントに従い、MCP 拡張機能で npx を -y および sonic-pi-mcp とともに実行するよう設定し、トランスポートに stdio を指定します。

環境変数

変数デフォルト値意味
OSC_HOST127.0.0.1Sonic Pi のホスト
OSC_PORT4560Sonic Pi の OSC ポート
OSC_CODE_PATH/run-codeコード用の OSC パス(Sonic Pi のバッファーと一致させる必要があります)
OSC_STOP_ALL_PATH/stop-all-jobs即時停止用のパス

別のマシンから接続する場合は、Sonic Pi で 受信 OSC を許可し、OSC_HOST を適切に設定してください。

開発

git clone https://github.com/abhishekjairath/sonic-pi-mcp.git
cd sonic-pi-mcp
bun install   # or npm install
bun run build
bun run dev

OSC の簡易テスト(Sonic Pi とランナーを実行中の状態で行います):

bun run test
MCP Inspector
npx @modelcontextprotocol/inspector

bun run build の実行後、このディレクトリを作業ディレクトリとして、引数 bin/cli.mjs を指定した node を使用します。

トラブルシューティング

  • 音が出ない — Sonic Pi は開いていますか?キューバッファーは実行中ですか?ポート 4560 に到達できますか?
  • 何も起きない — Sonic Pi で OSC が有効になっていますか?OSC_HOST / OSC_PORT は一致していますか?
  • レイヤーが積み重なる — 名前付きの live_loops とともに queue_segment を使用してください。完全にリセットするときだけ stop_all を使用します。
  • Module not found "src/server.ts"(Claude) — command に bin/mcp-dev.sh を指定し、args は空にするか、絶対パスを使用してください。cwd だけに頼らないでください。
  • resources/list / prompts/list → Method not found — ツールのみを公開する古いビルドを使用しています。このリポジトリまたは npm から MCP を再インストール/再起動して、リソースとプロンプトが登録されるようにしてください。
  • Sonic Pi のログに Ruby エラーが表示される — 生成されたコードの解析または実行に失敗しています。スニペット(括弧、サンプル、構文)を修正して、もう一度送信してください。失敗時、キューランナーはコードのスニペットを出力します。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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