FL Studio钢琴卷帘MCP服务

一个MCP(模型上下文协议)服务器,使AI助手如Claude能够与FL Studio的钢琴卷帘交互,通过自然语言对话创建旋律、和弦进行和音乐模式,实现自动实时更新。

  • by calvinw
  • Python
  • 本地部署
  • 46 星标
  • 更新于
在 GitHub 查看 calvinw/fl-studio-mcp

使用说明

FL Studio钢琴卷MCP

MCP(模型上下文协议)服务器,使克劳德等人工智能助手能够与FL Studio的钢琴卷进行交互。通过与自然语言对话创建旋律、和弦进行和音乐模式 自动实时更新.

请点击此处查看播放列表: LLMs和FL工作室钢琴卷(MacOs版)

概述

与克劳德交谈,观看你的音乐创意立即出现在FL Studio中:

  • 按名称或自定义音符生成和弦进行曲
  • 创作旋律和低音线
  • 修改现有MIDI音符
  • 导出并分析钢琴的滚动状态
  • 零人工干预 -笔记会自动出现,内置触发器!

平台支持

✅ macOS(主) -与osascript集成的全自动触发功能 ⚠️ Windows(次要) -部分实施,可能需要额外配置

先决条件

  • macOS或Windows (macOS完全工作,Windows需要更多工作)
  • 水果音乐制作软件 (任何支持Python脚本的最新版本)
  • Python 3.11+ (由uv自动管理)
  • MCP兼容客户端 (克劳德桌面、克劳德代码CLI或其他MCP客户端)
  • 紫外线 (快速Python包管理器- 安装指南)

macOS辅助功能权限

自动触发器使用pynput向FL Studio发送击键。您必须为启用辅助功能访问 终端 (或您的终端应用程序)和 克劳德代码 (如果使用Claude Code CLI):

  1. 打开 系统设置 → 隐私和安全 → 无障碍
  2. 点击 + 添加应用程序的按钮
  3. 添加 终端 (或iTerm、Warp等)
  4. 添加 克劳德 (Claude Code CLI)如果您正在使用它
  5. 确保开关处于 启用 对于每个应用程序

没有这些权限,自动触发器无法将Cmd+Opt+Y按键发送到FL Studio。

安装

快速启动(3个命令)

git clone https://github.com/calvinw/fl-studio-mcp.git
cd fl-studio-mcp

./install_prerequisites.sh    # Install uv and Python environment
./install_mcp_for_claude.sh   # Register with Claude Code

然后重新启动Claude Code,您就可以开始了!

用法

快速入门(每节课)

第一步:开设FL工作室

  1. 开放式FL工作室
  2. 打开或创建钢琴卷

步骤2:初始化脚本

运行此脚本 一次 更新并准备使用LLM:

Tools → Scripting → ComposeWithLLM

这将设置钢琴滚动状态并清除请求队列(不显示对话框)。

第三步:与克劳德或你的法学硕士交谈

现在,只需与您的AI助手交谈:

  • “添加一个C大调和弦”
  • “在Am中创造悲伤的和弦进程”
  • “添加低音线”
  • “创作五声旋律”

备注将自动出现在FL Studio中!

重要提示

手动编辑后刷新状态

如果您在FL Studio中手动添加/编辑注释 在...之间 与克劳德交谈 您必须通过ComposeWithLLM脚本向Claude发送新的编辑。如果你 刚刚运行了这个,你可以通过击键来运行最后一个脚本:

  1. 按 Cmd+Opt+Y (macOS)或 Ctrl+Alt+Y (Windows)刷新状态
  2. 那就和克劳德谈谈

这可以确保克劳德看到您的手动更改!

例子:

You: "Add C major chord"
[Claude adds it automatically ✅]

[You manually add a melody 🎹]

[Press Cmd+Opt+Y to refresh state 🔄]

You: "Add a bass line"
[Claude sees the chord AND melody ✅]

请求示例

  • “在C专业创造I-IV-V-I的进步”
  • “在这些和弦上加上五声旋律”
  • “在每个和弦的根部添加一个低音音符”
  • “将G音符改为A”
  • “清除一切,创造爵士乐的进步”
  • “从第4拍开始加一些琶音”

可用工具

您的AI助手可以访问这些MCP工具:

  • get_piano_roll_state() -读取当前钢琴滚动状态
  • send_notes(notes, mode) -添加或替换音符(和弦只是同时存在的多个音符)
  • delete_notes(notes) -删除特定注释
  • clear_queue() -丢弃待处理的请求

看 CLAUDE.md 有关AI助手如何使用这些工具的详细文档。

建筑

┌─────────┐         ┌────────────┐         ┌──────────────┐
│ Claude  │────────▶│ MCP Server │────────▶│ Request Queue│
└─────────┘         └────────────┘         │ (JSON file)  │
                                           └──────┬───────┘
                                                  │
                                                  ▼
                                         MCP Server
                                         Sends Trigger
                                   (Cmd+Opt+Y / Ctrl+Alt+Y)
                                                │
                                                ▼
┌─────────────┐         ┌─────────────────────────────────┐
│ Piano Roll  │◀────────│ FL Studio Bridge Script         │
└─────────────┘         │ (re-runs, applies changes)      │
                        └─────────────────────────────────┘
                                     │
                                     ▼
                              ┌─────────────┐
                              │ Piano Roll  | 
                              | State Export│
                              │ (JSON file) │
                              └─────────────┘
  1. AI助手通过MCP工具发送音乐请求
  2. MCP服务器将请求写入JSON队列
  3. MCP服务器发送触发器,延迟2秒
  4. FL Studio重新运行ComposeWithLLM脚本
  5. 脚本处理队列并应用更改
  6. 延迟后音符出现在钢琴卷轴中
  7. 状态输出给克劳德看

故障排除

脚本未出现在FL Studio中

问题: 桥接脚本未显示在“工具”菜单中

解决:

  • 重新运行安装脚本: ./install_prerequisites.sh
  • 确保文件具有 .pyscript 扩展
  • 重新启动FL工作室
  • 检查FL Studio版本是否支持Python脚本

更改未显示

问题: 已发送请求,但无任何反应

解决:

  • 验证您是否已运行 ComposeWithLLM 曾经在FL工作室
  • 确保FL Studio窗口处于活动状态
  • 尝试手动按Cmd+Opt+Y(macOS)或Ctrl+Alt+Y(Windows)触发
  • 检查一下克劳德是否 可访问权限 (系统设置→ 隐私和安全→ 可访问性)

触发器不工作

问题: 发送后备注不显示

解决:

  • 重新启动Claude Code以重新连接MCP服务器
  • 跑 ComposeWithLLM 再次来到FL工作室
  • 确保已安装依赖项: uv sync
  • 检查终端/Claude是否 可访问权限 (系统设置→ 隐私和安全→ 可访问性)

MCP服务器未连接

问题: AI助手没有FL Studio工具

解决:

  • 重新启动MCP客户端(克劳德桌面/代码)
  • 验证配置文件是否具有正确的路径 fl_studio_mcp_server.py
  • 确保安装了依赖项: uv sync
  • 检查虚拟环境是否在中创建 .venv/

错误位置的注释

问题: 注释出现的时间不正确

解决:

  • 时间值应在季度注释中,而不是刻度中
  • time=0 被击败1, time=4 打5分(4/4中2分)
  • 检查状态导出中的PPQ值以供参考

权限错误

问题: 无法写入JSON文件

解决:

  • 确保FL Studio脚本目录存在
  • 检查文件权限(应为读/写)
  • 在Windows上,可能需要以管理员身份运行FL Studio

文件位置

FL Studio脚本目录:

~/Documents/Image-Line/FL Studio/Settings/Piano roll scripts/
├── ComposeWithLLM.pyscript  (bridge script - auto mode)
├── mcp_request.json          (request queue)
├── mcp_response.json         (execution results)
└── piano_roll_state.json     (exported piano roll state)

源存储库:

/path/to/fl-studio-mcp/
├── ComposeWithLLM.pyscript           (source bridge script)
├── fl_studio_mcp_server.py            (MCP server with built-in trigger)
├── install_prerequisites.sh           (install uv & Python environment and piano roll script)
├── install_mcp_for_claude.sh          (MCP for Claude Code)
├── install_mcp_for_gemini.sh          (MCP for Gemini CLI)
├── install_mcp_for_codex.sh           (MCP for Codex)
├── CLAUDE.md                          (AI assistant documentation)
└── README.md                          (this file)

发展

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 提交拉取请求

许可证

MIT许可证-您可以自由使用和修改您的项目。

支持

对于问题、疑问或功能请求,请在GitHub上打开问题。

致谢

使用 模型上下文协议 规范。

特别感谢FL Studio和Python社区。