MIDI Control MCP Server
April 12, 2025 ยท View on GitHub
A Model Context Protocol server for sending MIDI messages to output devices.
This TypeScript-based MCP server provides tools to interact with MIDI output devices, allowing you to send note and control change messages to specified MIDI channels.
Features
Tools
list_ports
Lists all available MIDI output ports on the system.
- No parameters required
- Returns port names and manufacturers
send_messages
Sends multiple MIDI messages (notes and control changes) to a specified port.
- Parameters:
port: MIDI output port name (required)notes: Array of note messages (optional)channel: MIDI channel (1-16)note: Note number (0-127)velocity: Note velocity (0-127)release: Note release velocity (0-127)duration: Note duration in millisecondstime: Time in milliseconds to send the message (optional)
controls: Array of control change messages (optional)channel: MIDI channel (1-16)controller: Controller number (0-127)value: Control value (0-127)time: Time in milliseconds to send the message (optional)
Development
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Installation
Prerequisites
- Install Node.js and npm
- For Windows users, install loopMIDI to create virtual MIDI ports for testing
Setup with Claude Desktop
Add the server configuration to:
- Windows:
%APPDATA%/Claude/claude_desktop_config.json - MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"midi-control-mcp": {
"command": "node",
"args": ["/path/to/midi-control-mcp/build/index.js"]
}
}
}