这是一个FastMCP服务器,允许大型语言模型(LLM)向支持MIDI输入的任何软件发送MIDI序列。
克隆仓库:
git clone <repository-url>
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输入设备。这意味着你可以:
只需在你喜欢的MIDI兼容应用中选择"MCP MIDI Out"作为MIDI输入设备即可。
服务器使用服务器发送事件(SSE),这是如何在Cursor中配置它:
{
"mcpServers": {
"midi": {
"url": "http://localhost:8123/sse"
}
}
}
发送一个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音符开/关消息。
参数:
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
]
# 发送到MCP MIDI服务器API
MIT