MCP MIDI服务器
FastMCP服务器,允许LLM将MIDI序列发送到任何支持MIDI输入的软件中。
特性
- 创建虚拟MIDI输出端口
- 发送MIDI音符开/关消息
- 发送控制更改(CC)消息
- 用精确的定时对MIDI事件进行排序
- 可以在任何支持MIDI的应用程序中用作MIDI输入设备
需求
- Python 3.7+
- 特米迪
- fastmcp
- python dotenv
- 异步IO
安装
- 克隆存储库:
git clone
cd mcp-server-midi- 创建一个虚拟环境,激活它并安装依赖项:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- 创建一个
.env使用您的配置文件:
PORT=8123用法
运行服务器:
python mcp_midi_server.py服务器创建了一个名为“MCP MIDI Out”的虚拟MIDI端口,可以在其他应用程序中用作MIDI输入设备。这意味着您可以:
- 连接数字音频工作站(DAW),如Ableton Live、Logic Pro或FL Studio,以从该服务器接收MIDI
- 使用服务器通过计算机的MIDI接口控制硬件合成器
- 连接到任何其他接受MIDI输入的软件(虚拟乐器、照明控制器等)
只需在首选的MIDI兼容应用程序中选择“MCP MIDI输出”作为MIDI输入设备。
MCP配置
服务器使用服务器发送事件(SSE),以下是在Cursor中配置它的方法:
{
"mcpServers": {
"midi": {
"url": "http://localhost:8123/sse"
}
}
}API方法
发送备注
发送MIDI音符打开消息。
参数:
note:MIDI音符编号(0-127)velocity:注意速度(0-127,默认127)channel:MIDI通道(0-15,默认值0)
发送备忘
发送MIDI音符关闭消息。
参数:
note:MIDI音符编号(0-127)velocity:记下速度(0-127,默认值64)channel:MIDI通道(0-15,默认值0)
发送控制更改
发送MIDI控制更改(CC)消息。
参数:
controller:CC控制器编号(0-127)value:CC值(0-127)channel:MIDI通道(0-15,默认值0)
发送MIDI序列
发送一系列具有指定持续时间的MIDI音符开/关消息。
参数:
events:事件字典列表。每本词典必须包含:
- note:MIDI音符编号(0-127) - velocity:注意速度(0-127,默认127) - channel:MIDI通道(0-15,默认值0) - duration:发送“关闭笔记”前按住笔记的时间(秒) - start_time:开始注释的时间(秒),相对于顺序开始(默认值0)
示例
使用API演奏C大和弦:
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许可证
麻省理工学院
