MIDI MCP 服务器是一个模型上下文协议(MCP)服务器,它使AI模型能够从基于文本的音乐数据生成MIDI文件。此工具允许通过标准化接口程序化地创建音乐作品。

npm install
npm run build
构建项目后,只需将服务器添加到您的MCP客户端配置中:
"mcpServers": {
"musicComposer": {
"command": "node",
"args": ["/path/to/midi-mcp-server/build/index.js"]
}
}
将/path/to/替换为您项目的实际目录路径。
服务器提供了一个名为create_midi的工具,用于从结构化的音乐数据生成MIDI文件。
title: 字符串 - 作品的标题composition: 字符串 - 表示音乐数据的JSON字符串output_path: 字符串 - MIDI文件将被保存的路径作品应遵循以下结构:
{
"bpm": 数字,
"timeSignature": { "numerator": 数字, "denominator": 数字 },
"tracks": [
{
"name": 字符串,
"instrument": 数字,
"notes": [
{ "pitch": 数字, "startTime": 数字, "duration": 数字, "velocity": 数字 }
]
}
]
}
bpm: 每分钟节拍数timeSignature: 拍号(例如,{numerator: 4, denominator: 4}表示4/4拍)tracks: 乐器轨道数组
name: 轨道名称
、instrument: MIDI程序编号(0-127)notes: 音符对象数组
pitch: MIDI音符编号(0-127)startTime: 以节拍计的开始时间duration: 以节拍计的音符时长velocity: 音符速度/音量(0-127)const composition = {
"bpm": 120,
"timeSignature": { "numerator": 4, "denominator": 4 },
"tracks": [
{
"name": "钢琴",
"instrument": 0,
"notes": [
{ "pitch": 60, "startTime": 0, "duration": 1, "velocity": 100 },
{ "pitch": 64, "startTime": 1, "duration": 1, "velocity": 100 },
{ "pitch": 67, "startTime": 2, "duration": 1, "velocity": 100 }
]
}
]
};
例如,下面的提示请求创建一个8小节的合唱曲,可以由服务器处理:
8小节的合唱曲。
稍微带点小调,希望有旋律性的音阶。
此MCP服务器在本地运行,并通过标准输入/输出(stdio)进行通信。无需网络配置,因为MCP客户端会自动启动服务器进程并建立通信。