MCP MIDI サーバー
LLM が MIDI 入力をサポートする任意のソフトウェアに MIDI シーケンスを送信できるようにする FastMCP サーバー。
特徴
仮想MIDI出力ポートを作成します
MIDIノートオン/オフメッセージを送信します
制御変更(CC)メッセージを送信する
正確なタイミングでMIDIイベントをシーケンスします
MIDIをサポートするあらゆるアプリケーションでMIDI入力デバイスとして使用できます。
Related MCP server: Awesome MCP FastAPI
要件
Python 3.7以上
rtmidi
ファストmcp
Python-dotenv
非同期
インストール
リポジトリをクローンします。
git clone <repository-url> cd mcp-server-midi仮想環境を作成し、アクティブ化して依存関係をインストールします。
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt設定を含む
.envファイルを作成します。PORT=8123
使用法
サーバーを実行します。
python mcp_midi_server.pyサーバーは「MCP MIDI Out」という仮想MIDIポートを作成します。このポートは他のアプリケーションでMIDI入力デバイスとして使用できます。これにより、以下のことが可能になります。
Ableton Live、Logic Pro、FL Studioなどのデジタルオーディオワークステーション(DAW)を接続して、このサーバーからMIDIを受信します。
サーバーを使用して、コンピューターのMIDIインターフェースを介してハードウェアシンセサイザーを制御します。
MIDI 入力を受け入れる他のソフトウェア (仮想楽器、照明コントローラーなど) に接続します。
お好みの MIDI 対応アプリケーションで、MIDI 入力デバイスとして「MCP MIDI Out」を選択するだけです。
MCP 構成
サーバーは Server-Sent Events (SSE) を使用します。Cursor でこれを設定する方法は次のとおりです。
{
"mcpServers": {
"midi": {
"url": "http://localhost:8123/sse"
}
}
}APIメソッド
メモを送信
MIDI Note On メッセージを送信します。
パラメータ:
note:MIDIノート番号(0-127)velocity: ノートのベロシティ (0-127、デフォルト 127)channel: MIDIチャンネル(0〜15、デフォルトは0)
ノート送信オフ
MIDI ノートオフ メッセージを送信します。
パラメータ:
note:MIDIノート番号(0-127)velocity: ノートオフベロシティ (0-127、デフォルト 64)channel: MIDIチャンネル(0〜15、デフォルトは0)
コントロール変更を送信
MIDI コントロール チェンジ (CC) メッセージを送信します。
パラメータ:
controller:CCコントローラ番号(0-127)value: CC値 (0-127)channel: MIDIチャンネル(0〜15、デフォルトは0)
MIDIシーケンスを送信する
指定された期間の MIDI ノート オン/オフ メッセージのシーケンスを送信します。
パラメータ:
events: イベント辞書のリスト。各辞書には以下の情報が含まれている必要があります。note:MIDIノート番号(0-127)velocity: ノートのベロシティ (0-127、デフォルト 127)channel: MIDIチャンネル(0〜15、デフォルトは0)duration: Note Offを送信する前にノートを保持する時間(秒)start_time: シーケンスの開始からの相対的なノート開始時間(秒)(デフォルトは 0)
例
API を使用して C メジャー コードを演奏する:
events = [
{"note": 60, "velocity": 100, "duration": 1.0, "start_time": 0.0}, # C4
{"note": 64, "velocity": 100, "duration": 1.0, "start_time": 0.0}, # E4
{"note": 67, "velocity": 100, "duration": 1.0, "start_time": 0.0}, # G4
]
# Send to the MCP MIDI Server APIライセンス
マサチューセッツ工科大学