项目简介

这是一个实现了 Model Context Protocol (MCP) 的服务器,专门用于接收结构化的音乐数据(通过 MCP 工具调用传递),并将其转换为标准的 MIDI 文件。它允许大型语言模型 (LLM) 或其他 MCP 客户端通过标准化的接口进行编程音乐创作。

主要功能点

  • MIDI文件生成: 能够将遵循特定JSON格式的音乐数据自动生成为MIDI文件。
  • 支持多音轨和乐器: 可以在生成的MIDI文件中包含多个独立的音乐轨道,并为每个轨道指定不同的乐器(通过MIDI乐器编号)。
  • 自定义音乐属性: 可以控制生成的MIDI文件的速度(BPM)、拍号以及每个音符的音高、起始时间、持续时间和力度。
  • 文件保存: 生成的MIDI文件可以保存到指定的本地文件路径。
  • MCP工具: 通过提供一个名为 'create_midi' 的标准工具供MCP客户端调用。

安装步骤

使用 Node.js 环境进行安装和构建。

  1. 克隆或下载项目仓库。

  2. 打开终端或命令提示符,进入项目目录。

  3. 运行以下命令安装依赖并构建项目:

    npm install
    npm run build

    这将在项目目录下生成 'build' 文件夹,包含可执行的服务器文件。

服务器配置

此MCP服务器通常由支持MCP的客户端(如 Cline)进行配置和启动。您需要在客户端的配置文件中添加如下类似的信息来定义此服务器:

  • 服务器名称 ('server name'): 您为该服务器指定的一个唯一名称,例如 '"musicComposer"'。
  • 启动命令 ('command'): 启动服务器的可执行文件路径。对于此项目,通常是 'node' 命令。
  • 命令参数 ('args'): 传递给启动命令的参数。这通常是服务器的入口文件路径。对于此项目,是构建后生成的服务器脚本路径,例如 '/path/to/midi-mcp-server/build/index.js'(请将 '/path/to/midi-mcp-server' 替换为您的实际项目路径)。

MCP客户端会根据这些配置信息自动启动服务器进程,并通过标准输入/输出 (stdio) 与其通信。

基本使用方法

配置完成后,支持MCP的LLM客户端可以通过调用名为 'create_midi' 的工具来使用此服务器的功能。在调用时,需要向工具传递以下参数:

  • 'title' (字符串): 您希望为生成的MIDI文件命名的标题。
  • 'composition' (对象) 或 'composition_file' (字符串):
    • 'composition': 直接提供一个JSON对象,其中包含音乐的结构化数据,包括BPM、拍号、音轨(每个音轨包含乐器和音符列表)。每个音符需要指定音高、起始时间(拍为单位)、持续时间(字符串,如"4"表示四分音符)和力度。
    • 'composition_file': 如果音乐数据非常庞大,可以将其写入一个JSON文件,并在此参数中提供该文件的绝对路径。工具将读取文件内容作为音乐数据。
    • 'composition' 和 'composition_file' 必须且只能指定一个
  • 'output_path' (字符串): 指定生成的MIDI文件希望保存到的本地文件路径。如果提供相对路径,文件将默认保存到用户主目录下的 'midi-files' 文件夹中。

调用成功后,服务器会返回一个结果,通常包含文件已保存的消息和保存路径。

信息

分类

AI与计算