MCP MIDI Server
@sandst1
A MCP Server for sending MIDI sequences to any program that supports MIDI input
Overview
What is MCP MIDI Server?
MCP MIDI Server is a FastMCP server that enables an LLM to send MIDI sequences into any software that supports MIDI input. It creates a virtual MIDI output port named "MCP MIDI Out" that appears as a selectable MIDI input device in digital audio workstations, hardware synthesizer interfaces, and other MIDI-compatible applications.
How to use MCP MIDI Server?
Clone the repository, create a Python virtual environment (Python 3.7+), install dependencies from requirements.txt, and create a .env file with a PORT setting (default 8123). Run python mcp_midi_server.py to start the server. In your MIDI application, select "MCP MIDI Out" as a MIDI input device. To connect from an MCP client like Cursor, add a configuration entry with "url": "http://localhost:<PORT>/sse".
Key features of MCP MIDI Server
- Creates a virtual MIDI output port
- Sends MIDI Note On/Off messages
- Sends Control Change (CC) messages
- Sequences MIDI events with precise timing
- Works with any application that accepts MIDI input
Use cases of MCP MIDI Server
- Connect to DAWs like Ableton Live, Logic Pro, or FL Studio to receive MIDI from an LLM
- Control hardware synthesizers through a computer’s MIDI interface
- Drive virtual instruments, lighting controllers, or any MIDI‑compatible software
- Generate musical sequences (e.g., chords, melodies) programmatically via an LLM
FAQ from MCP MIDI Server
What are the runtime requirements?
Python 3.7+ and the packages rtmidi, fastmcp, python-dotenv, and asyncio are required.
How do I configure an MCP client to connect to the server?
The server uses Server-Sent Events (SSE). In Cursor, add an MCP server entry with "url": "http://localhost:8123/sse" (adjust the port if changed in .env).
What MIDI messages can the server send?
It supports MIDI Note On, Note Off, Control Change, and sequences of timed Note On/Off events.
Which applications can receive MIDI from this server?
Any application that accepts MIDI input—such as Ableton Live, Logic Pro, FL Studio, virtual instruments, or lighting controllers—can select the “MCP MIDI Out” virtual port.
Are there any known limitations?
The README does not mention specific limits, but MIDI parameters (note, velocity, controller, channel) are constrained to standard 0‑127 ranges, and sequencing uses time in seconds.