FL Studio MCP服务器

用于FL Studio的模型上下文协议(MCP)服务器,通过自然语言使AI助手能够作曲并控制FL Studio。

  • by quinnjr
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 quinnjr/fruityloops-mcp

使用说明

🎹 FL Studio MCP服务器

FL Studio(Fruity Loops)的模型上下文协议(MCP)服务器,使克劳德等人工智能助手能够通过自然语言创作音乐和控制FL Studio。

✨ 特性

  • FL Studio API通过Flapi集成:控制传输、混音器、通道、图案等
  • MIDI接口:通过loopMIDI向FL Studio发送MIDI音符和消息
  • MCP协议:人工智能助手的标准接口(Claude等)
  • 双重通信:同时使用Flapi(用于API调用)和MIDI(用于音符/CC)
  • 类型安全:完整的类型提示和验证

🏗️ 建筑

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  Claude Desktop │────▶│   MCP Server    │────▶│    FL Studio    │
│  (AI Assistant) │     │   (External)    │     │   (Internal)    │
└─────────────────┘     └─────────────────┘     └─────────────────┘
                               │                        ▲
                               │                        │
                        ┌──────┴──────┐                 │
                        │             │                 │
                        ▼             ▼                 │
                  ┌──────────┐ ┌────────────┐          │
                  │  Flapi   │ │    MIDI    │          │
                  │  Bridge  │ │  Interface │          │
                  └────┬─────┘ └─────┬──────┘          │
                       │             │                  │
                       │    MIDI     │                  │
                       └─────────────┴──────────────────┘
  • 弗拉皮大桥:通过MIDI将FL Studio API调用(传输、混音器、通道)转发到FL Studio的内部Python
  • MIDI接口:将MIDI音符、CC、程序更改直接发送到FL Studio

📦 安装

先决条件

  1. Python 3.10+
  2. 水果音乐制作软件 (20.7+版本支持MIDI脚本)
  3. loopMIDI (Windows)- 下载

快速开始

# Install the MCP server
pip install fruityloops-mcp

# Install Flapi for FL Studio API access
pip install flapi
flapi install

虚拟MIDI端口设置(Windows)

  1. 安装 loopMIDI
  2. 创建这些虚拟MIDI端口:
    • FLStudio_MIDI -用于向FL Studio发送MIDI音符/CC
    • Flapi Request -对于Flapi API请求
    • Flapi Response -对于Flapi API响应

FL工作室配置

对于MIDI控制:

  1. 开放式FL工作室→ 选项→ MIDI设置
  2. 启用 FLStudio_MIDI 端口作为输入
  3. 将MIDI输入路由到所需的通道/乐器

对于Flapi(API访问):

  1. 跑 flapi install 安装Flapi脚本
  2. 重新启动FL工作室
  3. 转到选项→ MIDI设置
  4. 在 输出 部分,为分配唯一的端口号 Flapi Request 和 Flapi Response
  5. 在 输入 部分,为相应的输入设置相同的端口号
  6. 分配 Flapi Request 输入到“Flapi Request”脚本
  7. 分配 Flapi Response 输入到“Flapi响应”脚本

🚀 用法

使用克劳德桌面

添加到您的Claude Desktop配置(%APPDATA%\Claude\claude_desktop_config.json 在Windows上):

{
  "mcpServers": {
    "fruityloops": {
      "command": "uvx",
      "args": ["fruityloops-mcp"]
    }
  }
}

或者使用pip:

{
  "mcpServers": {
    "fruityloops": {
      "command": "fruityloops-mcp"
    }
  }
}

克劳德的第一步

  1. 连接到FL工作室:

    "Connect to FL Studio via Flapi"
    
  2. 检查连接:

    "What's the Flapi connection status?"
    
  3. 开始作曲:

    "Start playback in FL Studio"
    "Set the tempo to 120 BPM"
    "Play a C major chord"
    

🎛️ 可用工具

Flapi连接

  • flapi_connect -通过Flapi连接到FL工作室
  • flapi_disconnect -断开与Flapi的连接
  • flapi_status -检查连接状态

MIDI工具

  • midi_connect -连接到MIDI端口
  • midi_disconnect -断开与MIDI端口的连接
  • midi_list_ports -列出可用的MIDI端口
  • midi_send_note -发送带有持续时间的便条
  • midi_send_note_on / midi_send_note_off -备注消息
  • midi_send_cc -控制更改消息
  • midi_send_program_change -程序更改
  • midi_send_pitch_bend -俯仰弯曲

运输控制

  • transport_start / transport_stop -播放控制
  • transport_record -切换录制
  • transport_get_bpm / transport_set_bpm -温度控制
  • transport_get_song_pos / transport_set_song_pos -位置控制

混音器控制

  • mixer_get_track_volume / mixer_set_track_volume
  • mixer_get_track_name / mixer_set_track_name
  • mixer_get_track_pan / mixer_set_track_pan
  • mixer_mute_track / mixer_solo_track

通道控制

  • channels_channel_count -获取频道数量
  • channels_get_channel_name -获取频道名称
  • channels_set_channel_volume -设置音量
  • channels_mute_channel -静音/取消静音
  • channels_get_channel_color / channels_set_channel_color

图案控制

  • patterns_pattern_count -获取图案数量
  • patterns_get_pattern_name / patterns_set_pattern_name
  • patterns_get_pattern_length
  • patterns_jump_to_pattern

播放列表控件

  • playlist_get_track_name / playlist_set_track_name

一般控制

  • general_get_version -FL工作室版本
  • general_get_project_title
  • general_save_project
  • general_undo

用户界面控件

  • ui_show_window -展示FL Studio窗口(混音器、通道架、钢琴卷轴等)
  • ui_get_visible -检查车窗能见度

🛠️ 发展

设置

# Clone repository
git clone https://github.com/quinnjr/fruityloops-mcp.git
cd fruityloops-mcp

# Install dependencies
uv sync --all-extras

# Install git hooks
./install-hooks.ps1  # On Windows
./install-hooks.sh   # On Unix/macOS

测试

# Run tests
uv run pytest

# Run with coverage
uv run pytest --cov

# Run linting
uv run ruff check .

# Run formatting
uv run ruff format .

🐛 故障排除

Flapi连接问题

  1. “Flapi不可用”:运行 pip install flapi
  2. “连接失败”:
    • 确保loopMIDI端口 Flapi Request 和 Flapi Response 存在
    • 安装Flapi后重新启动FL Studio
    • 检查FL Studio MIDI设置是否配置正确
  3. “FL Studio连接测试失败”:
    • 验证FL Studio是否正在运行
    • 检查Flapi脚本是否已加载(在MIDI脚本面板中查找)

MIDI问题

  1. “未找到MIDI端口”:创建 FLStudio_MIDI loopMIDI中的端口
  2. “发送MIDI失败”:确保首先使用连接MIDI端口 midi_connect
  3. 没有声音:检查FL Studio是否启用了MIDI端口并将其路由到乐器

📖 文档

🤝 贡献

我们欢迎捐款!请看 贡献.md 作为指导方针。

📜 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

版权所有(c)2025约瑟夫·奎因

🙏 致谢


由...制作❤️ FL工作室和人工智能社区