返回 MCP 目录
public公开dns本地运行

mcp-server-midi

一个基于FastMCP的MIDI服务器,允许LLM通过虚拟MIDI端口向支持MIDI输入的软件发送音符和控制信号。

article

README

🚀 MCP MIDI 服务器

MCP MIDI 服务器是一个高效的工具,能让大型语言模型(LLM)将 MIDI 序列发送到任何支持 MIDI 输入的软件,为音乐创作与控制提供了极大便利。

🚀 快速开始

运行服务器,只需执行以下命令:

python mcp_midi_server.py

服务器会创建一个名为“MCP MIDI Out”的虚拟 MIDI 端口,可作为任何支持 MIDI 的应用程序的 MIDI 输入设备。你可以将数字音频工作站(DAW)如 Ableton Live、Logic Pro 或 FL Studio 连接到此服务器接收 MIDI;也能使用该服务器通过计算机的 MIDI 接口控制硬件合成器;还能连接到任何接受 MIDI 输入的其他软件(虚拟乐器、灯光控制器等)。只需在你首选的 MIDI 兼容应用程序中选择“MCP MIDI Out”作为 MIDI 输入设备。

✨ 主要特性

  • 创建一个虚拟的 MIDI 输出端口
  • 发送 MIDI 音符开/关消息
  • 发送控制变化(CC)消息
  • 按照精确的时间安排 MIDI 事件
  • 可以作为任何支持 MIDI 的应用程序中的 MIDI 输入设备使用

📦 安装指南

  1. 克隆仓库:
    git clone <repository-url>
    cd mcp-server-midi
    
  2. 创建一个虚拟环境,激活它并安装依赖项:
    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
  3. 创建一个 .env 文件并添加配置:
    PORT=8123
    

💻 使用示例

基础用法

import mcp_midi_server as mcp

# 创建一个MIDI服务器实例
server = mcp.MIDIServer()

# 定义一个回调函数来处理MIDI输入
def on_midi_input(event):
    print(f"收到MIDI事件:{event}")

# 启动MIDI服务器并注册回调函数
server.start(port=8123, on_input=on_midi_input)

# 发送一个音符开消息
server.send_note_on(note=60, velocity=100, channel=0)

# 等待一段时间(以秒为单位)
import time
time.sleep(1)

# 发送一个音符关消息
server.send_note_off(note=60, velocity=64, channel=0)

# 停止MIDI服务器
server.stop()

📚 详细文档

MCP配置

该服务器使用服务器发送事件(SSE),配置如下:

{
  "mcpServers": {
      "midi": {
          "url": "http://localhost:8123/sse"
      }
   }
}

API方法

发送音符开

发送一个 MIDI 音符开消息。 参数:

  • note: MIDI 音符编号(0 - 127)
  • velocity: 音符力度(0 - 127,默认 127)
  • channel: MIDI 通道(0 - 15,默认 0)

发送音符关

发送一个 MIDI 音符关消息。 参数:

  • note: MIDI 音符编号(0 - 127)
  • velocity: 关闭力度(0 - 127,默认 64)
  • channel: MIDI 通道(0 - 15,默认 0)

发送控制变化

发送一个 MIDI 控制变化(CC)消息。 参数:

  • controller: CC 控制器编号(0 - 127)
  • value: CC 值(0 - 127)
  • channel: MIDI 通道(0 - 15,默认 0)

发送 MIDI 序列

按指定时间发送一连串的 MIDI 音符开/关消息。 参数:

  • events: 事件字典列表。每个字典必须包含:
    • note: MIDI 音符编号(0 - 127)
    • velocity: 音符力度(0 - 127,默认 127)
    • channel: MIDI 通道(0 - 15,默认 0)
    • time: 事件发生的时间(以毫秒为单位)

📄 许可证

该库的许可遵循[MIT License]。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端