Skip to main content
Glama

Servidor MCP de FL Studio

Un servidor MCP (Model Context Protocol) que permite a los asistentes de IA controlar FL Studio a través de comunicación MIDI y scripts de Piano Roll.

Demo rápida

No prestes atención al audio, tuve que recortarlo con mi micrófono porque Apple no me dejaba grabar el audio del escritorio jajaja

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

Audio original

Si quieres escuchar el audio con mejor calidad

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

Características

Control de transporte

  • Reproducir, pausar, detener la reproducción

  • Alternar grabación

  • Establecer posición de reproducción

  • Obtener longitud y posición de la canción

  • Controlar modo de bucle (patrón/canción)

  • Ajustar velocidad de reproducción

Control del mezclador

  • Obtener/establecer volumen y panorama de pista

  • Silenciar/solo en pistas

  • Armar pistas para grabación

  • Establecer nombres y colores de pista

  • Control de separación estéreo

Control del rack de canales

  • Listar todos los canales

  • Obtener/establecer propiedades de canal (volumen, panorama, nombre, color)

  • Silenciar/solo en canales

  • Enrutar canales a pistas del mezclador

  • Disparar notas MIDI en tiempo real

  • Control del secuenciador por pasos (obtener/establecer bits de rejilla)

Control de plugins

  • Listar parámetros de plugin

  • Obtener/establecer valores de parámetros

  • Navegar por presets (siguiente/anterior)

  • Consultar información del plugin

Control del Piano Roll

  • Añadir notas al piano roll con sincronización precisa

  • Añadir acordes con un solo comando

  • Eliminar notas específicas por número MIDI y tiempo

  • Borrar todas las notas del piano roll

  • Leer el estado del piano roll para ver todas las notas existentes

  • Disparo automático mediante pulsación de teclas (Cmd+Opt+Y en macOS, Ctrl+Alt+Y en Windows)

Related MCP server: FL Studio MCP Server

Limitaciones importantes

No se pueden cargar plugins

La API de scripting de FL Studio no admite la carga de nuevos plugins VST/AU. Solo puedes controlar los parámetros de los plugins que ya están cargados en tu proyecto.

No se pueden crear patrones

No existe una API para crear nuevos patrones mediante programación. Solo puedes trabajar con patrones existentes.

Requisitos

  • FL Studio 20.7+ (API de scripting de controlador MIDI)

  • Python 3.10+

  • macOS o Windows

    • macOS: Controlador IAC (integrado, debe estar habilitado)

    • Windows: loopMIDI

Instalación rápida

La forma más fácil de instalar es usando el script de configuración proporcionado:

# 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

Esto hará lo siguiente:

  1. Instalar uv si no está presente

  2. Instalar dependencias de Python

  3. Guiarte a través de la habilitación de puertos MIDI virtuales (Controlador IAC en Mac)

  4. Instalar el script de controlador MIDI de FL Studio

  5. Instalar el script de Piano Roll (ComposeWithLLM)

  6. Configurar Claude Desktop o Claude Code automáticamente

Instalación manual

1. Instalar dependencias de Python

# Using uv (recommended)
uv sync

# Or using pip
pip install -e .

2. Habilitar puertos MIDI virtuales

macOS (Controlador IAC)

  1. Abre Configuración de Audio MIDI (busca en Spotlight)

  2. Presiona Cmd+2 o ve a Ventana > Mostrar estudio MIDI

  3. Haz doble clic en Controlador IAC

  4. Marca "El dispositivo está en línea"

  5. Haz clic en Aplicar

Windows (loopMIDI)

  1. Descarga e instala loopMIDI

  2. Crea un puerto virtual (cualquier nombre funciona)

  3. Mantén loopMIDI ejecutándose mientras usas FL Studio

3. Instalar scripts de FL Studio

Copia el script del controlador a la carpeta Hardware de FL Studio:

# 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\"

Copia el script de Piano Roll:

# 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. Configurar FL Studio

  1. Reinicia FL Studio (si se está ejecutando)

  2. Ve a Opciones > Configuración MIDI

  3. En Entrada, busca tu puerto MIDI virtual (ej. "IAC Driver Bus 1")

  4. Establece el Tipo de controlador en FLStudioMCP

  5. Habilita el puerto (haz clic para resaltarlo)

5. Configurar Claude

Añade a tu configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json en macOS):

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

O para Claude Code, añade a tus ajustes de MCP.

Uso

Ejecutar el servidor manualmente

# Using uv
uv run fl-studio-mcp

# Or after installation
fl-studio-mcp

Flujo de trabajo del Piano Roll

  1. Abre FL Studio y selecciona un canal

  2. Abre el Piano Roll (F7 o haz doble clic en el canal)

  3. La primera vez, ejecuta manualmente el script: Herramientas > Scripting > ComposeWithLLM

  4. Después de eso, las herramientas MCP dispararán el script automáticamente

Herramientas disponibles

Conexión

Herramienta

Descripción

fl_connect

Conectar/reconectar a FL Studio

fl_connection_status

Obtener estado de conexión

Transporte

Herramienta

Descripción

fl_play

Iniciar/pausar reproducción

fl_stop

Detener reproducción

fl_record

Alternar grabación

fl_get_transport_status

Obtener estado de reproducción/grabación

fl_set_song_position

Establecer posición de reproducción

fl_get_song_length

Obtener duración de la canción

fl_set_loop_mode

Cambiar entre modo patrón/canción

fl_set_playback_speed

Ajustar velocidad de reproducción (0.25x-4x)

Mezclador

Herramienta

Descripción

fl_get_mixer_track_count

Obtener número de pistas del mezclador

fl_get_mixer_track_info

Obtener detalles de pista

fl_get_all_mixer_tracks

Listar todas las pistas

fl_set_track_volume

Establecer volumen de pista

fl_set_track_pan

Establecer panorama de pista

fl_mute_track

Silenciar/activar pista

fl_solo_track

Solo/activar pista

fl_arm_track

Armar pista para grabación

fl_set_track_name

Renombrar pista

fl_set_track_color

Establecer color de pista

fl_set_stereo_separation

Ajustar ancho estéreo

Canales

Herramienta

Descripción

fl_get_channel_count

Obtener número de canales

fl_get_channel_info

Obtener detalles de canal

fl_get_all_channels

Listar todos los canales

fl_get_selected_channel

Obtener canal seleccionado

fl_select_channel

Seleccionar/deseleccionar canal

fl_select_one_channel

Seleccionar canal exclusivamente

fl_trigger_note

Disparar nota MIDI (tiempo real)

fl_set_channel_volume

Establecer volumen de canal

fl_set_channel_pan

Establecer panorama de canal

fl_mute_channel

Silenciar/activar canal

fl_solo_channel

Solo/activar canal

fl_set_channel_name

Renombrar canal

fl_set_channel_color

Establecer color de canal

fl_route_channel_to_mixer

Enrutar a pista del mezclador

fl_get_grid_bit

Obtener paso del secuenciador

fl_set_grid_bit

Establecer paso del secuenciador

fl_get_step_sequence

Obtener patrón completo

fl_set_step_sequence

Establecer patrón completo

Plugins

Herramienta

Descripción

fl_is_plugin_valid

Comprobar si el plugin existe

fl_get_plugin_name

Obtener nombre del plugin

fl_get_plugin_param_count

Obtener número de parámetros

fl_get_plugin_params

Listar todos los parámetros

fl_get_plugin_param_value

Obtener valor del parámetro

fl_set_plugin_param_value

Establecer valor del parámetro

fl_get_preset_count

Obtener número de presets

fl_next_preset

Siguiente preset

fl_prev_preset

Preset anterior

fl_get_plugin_color

Obtener color del plugin

Piano Roll

Herramienta

Descripción

fl_send_notes

Añadir notas al piano roll

fl_send_chord

Añadir un acorde (varias notas al mismo tiempo)

fl_delete_notes

Eliminar notas específicas

fl_clear_piano_roll

Borrar todas las notas

fl_get_piano_roll_state

Leer notas actuales del piano roll

fl_trigger_script

Disparar manualmente el script de FL Studio

fl_get_piano_roll_info

Obtener información del sistema del piano roll

fl_clear_request_queue

Cancelar cambios pendientes en cola

Ejemplos de flujos de trabajo

Ajustar una mezcla

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

Crear un patrón de batería

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

Añadir una melodía al Piano Roll

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

Añadir acordes

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

Automatizar parámetros de plugins

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

Solución de problemas

"No conectado a FL Studio"

  1. Asegúrate de que FL Studio esté ejecutándose

  2. Comprueba que el controlador FLStudioMCP esté habilitado en la Configuración MIDI

  3. En Mac, verifica que el Controlador IAC esté habilitado en Configuración de Audio MIDI

  4. En Windows, verifica que loopMIDI se esté ejecutando

  5. Reinicia FL Studio después de habilitar el controlador

"Tiempo de espera agotado esperando respuesta de FL Studio"

  1. Asegúrate de que FL Studio esté en primer plano

  2. Comprueba la ventana de salida de Script en FL Studio (Ver > Salida de script)

  3. Verifica que el controlador esté recibiendo MIDI (busca actividad en la Configuración MIDI)

El script de Piano Roll no se dispara

  1. Primera vez: ejecuta manualmente Herramientas > Scripting > ComposeWithLLM en FL Studio

  2. En macOS: otorga permisos de Accesibilidad cuando se solicite

  3. Asegúrate de que FL Studio esté en primer plano al disparar

  4. Intenta presionar Cmd+Opt+Y (macOS) o Ctrl+Alt+Y (Windows) manualmente

No hay puertos MIDI disponibles

  • macOS: Habilita el Controlador IAC en Configuración de Audio MIDI

  • Windows: Instala y ejecuta loopMIDI

Arquitectura

Este servidor MCP utiliza un enfoque híbrido:

┌─────────────────┐     ┌─────────────────────────────────────────┐
│   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) │ │
                        │  └──────────────┘  └──────────────────┘ │
                        └─────────────────────────────────────────┘

Cómo funciona

  1. Transporte/Mezclador/Canales/Plugins:

    • El servidor MCP escribe el comando en un archivo JSON

    • Envía una nota de disparo MIDI a FL Studio

    • El script del controlador de FL Studio lee el JSON, ejecuta la API, escribe la respuesta

    • El servidor MCP lee la respuesta

  2. Piano Roll:

    • El servidor MCP escribe solicitudes de notas en un archivo JSON

    • Envía una pulsación de tecla (Cmd+Opt+Y) para disparar el script de FL Studio

    • El script de Piano Roll lee el JSON y modifica las notas

Desarrollo

Requisitos previos

  • Python 3.10+

  • uv (recomendado)

Configuración

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

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

Comandos disponibles

Comando

Descripción

uv run fl-studio-mcp

Ejecutar el servidor MCP

uv run ruff check .

Analizar el código

uv run ruff check --fix .

Analizar y corregir automáticamente

uv run pytest

Ejecutar pruebas

Estructura del proyecto

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

Créditos

Licencia

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