返回市场
midi-mcp服务器

midi-mcp服务器

作者:tubone2427 星标更新:2025-11-17

项目介绍

MseeP.ai 安全评估徽章

已验证于 MseeP

MIDI MCP 服务器

概述

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

mid

安装

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文件保存到指定位置

工具:create_midi

服务器提供了一个名为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客户端会自动启动服务器进程并建立通信。