返回市场
FL工作室-MCP

FL工作室-MCP

作者:ohhalim5 星标更新:2025-07-04

项目介绍

flstudio MCP

这是一个连接Claude到FL Studio的MCP服务器。

我们在三天内完成了这个项目。我们将开源它,看看我们能从中获得什么。可能性是无穷无尽的。

如果你在运行过程中遇到任何问题,请加入我们的Discord,我们可以为你设置。

(如果你对音乐和AI的未来感兴趣,或者想要请求功能,也可以加入。我们正在与你一起构建这个项目)

https://discord.gg/ZjG9TaEhvy

第一步:下载文件

你应该看到两个主要项目。

  • 一个名为Test Controller的文件夹
  • 一个名为trigger.py的Python文件 Test Controller文件夹中有一个名为device_test.py的文件,该文件接收来自MCP服务器的信息。 trigger.py是MCP服务器。

将Test Controller文件夹放置在Image-Line/FL Studio/Settings/Hardware目录下(不要更改此文件或文件夹的名称)

第二步:为Claude设置MCP

按照以下教程了解如何通过编辑claude_desktop_config文件来设置Claude中的MCP服务器。

https://modelcontextprotocol.io/quickstart/server

如果你遵循了这个过程,请确保将所有提到的weather.py更改为trigger.py

如果Hammer图标没有显示,请打开任务管理器并强制关闭Claude进程。

然后它应该会显示出来。

这是我的配置文件的样子

mcp

第三步:设置虚拟MIDI端口

对于Windows

对于Windows,请从此处下载LoopMIDI。

https://www.tobias-erichsen.de/software/loopmidi.html

安装LoopMIDI,并使用+按钮添加一个端口。

这是我的样子: loopmidi2

对于Mac

你的MIDI端口会自动设置以接收数据。

第四步:设置MIDI控制器

打开FL Studio。

转到选项 > MIDI设置。

在输入标签页中,点击你刚刚使用LoopMIDI创建的MIDI输入。

将控制器类型从(通用控制器)更改为Test Controller。

第五步:下载包

转到包含trigger.py文件的文件夹。(这是MCP服务器文件)

激活conda环境(就像你在Claude MCP设置教程中学到的那样)

运行以下命令以下载必要的包:uv pip install httpx mido python-rtmidi typing fastmcp FL-Studio-API-Stubs (uv应从Claude MCP设置中安装)

第六步:验证MCP连接

告诉Claude获取可用的MIDI端口。

这应该使用MCP从FL Studio获取端口。

如果是Windows,请复制你使用LoopMIDI创建的端口及其前面的数字。

如果是Mac,请复制默认端口。

loopmidi

在我的情况下,我复制了loopMIDI Port 2

在文本编辑器中打开trigger.py,并用你刚刚复制的端口名称替换默认端口。 output_port = mido.open_output('loopMIDI Port 2')

第七步:制作音乐

使用MCP发送旋律、和弦、鼓点等。

点击你想录制的乐器,它将实时记录到该乐器的钢琴卷上。

当我开始新的聊天时,我倾向于使用这个提示:这是音符的格式:note(0-127),velocity(0-100),长度以拍数表示(小数),位置以拍数表示(小数)

第八步:分享你所创作的内容

在我们的Discord上分享你所创作的内容:https://discord.gg/ZjG9TaEhvy

致谢

FL Studio API Stubs: https://github.com/IL-Group/FL-Studio-API-Stubs Ableton MCP: https://github.com/ahujasid/ableton-mcp

技术细节

如果你想贡献,请随意进行。

这个工作的原理是device_test.py作为一个虚拟MIDI控制器。 MCP服务器(trigger.py)通过打开一个虚拟端口并通过一个名为MIDO的库发送MIDI消息来与这个MIDI控制器通信。

MIDI消息的问题在于它是7位的,所以我们只能发送0-127之间的数字。

因此,我们将所有的MIDI数据,如音符位置等加密成多个MIDI音符,设备知道如何读取这些音符。

希望Image Line能通过他们的API给我们更多的访问权限,这样我们就不用处理这种MIDI乱七八糟的事情了。