MCP MIDI Server

by sandst1
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Enables configuration of the MCP server through environment variables stored in a .env file, allowing users to specify settings like the server port.

  • Provides installation instructions that utilize Git for cloning the repository to set up the MCP MIDI server.

  • Creates a virtual MIDI output port that can send MIDI Note On/Off messages and Control Change (CC) messages with precise timing to any software that supports MIDI input, such as digital audio workstations (DAWs), hardware synthesizers, and other MIDI-compatible applications.

Servidor MIDI MCP

Un servidor FastMCP que permite que un LLM envíe secuencias MIDI a cualquier software que admita entrada MIDI.

Características

  • Crea un puerto de salida MIDI virtual
  • Envía mensajes de activación/desactivación de notas MIDI
  • Envía mensajes de cambio de control (CC)
  • Secuencia eventos MIDI con sincronización precisa
  • Se puede utilizar como dispositivo de entrada MIDI en cualquier aplicación que admita MIDI.

Requisitos

  • Python 3.7+
  • rtmidi
  • fastmcp
  • python-dotenv
  • asincronía

Instalación

  1. Clonar el repositorio:
    git clone <repository-url> cd mcp-server-midi
  2. Crea un entorno virtual, actívalo e instala las dependencias:
    python -m venv .venv source .venv/bin/activate pip install -r requirements.txt
  3. Crea un archivo .env con tu configuración:
    PORT=8123

Uso

Ejecutar el servidor:

python mcp_midi_server.py

El servidor crea un puerto MIDI virtual llamado "MCP MIDI Out" que puede usarse como dispositivo de entrada MIDI en otras aplicaciones. Esto significa que puede:

  • Conecte estaciones de trabajo de audio digital (DAW) como Ableton Live, Logic Pro o FL Studio para recibir MIDI desde este servidor
  • Utilice el servidor para controlar sintetizadores de hardware a través de la interfaz MIDI de su computadora
  • Conéctese a cualquier otro software que acepte entrada MIDI (instrumentos virtuales, controladores de iluminación, etc.)

Simplemente seleccione “MCP MIDI Out” como dispositivo de entrada MIDI en su aplicación compatible con MIDI preferida.

Configuración de MCP

El servidor utiliza eventos enviados por el servidor (SSE), así es como se configura en Cursor:

{ "mcpServers": { "midi": { "url": "http://localhost:8123/sse" } } }

Métodos API

Enviar nota sobre

Envía un mensaje de nota MIDI activada.

Parámetros:

  • note : número de nota MIDI (0-127)
  • velocity : Velocidad de la nota (0-127, predeterminado 127)
  • channel : canal MIDI (0-15, predeterminado 0)

Desactivar la función de enviar nota

Envía un mensaje de nota desactivada MIDI.

Parámetros:

  • note : número de nota MIDI (0-127)
  • velocity : Nota de velocidad (0-127, predeterminado 64)
  • channel : canal MIDI (0-15, predeterminado 0)

Enviar cambio de control

Envía un mensaje de cambio de control MIDI (CC).

Parámetros:

  • controller : número de controlador CC (0-127)
  • value : valor CC (0-127)
  • channel : canal MIDI (0-15, predeterminado 0)

Enviar secuencia MIDI

Envía una secuencia de mensajes de nota MIDI activada/desactivada con duraciones especificadas.

Parámetros:

  • events : Una lista de diccionarios de eventos. Cada diccionario debe contener:
    • note : número de nota MIDI (0-127)
    • velocity : Velocidad de la nota (0-127, predeterminado 127)
    • channel : canal MIDI (0-15, predeterminado 0)
    • duration : Tiempo en segundos para mantener la nota antes de enviarla. Nota desactivada.
    • start_time : Tiempo en segundos en el que se iniciará la nota, en relación al inicio de la secuencia (valor predeterminado 0)

Ejemplo

Usando la API para tocar un acorde de Do mayor:

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

Licencia

Instituto Tecnológico de Massachusetts (MIT)

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor FastMCP que crea un puerto de salida MIDI virtual, lo que permite a los LLM generar y enviar datos MIDI a cualquier software que acepte la entrada MIDI.

  1. Features
    1. Requirements
      1. Installation
        1. Usage
          1. MCP Config
            1. API Methods
              1. Send Note On
              2. Send Note Off
              3. Send Control Change
              4. Send MIDI Sequence
            2. Example
              1. License
                ID: z2mandv3yv