Skip to main content
Glama

FL Studio MCP Server

AIアシスタントがMIDI通信とピアノロールスクリプトを通じてFL Studioを制御できるようにするMCP(Model Context Protocol)サーバーです。

クイックデモ

音声が少し荒いのはご容赦ください。Appleがデスクトップ音声の録音を許可してくれなかったため、マイクでクリップする必要がありました(笑)

https://github.com/user-attachments/assets/d4fc668f-9fe5-4ab4-9f18-76cd661029c6

オリジナル音声

より良い音質で聴きたい場合はこちら

https://github.com/user-attachments/assets/c2b1a5e7-1640-41fa-82bc-18ca7cbae9e8

機能

トランスポート制御

  • 再生の再生、一時停止、停止

  • 録音の切り替え

  • 再生位置の設定

  • 曲の長さと位置の取得

  • ループモード(パターン/ソング)の制御

  • 再生速度の調整

ミキサー制御

  • トラックのボリュームとパンの取得/設定

  • トラックのミュート/ソロ

  • 録音用トラックの有効化(Arm)

  • トラック名と色の設定

  • ステレオセパレーションの制御

チャンネルラック制御

  • 全チャンネルのリスト表示

  • チャンネルプロパティ(ボリューム、パン、名前、色)の取得/設定

  • チャンネルのミュート/ソロ

  • チャンネルのミキサートラックへのルーティング

  • MIDIノートのリアルタイムトリガー

  • ステップシーケンサー制御(グリッドビットの取得/設定)

プラグイン制御

  • プラグインパラメータのリスト表示

  • パラメータ値の取得/設定

  • プリセットのナビゲーション(次へ/前へ)

  • プラグイン情報のクエリ

ピアノロール制御

  • 正確なタイミングでのピアノロールへのノート追加

  • 単一コマンドでのコード追加

  • MIDI番号と時間による特定のノートの削除

  • ピアノロールからの全ノートのクリア

  • 既存の全ノートを確認するためのピアノロール状態の読み取り

  • キー入力による自動トリガー(macOSではCmd+Opt+Y、WindowsではCtrl+Alt+Y)

Related MCP server: FL Studio MCP Server

重要な制限事項

プラグインの読み込み不可

FL StudioのスクリプトAPIは、新しいVST/AUプラグインの読み込みをサポートしていません。プロジェクトに既に読み込まれているプラグインのパラメータのみを制御できます。

パターンの作成不可

プログラムで新しいパターンを作成するAPIはありません。既存のパターンでのみ作業可能です。

要件

  • FL Studio 20.7以降(MIDIコントローラー・スクリプトAPI)

  • Python 3.10以降

  • macOS または Windows

    • macOS: IACドライバ(組み込み、有効化が必要)

    • Windows: loopMIDI

クイックインストール

最も簡単なインストール方法は、提供されているセットアップスクリプトを使用することです:

# Clone the repository
git clone https://github.com/karl-andres/fl-studio-mcp.git
cd fl-studio-mcp

# Run the one-command installer
./install.sh

これにより、以下の処理が行われます:

  1. uv が存在しない場合はインストール

  2. Pythonの依存関係をインストール

  3. 仮想MIDIポート(Macの場合はIACドライバ)の有効化をガイド

  4. FL Studio MIDIコントローラースクリプトをインストール

  5. ピアノロールスクリプト(ComposeWithLLM)をインストール

  6. Claude DesktopまたはClaude Codeを自動的に設定

手動インストール

1. Pythonの依存関係をインストール

# Using uv (recommended)
uv sync

# Or using pip
pip install -e .

2. 仮想MIDIポートの有効化

macOS (IACドライバ)

  1. Audio MIDI設定を開く(Spotlightで検索)

  2. Cmd+2を押すか、ウィンドウ > MIDIスタジオを表示を選択

  3. IACドライバをダブルクリック

  4. **「デバイスはオンライン」**にチェックを入れる

  5. 適用をクリック

Windows (loopMIDI)

  1. loopMIDI をダウンロードしてインストール

  2. 仮想ポートを作成(名前は何でもOK)

  3. FL Studioの使用中はloopMIDIを起動したままにする

3. FL Studioスクリプトのインストール

コントローラースクリプトをFL StudioのHardwareフォルダにコピーします:

# macOS
mkdir -p ~/Documents/Image-Line/FL\ Studio/Settings/Hardware/FLStudioMCP
cp fl_controller/device_FLStudioMCP.py ~/Documents/Image-Line/FL\ Studio/Settings/Hardware/FLStudioMCP/

# Windows
mkdir "%USERPROFILE%\Documents\Image-Line\FL Studio\Settings\Hardware\FLStudioMCP"
copy fl_controller\device_FLStudioMCP.py "%USERPROFILE%\Documents\Image-Line\FL Studio\Settings\Hardware\FLStudioMCP\"

ピアノロールスクリプトをコピーします:

# macOS
cp scripts/ComposeWithLLM.pyscript ~/Documents/Image-Line/FL\ Studio/Settings/Piano\ roll\ scripts/

# Windows
copy scripts\ComposeWithLLM.pyscript "%USERPROFILE%\Documents\Image-Line\FL Studio\Settings\Piano roll scripts\"

4. FL Studioの設定

  1. FL Studioを再起動(起動中の場合)

  2. Options > MIDI Settingsを開く

  3. Inputの下で、仮想MIDIポート(例: "IAC Driver Bus 1")を見つける

  4. Controller typeFLStudioMCPに設定

  5. ポートを有効にする(クリックしてハイライト表示にする)

5. Claudeの設定

Claude Desktopの設定(macOSの場合は ~/Library/Application Support/Claude/claude_desktop_config.json)に追加します:

{
  "mcpServers": {
    "fl-studio": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/fl-studio-mcp", "fl-studio-mcp"]
    }
  }
}

またはClaude Codeの場合は、MCP設定に追加してください。

使用方法

サーバーの手動実行

# Using uv
uv run fl-studio-mcp

# Or after installation
fl-studio-mcp

ピアノロールのワークフロー

  1. FL Studioを開き、チャンネルを選択

  2. ピアノロールを開く(F7またはチャンネルをダブルクリック)

  3. 初回のみ、スクリプトを手動で実行:Tools > Scripting > ComposeWithLLM

  4. 以降は、MCPツールが自動的にスクリプトをトリガーします

利用可能なツール

接続

ツール

説明

fl_connect

FL Studioに接続/再接続

fl_connection_status

接続状態を取得

トランスポート

ツール

説明

fl_play

再生を開始/一時停止

fl_stop

再生を停止

fl_record

録音を切り替え

fl_get_transport_status

再生/録音状態を取得

fl_set_song_position

再生位置を設定

fl_get_song_length

曲の長さを取得

fl_set_loop_mode

パターン/ソングモードを切り替え

fl_set_playback_speed

再生速度を調整 (0.25x-4x)

ミキサー

ツール

説明

fl_get_mixer_track_count

ミキサートラック数を取得

fl_get_mixer_track_info

トラックの詳細を取得

fl_get_all_mixer_tracks

全トラックをリスト表示

fl_set_track_volume

トラックのボリュームを設定

fl_set_track_pan

トラックのパンを設定

fl_mute_track

トラックをミュート/解除

fl_solo_track

トラックをソロ/解除

fl_arm_track

録音用にトラックを有効化

fl_set_track_name

トラック名を変更

fl_set_track_color

トラックの色を設定

fl_set_stereo_separation

ステレオ幅を調整

チャンネル

ツール

説明

fl_get_channel_count

チャンネル数を取得

fl_get_channel_info

チャンネルの詳細を取得

fl_get_all_channels

全チャンネルをリスト表示

fl_get_selected_channel

選択中のチャンネルを取得

fl_select_channel

チャンネルを選択/解除

fl_select_one_channel

チャンネルを単独選択

fl_trigger_note

MIDIノートをトリガー (リアルタイム)

fl_set_channel_volume

チャンネルのボリュームを設定

fl_set_channel_pan

チャンネルのパンを設定

fl_mute_channel

チャンネルをミュート/解除

fl_solo_channel

チャンネルをソロ/解除

fl_set_channel_name

チャンネル名を変更

fl_set_channel_color

チャンネルの色を設定

fl_route_channel_to_mixer

ミキサートラックへルーティング

fl_get_grid_bit

ステップシーケンサーのステップを取得

fl_set_grid_bit

ステップシーケンサーのステップを設定

fl_get_step_sequence

パターン全体を取得

fl_set_step_sequence

パターン全体を設定

プラグイン

ツール

説明

fl_is_plugin_valid

プラグインが存在するか確認

fl_get_plugin_name

プラグイン名を取得

fl_get_plugin_param_count

パラメータ数を取得

fl_get_plugin_params

全パラメータをリスト表示

fl_get_plugin_param_value

パラメータ値を取得

fl_set_plugin_param_value

パラメータ値を設定

fl_get_preset_count

プリセット数を取得

fl_next_preset

次のプリセット

fl_prev_preset

前のプリセット

fl_get_plugin_color

プラグインの色を取得

ピアノロール

ツール

説明

fl_send_notes

ピアノロールにノートを追加

fl_send_chord

コードを追加 (同時に複数のノート)

fl_delete_notes

特定のノートを削除

fl_clear_piano_roll

全ノートをクリア

fl_get_piano_roll_state

現在のピアノロールのノートを読み取り

fl_trigger_script

FL Studioスクリプトを手動でトリガー

fl_get_piano_roll_info

ピアノロールのシステム情報を取得

fl_clear_request_queue

保留中のキューをキャンセル

ワークフロー例

ミックスの調整

"Set the volume of mixer track 1 to 80% and pan it slightly left"

ドラムパターンの作成

"Create a basic kick pattern on channel 0 with kicks on steps 0, 4, 8, and 12"

ピアノロールへのメロディ追加

"Add a C major arpeggio starting at beat 0: C4, E4, G4, C5 - each note quarter duration"

コードの追加

"Add a C major chord at beat 0, then F major at beat 2, then G major at beat 4"

プラグインパラメータの自動化

"List the parameters of the plugin on channel 0 and set the filter cutoff to 50%"

トラブルシューティング

"Not connected to FL Studio"

  1. FL Studioが起動していることを確認

  2. MIDI設定でFLStudioMCPコントローラーが有効になっているか確認

  3. Macの場合、Audio MIDI設定でIACドライバが有効か確認

  4. Windowsの場合、loopMIDIが起動しているか確認

  5. コントローラーを有効にした後、FL Studioを再起動

"Timeout waiting for FL Studio response"

  1. FL Studioがアクティブ(フォーカス)であることを確認

  2. FL Studioのスクリプト出力ウィンドウを確認 (View > Script output)

  3. コントローラーがMIDIを受信しているか確認(MIDI設定でアクティビティを確認)

ピアノロールスクリプトがトリガーされない

  1. 初回:FL Studioで Tools > Scripting > ComposeWithLLM を手動実行

  2. macOS:プロンプトが表示されたらアクセシビリティ権限を許可

  3. トリガー時にFL Studioがアクティブであることを確認

  4. 手動でCmd+Opt+Y (macOS) または Ctrl+Alt+Y (Windows) を押してみる

MIDIポートが利用できない

  • macOS: Audio MIDI設定でIACドライバを有効化

  • Windows: loopMIDIをインストールして実行

アーキテクチャ

このMCPサーバーはハイブリッドアプローチを採用しています:

┌─────────────────┐     ┌─────────────────────────────────────────┐
│   MCP Client    │────▶│           FastMCP Server                │
│  (Claude, etc)  │     │                                         │
└─────────────────┘     │  ┌─────────────────┐  ┌──────────────┐  │
                        │  │ MIDI + JSON     │  │ Piano Roll   │  │
                        │  │ Tools           │  │ Tools (JSON) │  │
                        │  └────────┬────────┘  └──────┬───────┘  │
                        └───────────┼──────────────────┼──────────┘
                                    │                  │
                               MIDI + JSON        JSON Files +
                                    │              Keystroke
                                    ▼                  ▼
                        ┌─────────────────────────────────────────┐
                        │              FL Studio                   │
                        │  ┌──────────────┐  ┌──────────────────┐ │
                        │  │FLStudioMCP   │  │ Piano Roll Script│ │
                        │  │(MIDI Ctrl)   │  │ (ComposeWithLLM) │ │
                        │  └──────────────┘  └──────────────────┘ │
                        └─────────────────────────────────────────┘

仕組み

  1. トランスポート/ミキサー/チャンネル/プラグイン

    • MCPサーバーがJSONファイルにコマンドを書き込み

    • FL StudioにMIDIトリガーノートを送信

    • FL StudioコントローラースクリプトがJSONを読み取り、APIを実行し、レスポンスを書き込み

    • MCPサーバーがレスポンスを読み取り

  2. ピアノロール

    • MCPサーバーがノートリクエストをJSONファイルに書き込み

    • キー入力(Cmd+Opt+Y)を送信してFL Studioスクリプトをトリガー

    • ピアノロールスクリプトがJSONを読み取り、ノートを修正

開発

前提条件

  • Python 3.10以降

  • uv (推奨)

セットアップ

# Install all dependencies including dev extras
uv sync --dev

# Or with pip
pip install -e ".[dev]"

利用可能なコマンド

コマンド

説明

uv run fl-studio-mcp

MCPサーバーを実行

uv run ruff check .

コードベースをリント

uv run ruff check --fix .

リントと自動修正

uv run pytest

テストを実行

プロジェクト構造

fl-studio-mcp/
├── fl_controller/
│   └── device_FLStudioMCP.py   # FL Studio MIDI controller script (runs inside FL Studio)
├── scripts/
│   ├── setup.sh                 # FL Studio script installer
│   ├── install_mcp_for_claude.sh # Claude config installer
│   └── ComposeWithLLM.pyscript  # Piano Roll script (runs inside FL Studio)
├── src/fl_studio_mcp/
│   ├── server.py                # FastMCP server entry point
│   ├── tools/                   # MCP tool implementations
│   │   ├── channels.py
│   │   ├── mixer.py
│   │   ├── piano_roll.py
│   │   ├── plugins.py
│   │   └── transport.py
│   └── utils/
│       ├── connection.py        # FL Studio connection wrapper
│       ├── fl_trigger.py        # Piano roll keystroke trigger
│       └── midi_connection.py   # MIDI + JSON communication layer
└── install.sh                   # One-command installer

クレジット

ライセンス

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that connects AI assistants to FL Studio for music production via Virtual MIDI. It enables users to control transport, manage the mixer, write notes, and manipulate plugin parameters through natural language.
    1
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to control FL Studio on Windows through a local MCP server without cloud dependencies. Bridges MCP clients to FL Studio's Python scripting environment via file-based IPC for project management, transport control, and UI workflow automation.
    -
  • A
    license
    A
    quality
    C
    maintenance
    AI control for FL Studio via the Model Context Protocol — full in-DAW mixing (Mix Doctor diagnosis, gain staging, EQ/compression/reverb, reference matching), routing, and composition through Claude and any MCP client. 67 tools. Windows.
    67
    34
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/karl-andres/fl-studio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server