Vivid MCP 服务器
使用说明书(Markdown 版)
-
项目简介
- 该仓库实现了一个 MCP 服务器,用于把大语言模型等客户端通过 JSON-RPC 的方式接入 Vivid 的控制运行时。核心功能包括:通过 MCP 标准暴露对资源的访问(Resources)、注册与执行 Tools、以及对 Prompt 模板的定义与渲染等能力。服务器端负责会话管理、能力声明,以及对多种传输通道的支持,确保 LLM 应用可以安全、可扩展地获取图形/音频/控制域上下文。
-
主要功能点
- MCP 命令暴露和实现
- 资源与数据访问:读取图的状态、图节点、端口、参数等(如 inspect_graph、list_types、list_nodes、inspect_node 等工具)。
- 修改与执行能力:添加/删除节点、连接/断开端口、设置参数、执行保存/加载图等操作(add_node、remove_node、connect、disconnect、set_param、get_param、save_graph、load_graph、undo、redo、scaffold_operator 等)。
- 图包与插件操作:浏览/安装/卸载操作包、读取包文档、运行包自带测试等(package_catalog、install_package、uninstall_package、package_operator_docs、test_package 等)。
- 高级控制:版本化快照(save_variation、recall_variation、update_variation、rename_variation、remove_variation、list_variations、queue_variation、set_state_preset、remove_state_preset、clear_state_presets、inspect_state_presets 等)、以及对状态机、变体、预设的管理。
- 运行时集成
- MCP 服务器通过 HTTP 调用 vivid 控制端点(VIVID_URL,默认为 http://127.0.0.1:9876),将 MCP 客户端的请求转换为对运行时的控制操作。
- 传输与扩展
- 该实现基于 FastMCP 等框架,理论上支持多种传输通道(如 Stdio、SSE、WebSocket),以配合不同的客户端接入场景。
- 会话与能力声明
- 提供会话管理与能力声明能力,确保 LLM 客户端能够感知服务能力范围和会话状态。
- MCP 命令暴露和实现
-
安装与运行步骤
- 依赖与前置
- 确保本机已安装 Python3,且 Vivid 控制端正在运行并监听 VIVID_URL 指定的地址(默认 http://127.0.0.1:9876)。
- 需要安装 MCP 框架相关依赖(仓内 mcp/server/fastmcp 组件依赖)。
- 启动命令
- 启动 MCP 服务器,以便客户端通过 JSON-RPC 连接并调用工具。
- 样例(描述性,不包含具体代码块):在合适的工作目录下运行 Python 脚本来启动 vivid_mcp 服务,该脚本会通过环境变量 VIVID_URL 与 Vivid 控制端建立连接并注册工具。
- 运行环境变量
- VIVID_URL: 指向 Vivid 控制端 HTTP 控制服务器的地址,默认 http://127.0.0.1:9876。
- 其他运行时参数如传输方式等,由 MCP 框架的运行时配置决定。
- 依赖与前置
-
服务器配置(MCP 客户端所需信息)
- 该配置用于 MCP 客户端以 JSON-RPC 的方式连接到 MCP 服务器,描述服务器的名称、启动命令及参数等信息。
- 示例(以文本描述形式给出配置要点,实际请将下述信息组织为一个 JSON 对象并在客户端配置中使用):
- server_name: "VividMCPServer"
- command: ["python3", "mcp/vivid_mcp.py"]
- args: []
- env: {"VIVID_URL": "http://127.0.0.1:9876"}
- 备注: MCP 客户端无需了解底层运行时实现细节,仅通过上述服务器信息建立连接,并通过 MCP 框架的接口向服务器发出 JSON-RPC 请求,例如调用 inspect_graph、add_node、set_param 等操作。服务器端将把请求转发到 Vivid 控制服务器以执行相应操作。
- 说明:
- 以上配置是为了确保 MCP 客户端能够启动并连接到服务器,以及让服务器在运行时知道如何定位 Vivid 控制端。服务器自身提供的端点和工具通过 MCP 框架暴露给客户端,客户端无需理解底层实现细节即可发起请求。
-
基本使用方法
- 连接与调用
- 通过 MCP 客户端建立与服务器的连接后,可以使用 JSON-RPC 调用暴露的工具,例如读取图的状态、添加节点、设置参数、保存/加载图等。
- 日常工作流示例(概念性说明)
- 列出可用的运算类型(list_types);
- 新建节点(add_node)并连接(connect);
- 调整参数(set_param);
- 保存或加载图(save_graph、load_graph);
- 在同一会话中撤销/重做操作(undo/redo);
- 使用包管理命令安装、卸载插件包(install_package、uninstall_package);
- 针对 LLM 的提示模板或 Prompt 渲染由相应的 MCP 工具提供支持(Prompts 模块)
- 调试与日志
- MCP 服务器会通过日志和错误信息反馈运行状态,确保在复杂的 LLM 交互场景中能快速诊断问题。
- 连接与调用
-
重要提示
- MCP 客户端与服务器的通信应遵循 MCP 的授权与认证机制,确保会话安全性与权限控制。
- MCP 服务器作为“后端服务”,应具备对 Vivid 控制端的健壮容错能力,尤其在网络波动或 Vivid 控制端重启时保持可用性。
-
额外信息
- 本实现的核心代码文件为 mcp/vivid_mcp.py,基于 mcp.server.fastmcp 提供的工具暴露能力,实现对 Vivid 控制端接口的包装与暴露。