LacyLights MCP 服务器是一个基于 MCP(模型上下文协议)的服务器,它借助人工智能技术为 LacyLights 系统提供剧场灯光设计能力。
get_fixture_inventory
- 查询可用的照明灯具及其功能analyze_fixture_capabilities
- 分析特定灯具的颜色混合、定位、效果等功能generate_scene
- 根据剧本上下文和设计偏好生成灯光场景analyze_script
- 从戏剧剧本中提取与灯光相关的信息optimize_scene
- 优化现有场景,以提高能源效率、增强戏剧效果等create_cue_sequence
- 根据现有场景创建灯光提示序列generate_act_cues
- 为戏剧表演生成完整的灯光提示建议optimize_cue_timing
- 优化灯光提示的时间安排,以实现平滑过渡或戏剧效果analyze_cue_structure
- 分析并建议改进灯光提示列表npm install
cp .env.example .env
# 编辑 .env 文件并进行配置
npm run build
为了简化操作,MCP 服务器目前使用内存模式存储系统。如果您想使用 ChromaDB 进行持久向量存储和更高级的 RAG 功能,请按以下步骤操作:
# 使用 Docker 启动 ChromaDB
docker-compose up -d chromadb
# 验证是否正在运行
curl http://localhost:8000/api/v2/heartbeat
# 安装 ChromaDB
pip install chromadb
# 启动服务器
chroma run --host localhost --port 8000
然后更新您的 .env
文件:
# 取消 .env 文件中以下行的注释
CHROMA_HOST=localhost
CHROMA_PORT=8000
注意:当前实现无需 ChromaDB 即可使用内置灯光模式运行。ChromaDB 可通过向量相似度搜索增强系统的模式匹配能力。
OPENAI_API_KEY
- 用于人工智能灯光生成的 OpenAI API 密钥LACYLIGHTS_GRAPHQL_ENDPOINT
- 您的 lacylights - node 后端的 GraphQL 端点(默认值:http://localhost:4000/graphql)确保您的 lacylights-node
后端已启动,然后执行以下操作:
# 在开发模式下启动(支持自动重新加载)
npm run dev
# 或者在生产模式下构建并运行
npm run build
npm start
您应该会看到以下输出:
RAG service initialized with in-memory patterns
LacyLights MCP Server running on stdio
CHROMA_HOST
- 用于 RAG 功能的 ChromaDB 主机(默认值:localhost)CHROMA_PORT
- ChromaDB 端口(默认值:8000)# 开发模式
npm run dev
# 生产模式
npm start
将此服务器添加到您的 Claude 配置中:
{
"mcpServers": {
"lacylights": {
"command": "/usr/local/bin/node",
"args": ["/Users/bernard/src/lacylights/lacylights-mcp/run-mcp.js"],
"env": {
"OPENAI_API_KEY": "your_openai_api_key_here",
"LACYLIGHTS_GRAPHQL_ENDPOINT": "http://localhost:4000/graphql"
}
}
}
}
重要提示:如果上述配置不起作用,您可能需要指定 Node.js 14+ 的准确安装路径。您可以使用以下命令查找:
which node
注意:在配置中使用 run-mcp.js
的绝对路径。此包装器可确保正确加载 CommonJS 模块。
使用 generate_scene 工具为以下场景创建灯光:
- 场景:“麦克白夫人梦游场景”
- 剧本上下文:“夜晚的黑暗城堡,麦克白夫人手持蜡烛进入,饱受内疚折磨”
- 氛围:“神秘”
- 调色板:["深蓝", "苍白的白色", "冷色"]
使用 analyze_script 工具分析《麦克白》第一幕的全文,以:
- 提取所有灯光提示
- 为每个时刻建议场景
- 识别关键灯光时刻
使用 create_cue_sequence 工具,根据剧本分析生成的场景为第一幕创建灯光提示列表。
src/
├── tools/ # MCP 工具实现
│ ├── fixture-tools.ts
│ ├── scene-tools.ts
│ └── cue-tools.ts
├── services/ # 核心服务
│ ├── graphql-client.ts
│ ├── rag-service.ts
│ └── ai-lighting.ts
├── types/ # TypeScript 类型定义
│ └── lighting.ts
└── index.ts # MCP 服务器入口点
src/tools/
下的适当文件中创建工具实现。src/index.ts
的 ListToolsRequestSchema
处理程序中添加工具定义。CallToolRequestSchema
处理程序中添加工具处理程序。npm test
此 MCP 服务器旨在与现有的 LacyLights 系统配合使用:
MCP 服务器作为人工智能层,通过智能自动化和设计辅助增强现有系统。
lacylights-node
后端是否在端口 4000 上运行,并检查 LACYLIGHTS_GRAPHQL_ENDPOINT
环境变量。OPENAI_API_KEY
已在 .env
文件中设置,并验证 API 密钥是否有权访问 GPT - 4。run-mcp.js
包装脚本,而不是直接使用 dist/index.js
,在您的 Claude 配置中使用完整的绝对路径,并在更新 MCP 配置后重启 Claude。"command": "/opt/homebrew/bin/node"
;在其他系统上,使用 which node
查找您的 Node 路径。简化实现使用:
本项目采用 MIT 许可证。