项目简介
LacyLights AI 灯光设计 MCP 服务器是为LacyLights智能灯光系统量身定制的后端服务。它利用先进的AI能力,帮助用户自动化和智能化地进行戏剧灯光设计。通过这个服务器,您可以管理灯具、生成复杂的灯光场景、创建和优化演出提示(Cue List),并深度分析剧本,极大地提升灯光设计效率和艺术表现力。它通过标准化的Model Context Protocol (MCP) 与大型语言模型(LLM)客户端(如Anthropic Claude)进行通信,作为LLM的“大脑”来执行具体的灯光操作和智能决策。
主要功能点
- 项目管理: 轻松创建新的灯光设计项目,列出所有现有项目,获取项目的详细信息(包括灯具、场景和提示列表统计),以及安全地删除项目。
- 灯具管理: 查询项目中所有可用的灯具清单,或按类型筛选。可以深入分析特定灯具的功能(例如,颜色混合能力、移动定位范围、特殊效果等)。支持创建新的灯具实例,并智能分配或建议DMX通道,以及更新和删除现有灯具。
- 场景生成与优化: 根据剧本描述、情绪和设计偏好,由AI智能生成详细的灯光场景。可以创建“完整”场景(重置所有灯具)或“叠加”场景(仅修改部分灯具)。支持对现有场景进行多目标优化,如提高能效、确保颜色准确性、增强戏剧效果或简化技术实现。同时,可以实时激活场景或将所有灯光渐暗。
- 剧本分析: 能够深入分析戏剧剧本的文本内容,自动提取与灯光设计相关的关键信息,包括场景划分、情绪氛围、主要角色、舞台指示、明确的灯光提示和时间地点信息。基于分析结果,服务器还能为每个场景建议初步的灯光设计方案。
- 演出提示(Cue)管理: 创建和管理演出的提示列表。可以基于剧本分析或一系列现有场景,由AI生成一整幕的提示序列。支持精细调整每个提示的入场(Fade In)和出场(Fade Out)时间,设置自动跟随时间,以及添加备注。可以更新、添加、删除和重新排序提示列表中的单个提示。
- 演出提示播放控制: 提供实时的提示列表播放功能。可以从头开始或从指定提示开始播放,前进到下一个提示,返回上一个提示,或直接跳转到特定提示。同时,可以停止播放并获取当前播放状态和导航信息,为灯光操作员提供全面的控制。
- AI 驱动能力: 服务器深度整合了AI模型(如OpenAI GPT-4)和RAG(检索增强生成)服务,使其能够理解自然语言指令、进行剧本分析、生成富有创意的灯光设计方案,并根据复杂上下文做出智能决策。
安装步骤
- 克隆仓库:
首先,使用Git将项目仓库克隆到您的本地机器上。
git clone https://github.com/bbernstein/lacylights-mcp.git cd lacylights-mcp - 安装依赖:
进入项目目录后,安装所有必要的Node.js依赖项。
npm install - 配置环境变量:
复制 '.env.example' 文件并将其重命名为 '.env'。
编辑 '.env' 文件,填入您的OpenAI API Key,以及 LacyLights 后端 GraphQL 接口的地址。cp .env.example .env
重要提示: 确保 'LACYLIGHTS_GRAPHQL_ENDPOINT' 指向您的 'lacylights-node' 后端服务。默认情况下,该服务通常在 'http://localhost:4000/graphql' 运行。# .env 文件示例,请根据您的实际情况进行修改 OPENAI_API_KEY=sk-your_openai_api_key_here # 您的OpenAI API密钥 LACYLIGHTS_GRAPHQL_ENDPOINT=http://localhost:4000/graphql # LacyLights后端GraphQL接口地址 # ChromaDB 设置是可选的。如果不需要,服务器将使用内存存储模式。 # 如果您想使用ChromaDB进行持久化向量存储和更高级的RAG功能,请取消注释并配置: # CHROMA_HOST=localhost # CHROMA_PORT=8000 - 构建项目:
运行构建命令以编译TypeScript代码。
npm run build - 运行服务器:
在开发模式下(具有自动重载功能,便于开发调试):
或者,如果您希望在生产环境运行,请先构建再启动:npm run dev
服务器成功启动后,您将在控制台看到类似 "LacyLights MCP Server running on stdio" 的输出信息。npm run build npm start
服务器配置(供MCP客户端使用)
要将 LacyLights AI 灯光设计 MCP 服务器与支持 Model Context Protocol (MCP) 的大型语言模型(LLM)客户端(例如 Anthropic Claude)集成,您需要在客户端的MCP配置中添加以下JSON格式的条目。
请务必将 '/path/to/lacylights-mcp/' 替换为您实际克隆此仓库的绝对路径。
{ "mcpServers": { "lacylights": { "command": "/usr/local/bin/node", "args": ["/path/to/lacylights-mcp/run-mcp.js"], "env": { "OPENAI_API_KEY": "您的_openai_api_key_here", "LACYLIGHTS_GRAPHQL_ENDPOINT": "http://localhost:4000/graphql" } } } }
参数注释:
- 'mcpServers': 这是一个JSON对象,用于包含LLM客户端所连接的所有MCP服务器的配置。
- 'lacylights': 这是您为LacyLights MCP服务器实例指定的唯一标识名称。LLM客户端将使用此名称来引用此服务器。
- 'command': 必填项。 指定用于启动MCP服务器可执行文件的绝对路径。在本例中,它是Node.js运行时的路径。您可以在终端中运行 'which node' 命令来查找您系统上Node.js的绝对路径。请确保您的Node.js版本为14或更高。
- 'args': 必填项。 这是一个字符串数组,包含将传递给 'command' 指定的可执行文件的命令行参数。这里,它指定了MCP服务器的启动脚本 'run-mcp.js' 的绝对路径。请务必使用 'run-mcp.js' 脚本,而不是直接指向 'dist/index.js',以确保兼容性。
- 'env': 这是一个JSON对象,包含为MCP服务器进程设置的环境变量。这些变量通常用于配置敏感信息或特定运行时设置。
- 'OPENAI_API_KEY': 必填项。 您从OpenAI获取的API密钥,服务器将使用它来调用AI模型进行剧本分析和设计建议。
- 'LACYLIGHTS_GRAPHQL_ENDPOINT': 必填项。 LacyLights后端GraphQL服务的完整URL,用于MCP服务器与LacyLights核心系统通信。
基本使用方法
一旦MCP服务器成功启动并与您的LLM客户端(如Claude)集成,您就可以通过自然语言指令与LLM进行交互。LLM将自动识别LacyLights MCP服务器提供的工具,并根据您的指令调用相应的工具来执行任务。
示例1:生成一个灯光场景 您可以向LLM发出指令,描述您想要的灯光场景,LLM将调用 'generate_scene' 工具:
请为“麦克白夫人的梦游场景”生成灯光。背景是“夜晚黑暗的城堡,麦克白夫人手持蜡烛进入,饱受罪恶感折磨”,情绪是“神秘的”,色调为“深蓝、苍白、冷色”。请将此场景添加到ID为“project-123”的项目中。
示例2:分析剧本 您可以要求LLM使用 'analyze_script' 工具来分析一个戏剧剧本的文本:
请分析以下剧本文本,提取所有灯光提示,并为每个场景建议灯光设计。 [此处插入“麦克白第一幕”的全部文本]
示例3:创建演出提示序列 在您分析完剧本并生成了多个场景之后,您可以指示LLM使用 'create_cue_sequence' 工具,将这些场景组织成一个演出的提示列表:
请使用已分析的剧本场景“scene-id-1”、“scene-id-2”和“scene-id-3”,为ID为“project-456”的项目创建一个名为“麦克白第一幕提示”的演出提示列表。
示例4:实时控制提示播放 当您的提示列表正在播放时,您可以直接向LLM发出控制指令:
请切换到下一个灯光提示。
或
请停止当前正在播放的提示列表。
信息
分类
AI与计算