Midi Mcp Server

Midi Mcp Server

🚀 MIDI MCP 服务器

MIDI MCP 服务器是一款基于模型上下文协议(MCP)的强大服务器工具,它能够借助标准化接口,让人工智能模型从文本化的音乐数据生成 MIDI 文件,实现音乐作品的程序化创作。

🚀 快速开始

安装

执行以下命令完成安装和构建:

npm install
npm run build

使用说明(与 MCP 客户端配合,例如 Cline)

在构建项目后,只需将服务器添加到您的 MCP 客户端配置中:

"mcpServers": {
"musicComposer": {
"command": "node",
"args": ["/path/to/midi-mcp-server/build/index.js"]
}
}

请将 /path/to/ 替换为您实际的项目路径。

✨ 主要特性

  • 从结构化的 JSON 音乐数据生成 MIDI 文件
  • 支持多轨道和多种乐器
  • 可自定义的速度、节拍签名和音符属性
  • 将 MIDI 文件保存到指定位置

📦 安装指南

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 }
]
}
]
};

📚 详细文档

依赖项

  • @modelcontextprotocol/sdk: MCP 服务器实现
  • midi - writer - js: 创建 MIDI 文件的库

示例演示

例如,以下提示请求生成一个 8 小节的小调合唱乐曲:

8小節の合唱曲を作って。
若干マイナー調で、メロディックな音階を作ってほしい

melodic_minor_chorus.mid

⚠️ 重要提示

此 MCP 服务器在本地运行,通过标准输入输出(stdio)进行通信。无需网络配置,因为 MCP 客户端会自动启动服务器进程并建立连接。

  • 0 关注
  • 0 收藏,23 浏览
  • system 提出于 2025-09-28 00:39

相似服务问题

相关AI产品