MIDI MCP 服务器是一款基于模型上下文协议(MCP)的强大服务器工具,它能够借助标准化接口,让人工智能模型从文本化的音乐数据生成 MIDI 文件,实现音乐作品的程序化创作。
执行以下命令完成安装和构建:
npm install
npm run build
在构建项目后,只需将服务器添加到您的 MCP 客户端配置中:
"mcpServers": {
"musicComposer": {
"command": "node",
"args": ["/path/to/midi-mcp-server/build/index.js"]
}
}
请将 /path/to/ 替换为您实际的项目路径。
npm install
npm run build
服务器提供了一个名为 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小節の合唱曲を作って。
若干マイナー調で、メロディックな音階を作ってほしい
melodic_minor_chorus.mid
此 MCP 服务器在本地运行,通过标准输入输出(stdio)进行通信。无需网络配置,因为 MCP 客户端会自动启动服务器进程并建立连接。