Midi MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
uv sync
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add midi-mcp -- node "<FULL_PATH_TO_MIDI_MCP>/dist/index.js"

Replace <FULL_PATH_TO_MIDI_MCP>/dist/index.js with the actual folder you prepared in step 1.

README.md

Control electronic music instruments via MIDI using Claude

midi-mcp

MCP server that lets Claude control electronic music instruments via MIDI. Exposes tools for sending MIDI messages (notes, CC, program changes, pitch bend, sysex) to hardware synths and drum machines connected via USB or DIN MIDI.

Setup

Requires uv.

cd midi-mcp
uv sync

Usage

Add to Claude Code

claude mcp add midi-mcp -- uv --directory /path/to/midi-mcp run midi-mcp

Or add manually to your MCP config:

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

Run standalone

uv run midi-mcp

Tools

Tool Description
list_midi_ports List available MIDI output ports
open_midi_port Open a specific MIDI output port by name
close_midi_port Close the currently open port
get_midi_status Return current port name and connection state
send_note_on Send Note On (channel, note, velocity)
send_note_off Send Note Off (channel, note, velocity)
send_cc Send Control Change (channel, control, value)
send_program_change Send Program Change (channel, program)
send_pitchwheel Send Pitch Bend (channel, value)
send_sysex Send SysEx message (list of data bytes)

Dependencies

Tools (10)

list_midi_portsList available MIDI output ports
open_midi_portOpen a specific MIDI output port by name
close_midi_portClose the currently open port
get_midi_statusReturn current port name and connection state
send_note_onSend Note On (channel, note, velocity)
send_note_offSend Note Off (channel, note, velocity)
send_ccSend Control Change (channel, control, value)
send_program_changeSend Program Change (channel, program)
send_pitchwheelSend Pitch Bend (channel, value)
send_sysexSend SysEx message (list of data bytes)

Configuration

claude_desktop_config.json
{"mcpServers": {"midi-mcp": {"command": "uv", "args": ["--directory", "/path/to/midi-mcp", "run", "midi-mcp"]}}}

Try it

List all available MIDI output ports connected to my computer.
Open the MIDI port named 'USB MIDI Interface' and send a Note On message for middle C at velocity 100.
Send a Control Change message on channel 1 to set CC 74 to value 64.
Close the current MIDI port after finishing the sequence.

Frequently Asked Questions

What are the key features of Midi MCP?

Supports sending MIDI notes, CC, program changes, and pitch bend. Capable of sending SysEx messages for advanced hardware control. Compatible with both USB and DIN MIDI interfaces. Provides real-time status monitoring of MIDI connections.

What can I use Midi MCP for?

Automating complex synthesizer patch changes during a live performance. Generating algorithmic MIDI sequences using AI to control hardware drum machines. Integrating hardware studio gear into an AI-assisted music production workflow.

How do I install Midi MCP?

Install Midi MCP by running: uv sync

What MCP clients work with Midi MCP?

Midi MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Midi MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare