这是一个基于 Tone.js 和 @tonejs/midi 库的 MIDI 文件解析和操作工具,通过 MCP(模型上下文协议)服务提供功能。此工具允许您轻松读取、分析和修改 MIDI 文件,无需深入研究 MIDI 文件格式的复杂性。
npx 命令可以正常运行。建议从 Node.js 官方网站 安装最新稳定版。与 MCP 客户端一起使用,支持的客户端包括但不限于:
要通过 Smithery 自动安装 Claude Desktop 的 MIDI 文件解析器:
npx -y @smithery/cli install @xiaolaa2/midi-file-mcp --client claude
在 Cursor 中配置 midi-file-mcp:
"midi-file-mcp": {
"command": "npx",
"args": [
"-y",
"midi-file-mcp"
]
}
MIDI Parser MCP 中的所有操作都需要 MIDI 文件的绝对路径。这确保了该工具能够正确地定位并操作您的 MIDI 文件,无论当前的工作目录是什么。
这里有一些您可以使用的示例提示:
获取 MIDI 文件信息:
能否显示位于 D:\path\to\your\file.mid 的 MIDI 文件信息?
分析轨道:
请分析 D:\path\to\your\file.mid 中的所有轨道,并告诉我每个轨道中有多少个音符。
设置节奏:
将 D:\path\to\your\file.mid 的节奏改为 112 BPM。
处理音符:
显示 D:\path\to\your\file.mid 中第 1 轨道的所有音符。
添加音符:
在 D:\path\to\your\file.mid 的第 0 轨道的第 0 位置添加一个持续时间为 1 拍的 C4 音符。
| 操作 | 描述 | 参数 |
|---|---|---|
| get_midi_info | 获取 MIDI 文件的一般信息 | filePath |
| set_tempo | 设置 MIDI 文件的节奏(BPM) | filePath, bpm |
| get_tracks_info | 获取所有轨道的信息 | filePath |
| get_track_info_by_index | 获取特定轨道的信息 | filePath, trackIndex |
| get_notes_by_index | 获取特定轨道中的所有音符 | filePath, trackIndex |
| get_pitchbends_by_index | 获取特定轨道中的所有音高弯曲 | filePath, trackIndex |
| get_controlchanges_by_index | 获取特定轨道中的所有控制变化 | filePath, trackIndex |
| add_notes_by_index | 向特定轨道添加音符 | filePath, trackIndex, notes |
| add_controlchanges_by_index | 向特定轨道添加控制变化 | filePath, trackIndex, controlchanges |
| add_pitchbends_by_index | 向特定轨道添加音高弯曲 | filePath, trackIndex, pitchbends |
| add_track | 向 MIDI 文件添加新轨道 | filePath |
注意:在处理 Windows 路径时,请始终在文件路径中使用双反斜杠 (\\) 或正斜杠 (/) 以避免错误。
本项目采用 MIT 许可证。详情见 LICENSE 文件。
感谢以下项目和库,没有它们,这个工具是不可能实现的: