🙄

MaxMSP MCP Server を Claude Code で動かしてみた

に公開

はじめに

Max/MSP を AI から操作できる MCP(Model Context Protocol)サーバーが公開されていたので、Claude Code で実際に動かせるか試してみました。結論から言うと、自然言語で Max パッチを作成できて、実際に音が鳴るところまで確認できました。

環境

  • macOS
  • Max/MSP 9 以降
  • Python 3.11+
  • Node.js
  • Claude Code 2.0.14
  • uv (Python パッケージマネージャー)

使用したプロジェクト

https://github.com/tiianhk/MaxMSP-MCP-Server

このプロジェクトは、Claude が Max/MSP のパッチを直接操作できるようにする MCP サーバーです。

セットアップ手順

1. リポジトリのクローンと依存関係のインストール

git clone https://github.com/tiianhk/MaxMSP-MCP-Server.git
cd MaxMSP-MCP-Server

# Python 仮想環境の作成
uv venv

# 依存関係のインストール
uv pip install -r requirements.txt

2. Max 側のセットアップ

cd MaxMSP_Agent
npm install
cd ..

3. Python のグローバル設定

pyenv を使っている場合:

pyenv global 3.11.14

4. Claude Code への MCP サーバー追加

プロジェクトディレクトリで:

# プロジェクトのルートディレクトリに移動
cd <PROJECT_DIR>

# MaxMSP MCP サーバーを追加
claude mcp add MaxMSPMCP /<PROJECT_DIR>/MaxMSP-MCP-Server/.venv/bin/python /<PROJECT_DIR>/MaxMSP-MCP-Server/server.py

注意: パスは自分の環境に合わせて変更してください。

5. 接続確認

claude mcp list

出力例:

MaxMSPMCP: /path/to/.venv/bin/python /path/to/server.py - ✓ Connected

起動手順

起動順序が重要です:

1. Max で Node.js サーバーを起動

cd MaxMSP-MCP-Server/MaxMSP_Agent
open demo.maxpat

Max パッチが開いたら、"script start" ボタンをクリックします。

Max Console に以下が表示されることを確認:

port-number: "Server listening on port 5002"

2. Claude Code を起動

cd <PROJECT_DIR>

# インタラクティブモード
claude

実際に使ってみた

インタラクティブモードで以下のように依頼してみました:

delay オブジェクトを使って、4つの異なる音高(440, 554, 659, 880Hz)を
異なるタイミング(0ms, 100ms, 200ms, 150ms)で鳴らすリズムパターンを作って。
メトロノームは500msで、toggleでオン/オフできるようにして。

Claude が自然言語の指示を理解して、Max パッチを自動生成してくれました。

完成したパッチ

MaxMSP パッチのスクリーンショット

toggle をクリックすると、4つの音が異なるタイミングで順番に鳴るリズムパターンが動作しました!

MCP 設定のスコープについて(重要)

Claude Code の MCP 設定は、設定を追加したディレクトリとその配下のサブディレクトリでのみ有効です。

# プロジェクトディレクトリで設定
cd /Users/hoge/fuga/proj_max_mcp
claude mcp add MaxMSPMCP ...

この設定は以下で有効:

  • /Users/hoge/fuga/proj_max_mcp/
  • /Users/hoge/fuga/proj_max_mcp/任意のサブディレクトリ/

この設定は以下で無効:

  • /Users/hoge/fuga/ (親ディレクトリ)
  • /Users/hoge/bar/他のプロジェクト/

つまり、親ディレクトリの設定は子に継承されません。各ディレクトリは独立した設定を持ちます。



トラブルシューティング

エラー: "Cannot connect to host 127.0.0.1:5002"

原因: Max 側の Node.js サーバーが起動していない

解決方法:

  1. Max で demo.maxpat を開く
  2. "script start" をクリック
  3. "Server listening on port 5002" を確認
  4. Claude Code を再起動

MCP サーバーが見つからない

原因: 設定したディレクトリとは別の場所で claude を実行している

解決方法: MCP サーバーを設定したディレクトリ(または配下)で実行する

まとめ

MaxMSP MCP Server を Claude Code で動かしてみたところ、自然言語での指示で Max パッチを作成でき、実際に音が鳴るところまで確認できました。

うまくいったポイント:

  • 起動順序を守る(Max → Claude Code)
  • MCP 設定のスコープを理解する
  • 環境変数で API キーを安全に管理する

Max/MSP を使った音楽制作やサウンドデザインに、AI の力を活用できる可能性が見えました。

参考リンク

Discussion