1. Conduid
  2. Developer Tools
  3. Midi
MCP server · Developer Tools

Midi

A MCP Server for sending MIDI sequences to any program that supports MIDI input

Unclaimed last commit a year ago devtools
46Fair

Scored 14 days ago · breakdown

About Midi

Midi is an MCP server published by sandst1 in the Developer Tools category: a MCP Server for sending MIDI sequences to any program that supports MIDI input.

The repository has 17 stars and 4 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

Claude Code
claude mcp add midi -- npx -y midi-mcp
npx
npx -y midi-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Midi

Powered by Claude · Grounded in docs

I know everything about Midi. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • !License declaredNo license file. Legally you have no right to use it in a product.
  • !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
  • !Dependencies pinnedNo lockfile. Installs can pull different code over time.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

MCP MIDI Server

A FastMCP Server which allows an LLM to send MIDI sequences into any software that supports MIDI input.

Features

  • Creates a virtual MIDI output port
  • Sends MIDI Note On/Off messages
  • Sends Control Change (CC) messages
  • Sequences MIDI events with precise timing
  • Can be used as a MIDI input device in any application that supports MIDI

Requirements

  • Python 3.7+
  • rtmidi
  • fastmcp
  • python-dotenv
  • asyncio

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd mcp-server-midi
    
  2. Create a virtual env, activate it and install dependencies:

    python -m venv .venv
    source .venv/bin/activate
    
    pip install -r requirements.txt
    
  3. Create a .env file with your configuration:

    PORT=8123
    

Usage

Run the server:

python mcp_midi_server.py

The server creates a virtual MIDI port named "MCP MIDI Out" that can be used as a MIDI input device in other applications. This means you can:

  • Connect digital audio workstations (DAWs) like Ableton Live, Logic Pro, or FL Studio to receive MIDI from this server
  • Use the server to control hardware synthesizers through your computer's MIDI interface
  • Connect to any other software that accepts MIDI input (virtual instruments, lighting controllers, etc.)

Simply select "MCP MIDI Out" as a MIDI input device in your preferred MIDI-compatible application.

MCP Config

The server uses Server-Sent Events (SSE), this is how to config it in Cursor:

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

API Methods

Send Note On

Sends a MIDI Note On message.

Parameters:

  • note: MIDI note number (0-127)
  • velocity: Note velocity (0-127, default 127)
  • channel: MIDI channel (0-15, default 0)

Send Note Off

Sends a MIDI Note Off message.

Parameters:

  • note: MIDI note number (0-127)
  • velocity: Note off velocity (0-127, default 64)
  • channel: MIDI channel (0-15, default 0)

Send Control Change

Sends a MIDI Control Change (CC) message.

Parameters:

  • controller: CC controller number (0-127)
  • value: CC value (0-127)
  • channel: MIDI channel (0-15, default 0)

Send MIDI Sequence

Sends a sequence of MIDI Note On/Off messages with specified durations.

Parameters:

  • events: A list of event dictionaries. Each dictionary must contain:
    • note: MIDI note number (0-127)
    • velocity: Note velocity (0-127, default 127)
    • channel: MIDI channel (0-15, default 0)
    • duration: Time in seconds to hold the note before sending Note Off
    • start_time: Time in seconds when to start the note, relative to sequence start (default 0)

Example

Using the API to play a C major chord:

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

License

MIT

README fetched from the repository 7 days ago. The original is authoritative.

Questions

About Midi

How do I install Midi?

Run claude mcp add midi -- npx -y midi-mcp, then add the server to your MCP client's configuration.

Is Midi safe to use with an AI agent?

Its trust score is 46 out of 100 (fair). It passes 2 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Midi still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.