mcp -midi
A MCP Server for sending MIDI sequences to any program that supports MIDI input
claude mcp add --transport stdio sandst1-mcp-server-midi python mcp_midi_server.py
How to use
This MCP MIDI Server exposes a virtual MIDI output port named "MCP MIDI Out" and provides an API to send MIDI messages from an LLM or other automation. It supports basic MIDI operations including Note On/Off, Control Change (CC), and sequenced events with precise timing. The server runs as a Python application and writes MIDI messages to the virtual port so any DAW or MIDI-enabled application can receive the data as if it came from a hardware or software MIDI device. You can use the API to drive musical ideas, automate software instruments, or coordinate lighting and other MIDI-controllable devices via software that accepts MIDI input.
To use it, run the Python server (the example uses mcp_midi_server.py). Once running, you can connect your preferred MIDI-capable application to the MCP MIDI Out port and start sending events through the MCP API. Typical usage includes sending Note On/Off messages for notes, CC messages for controller automation, and more complex sequences through the provided sequence API. The server exposes endpoints or methods (as described in the README) for sending individual notes, CC changes, and timed sequences, enabling you to orchestrate music creation or control workflows from your LLM or automation pipeline.
How to install
Prerequisites:\n- Python 3.7+ (preferably Python 3.8+ for compatibility)\n- pip (comes with Python)\n- A shell environment (bash/zsh on macOS/Linux, PowerShell or cmd on Windows)\n\nInstallation steps:\n1) Clone the repository:\nbash\ngit clone <repository-url>\ncd mcp-server-midi\n\n\n2) Create and activate a virtual environment, then install dependencies:\nbash\npython -m venv .venv\nsource .venv/bin/activate # On Windows use: .\.venv\Scripts\activate\n\npip install -r requirements.txt\n\n\n3) Create a configuration file (optional, you can set PORT via environment variables as shown):\nbash\n# Example .env content:\nPORT=8123\n\n\n4) Run the server:\nbash\npython mcp_midi_server.py\n\n
Additional notes
Notes and tips:\n- The server creates a virtual MIDI output named "MCP MIDI Out". In your DAW or MIDI software, select this port as a MIDI input device.\n- If you encounter permission or device access issues on macOS or Linux, ensure your user has access to virtual MIDI devices and that no other application is occupying the port.\n- The PORT can be changed by setting the PORT environment variable before launching the server (e.g., PORT=8124).\n- Ensure you have the required Python packages installed: rtmidi, fastmcp, python-dotenv, asyncio. They are listed in requirements.txt.\n- If you make changes to the code or environment, consider reactivating the virtual environment and reinstalling dependencies.\n- When sending sequences, the API supports start_time and duration for precise timing; ensure the host system clock is stable for reliable scheduling.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP