mcpField
M
MCP MIDI Server

MCP MIDI Server

リモート
github.com/sandst1メディア・デザイン1780 週間前に更新
リポジトリ

MCP MIDI Server について

MCP MIDI Serverは、MIDI入力に対応するソフトウェアやハードウェアへ、MIDIメッセージや時間指定のノートシーケンスを送るFastMCPサーバーです。LLMからMIDI対応アプリを操作する用途を想定しています。

主な機能

  1. 01仮想MIDI出力ポートの作成
  2. 02Note On/Note Offメッセージの送信
  3. 03Control Changeメッセージの送信
  4. 04タイミング指定付きMIDIイベントの再生
  5. 05MIDI対応アプリへの接続

活用シーン

  1. 01DAWへノートを送信
  2. 02ハードウェアシンセサイザーの制御
  3. 03バーチャル楽器で時間指定シーケンスを再生
  4. 04照明コントローラーへMIDI入力を送信

MCP 対応

MCPクライアントに、MIDIメッセージとシーケンスを送信するツールを公開します。SSEを使用し、http://localhost:8123/sse のようなエンドポイントで設定できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttp://localhost:8123/sse
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

MCP MIDI サーバー

LLM が MIDI 入力に対応した任意のソフトウェアに MIDI シーケンスを送信できる FastMCP サーバーです。

機能

  • 仮想 MIDI 出力ポートを作成します
  • MIDI ノートオン/オフメッセージを送信します
  • コントロールチェンジ(CC)メッセージを送信します
  • 正確なタイミングで MIDI イベントをシーケンスします
  • MIDI 入力に対応した任意のアプリケーションで MIDI 入力デバイスとして使用できます

必要条件

  • Python 3.7+
  • rtmidi
  • fastmcp
  • python-dotenv
  • asyncio

インストール

  1. リポジトリをクローンします:

    git clone <repository-url>
    cd mcp-server-midi
    
  2. 仮想環境を作成して有効化し、依存関係をインストールします:

    python -m venv .venv
    source .venv/bin/activate
    
    pip install -r requirements.txt
    
  3. 設定を記述した .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: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:ノートオフを送信するまでノートを保持する時間(秒)
    • 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

ライセンス

MIT

コメント

MCP は初めてですか?

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

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