Resolume控制插件

通过MCP兼容的AI代理实时控制Resolume Avenue/Arena,支持自然语言指令和多步骤自动化脚本。

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

使用说明

resolume mcp

从任何兼容MCP的AI代理控制Resolume大道/竞技场。 告诉你 代理播放剪辑、淡化图层、切换套牌或编排整套 转换——它通过WebSocket在Resolume中实时发生。

"Fade out layer 1, connect clip 3 on layer 2, then bring layer 1 back up"
→ three WebSocket commands, one tool call, no round-trips

这是一个 模型上下文协议(MCP) 服务器。 它为您的人工智能代理提供了一条直接进入Resolume的WebSocket API的线路,因此您可以使用 自然语言——或编写多步骤自动化脚本——来控制您的 实时合成。

适用于Claude、Cursor、Windsurf和任何其他MCP兼容代理。


你能用它做什么?

连接后,您可以向您的代理询问以下问题:

  • “当前连接了哪些剪辑?”
  • “将BPM设置为128并启用第3列”
  • “将第1层淡化为零,切换到剪辑3,然后重新淡化”
  • “向层2添加光晕效果,并将其强度设置为0.7”
  • “循环浏览所有图层,并将不透明度低于0.3的图层静音”

多步序列作为单个序列运行 execute() 电话。代理人写 Python,你可以在Resolume中看到结果。


先决条件

  • Resolume大道或竞技场≥7 启用WebSocket服务器
  • Python≥3.11
  • 任何与MCP兼容的AI代理(克劳德桌面、克劳德代码、光标等)

启用Resolume的WebSocket服务器

  1. 开放资源→ 偏好 → 网络服务器
  2. 启用服务器(默认端口: 8080)
  3. 如果您的代理运行在与Resolume不同的计算机上,请注意IP地址

安装

pip install git+https://github.com/Tortillaguy/resolume-mcp.git

或者克隆并以可编辑模式安装:

git clone https://github.com/Tortillaguy/resolume-mcp.git
pip install -e resolume-mcp/

配置您的代理

将服务器添加到代理的MCP配置中。集 RESOLUME_HOST 到IP 如果运行Resolume的机器与您的代理不是同一台机器。

克劳德桌面版 (~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "resolume-mcp": {
      "command": "resolume-mcp-code",
      "env": { "RESOLUME_HOST": "192.168.1.10" }
    }
  }
}

克劳德代码 (.mcp.json 在项目根目录中):

{
  "mcpServers": {
    "resolume-mcp": {
      "command": "resolume-mcp-code",
      "env": { "RESOLUME_HOST": "192.168.1.10" }
    }
  }
}

Cursor/Windsurf/其他MCP客户端 --在它们的文件中使用相同的JSON形状 相应的MCP配置文件。这 command 是pip安装的入口点; env 覆盖是可选的。

省略 "env" 如果Resolume与您的代理位于同一台计算机上(默认为 localhost).


工作原理:两个工具

search(query) --发现SDK可以做什么并检查实时组合状态:

search("opacity")

→ client.set_layer_opacity(self, layer_index: int, opacity: float)
    Set layer opacity (0.0 = invisible, 1.0 = full)

  state/layers/0/video/opacity  (value=1.0)
  state/layers/1/video/opacity  (value=0.8)

execute(code) --在实时Resolume客户端上运行Python。 client 预先注射, await 作品, print() 曲面输出:

# "fade layer 1 out, connect clip 3, fade back in"
await client.set_layer_opacity(layer_index=1, opacity=0.0)
await client.connect_clip(layer_index=1, clip_index=3)
await client.set_layer_opacity(layer_index=1, opacity=1.0)
print("done")

整个序列就是一次工具调用。传统的命名工具服务器需要 三次单独的往返; execute() 一次完成,代理可以添加 条件逻辑、循环或步骤之间的定时是自然的。


快速启动提示

服务器内置了 quickstart prompt--一个自包含的VJ工作流指南 任何MCP客户端都可以加载到引导上下文中,而不需要此README。

克劳德桌面版 --类型 / 在聊天输入中,选择 quickstart.

克劳德代码/其他客户 --呼叫 prompts/get 随着 name: "quickstart",或 问你的经纪人: “从resolume mcp服务器加载快速启动提示”.

提示涵盖了双工具模式, client.state 结构怪癖,层/剪辑 索引、异步模型和五个准备运行的工作流示例。


环境变量

变量 默认值 描述
RESOLUME_HOST localhost 运行Resolume的计算机的IP或主机名
RESOLUME_PORT 8080 Resolume WebSocket服务器端口
RESOLUME_TIMEOUT 10.0 连接超时(秒)

将这些设置在 "env" 阻止MCP配置,或将其导出到shell中。


例子

看 examples/ 对于使用 ResolumeAgentClient 直接无需MCP——可用于测试或构建自己的自动化:


许可证

麻省理工学院