LacyLights

Diseño de iluminación teatral impulsado por IA para el sistema LacyLights.

Documentación

Servidor MCP de LacyLights

GitHub Release GitHub Pre-release License: MIT

Un servidor MCP (Protocolo de Contexto de Modelo) que proporciona capacidades de diseño de iluminación teatral impulsadas por IA para el sistema LacyLights. Este servidor permite a los asistentes de IA crear, gestionar y controlar diseños profesionales de iluminación teatral mediante interacciones en lenguaje natural.

¿Qué es LacyLights MCP?

LacyLights MCP es una interfaz inteligente de control de iluminación que une la visión creativa con la ejecución técnica. Permite a diseñadores de iluminación, directores y técnicos:

  • Diseñar looks de iluminación usando descripciones en lenguaje natural
  • Analizar guiones teatrales para generar automáticamente señales de iluminación
  • Gestionar accesorios DMX de varios fabricantes
  • Crear y ejecutar secuencias de señales para representaciones teatrales
  • Optimizar diseños de iluminación para impacto dramático o eficiencia energética

El sistema utiliza IA para comprender la intención artística y traducirla en valores DMX precisos para accesorios de iluminación del mundo real.

Referencia Completa de Funciones

Gestión de Proyectos

  • list_projects - Lista todos los proyectos de iluminación disponibles con recuentos opcionales de accesorios/looks
  • create_project - Crea un nuevo proyecto de iluminación para una producción
  • get_project_details - Obtiene detalles completos sobre un proyecto específico
  • delete_project - Elimina un proyecto y todos los datos asociados (requiere confirmación)
  • qlc_import_guidance - Obtiene información sobre la importación de archivos QLC+ (.qxw)

Gestión de Accesorios

  • get_fixture_inventory - Consulta accesorios disponibles y sus capacidades (las definiciones incluyen source: BUILTIN, OFL, GDTF, EOS, USER o SYNTHESIZED, cuando el backend lo reporta)
  • import_gdtf_fixtures - Importa tipos de accesorios GDTF desde archivos .gdtf, archivos .zip de estos, o carpetas en el host MCP (ver más abajo)
  • analyze_fixture_capabilities - Análisis profundo de capacidades de accesorios (mezcla de color, posicionamiento, efectos). Los indicadores de capacidad incluyen hasColorTemperature (canal de TEMPERATURA DE COLOR), hasHueSaturation (tanto HUE como SATURATION, reportado como mezcla "Hue/Saturation (HSI)") y hasSpeed (canal de VELOCIDAD; el análisis de posicionamiento lo reporta como speedControl)
  • create_fixture_instance - Añade un nuevo accesorio a un proyecto con detalles de fabricante/modelo
  • get_channel_map - Ve el mapa de uso de canales DMX para un proyecto
  • suggest_channel_assignment - Obtiene asignaciones óptimas de canales para múltiples accesorios
  • update_fixture_instance - Modifica propiedades de accesorios existentes
  • delete_fixture_instance - Elimina un accesorio de un proyecto (requiere confirmación)

Creación y Gestión de Looks

  • generate_look - Generación de looks impulsada por IA basada en descripciones y contexto
  • analyze_script - Extrae señales de iluminación y sugerencias de guiones teatrales
  • optimize_look - Optimiza looks para varios objetivos (energía, impacto, simplicidad)
  • update_look - Actualiza propiedades de looks y valores de accesorios
  • activate_look - Activa un look por nombre o ID
  • fade_to_black - Desvanece todas las luces a negro con temporización personalizable
  • get_current_active_look - Obtiene información sobre el look actualmente activo

Operaciones Avanzadas de Looks

  • add_fixtures_to_look - Añade accesorios a looks existentes
  • remove_fixtures_from_look - Elimina accesorios específicos de looks
  • get_look_fixture_values - Lee valores actuales de accesorios en un look
  • ensure_fixtures_in_look - Asegura que los accesorios existan con valores específicos
  • update_look_partial - Actualizaciones parciales de looks con fusión de accesorios
  • bulk_update_looks_partial - Actualizaciones parciales por lotes en múltiples looks con fusión de accesorios

Gestión de Secuencias de Señales

  • create_cue_sequence - Construye secuencias de señales a partir de looks existentes
  • generate_act_cues - Genera listas completas de señales para actos teatrales
  • optimize_cue_timing - Optimiza la temporización de señales para varias estrategias
  • analyze_cue_structure - Analiza listas de señales con recomendaciones

Operaciones de Listas de Señales

  • update_cue_list - Actualiza metadatos de listas de señales
  • add_cue_to_list - Añade nuevas señales a listas existentes
  • remove_cue_from_list - Elimina señales de listas
  • update_cue - Modifica propiedades de señales individuales
  • bulk_update_cues - Actualiza múltiples señales simultáneamente
  • reorder_cues - Reordena señales con nueva numeración
  • get_cue_list_details - Consulta señales con filtrado y ordenación
  • delete_cue_list - Elimina listas de señales completas (requiere confirmación)

Control de Reproducción de Señales

  • start_cue_list - Comienza a reproducir una lista de señales desde cualquier punto
  • next_cue - Avanza a la siguiente señal
  • previous_cue - Retrocede a la señal anterior
  • go_to_cue - Salta a una señal específica por número o nombre
  • stop_cue_list - Detiene la lista de señales actualmente en reproducción
  • get_cue_list_status - Obtiene el estado de reproducción y opciones de navegación

Gestión de Tableros de Looks

Los Tableros de Looks proporcionan un sistema de diseño visual para organizar y activar looks con posiciones de botones personalizables en un lienzo 2D (por defecto 2000x2000 píxeles).

CRUD de Tableros de Looks

  • list_look_boards - Lista todos los tableros de looks en un proyecto con recuentos de botones
  • get_look_board - Obtiene un tablero de looks específico con todos los botones y diseño
  • create_look_board - Crea un nuevo tablero de looks con configuraciones personalizadas de lienzo y cuadrícula
  • update_look_board - Actualiza metadatos y configuraciones de tableros de looks
  • delete_look_board - Elimina un tablero de looks y todos sus botones (requiere confirmación)
  • bulk_create_look_boards - Crea múltiples tableros de looks en una sola operación
  • bulk_update_look_boards - Actualiza múltiples tableros de looks en una sola operación
  • bulk_delete_look_boards - Elimina múltiples tableros de looks en una sola operación

Gestión de Botones de Tableros de Looks

  • add_look_to_board - Añade un look como botón en una posición específica del lienzo
  • update_look_board_button - Actualiza propiedades de botones (posición, tamaño, color, etiqueta)
  • remove_look_from_board - Elimina un botón de un tablero de looks
  • update_look_board_button_positions - Actualización por lotes de posiciones de botones (arrastrar y soltar)
  • bulk_create_look_board_buttons - Crea múltiples botones en una sola operación
  • bulk_update_look_board_buttons - Actualiza múltiples botones en una sola operación
  • bulk_delete_look_board_buttons - Elimina múltiples botones en una sola operación

Reproducción de Tableros de Looks

  • activate_look_from_board - Activa un look desde un tablero (usa el tiempo de desvanecimiento predeterminado del tablero)
  • create_look_board_with_buttons - Crea un tablero de looks completo con botones en un solo comando

Importación de Accesorios GDTF

  • import_gdtf_fixtures({ paths, onExisting? }) - Lee cada ruta en la computadora que ejecuta el servidor MCP: un .gdtf, un .zip de archivos .gdtf (zips anidados hasta 2 niveles), o una carpeta buscada recursivamente (se ignoran carpetas ocultas y archivos no GDTF, no se siguen enlaces simbólicos que salgan de la carpeta). Solo el description.xml de cada accesorio se envía a la mutación importGdtfFixtures del backend, en lotes de hasta 25 archivos. onExisting es UPDATE (predeterminado) o SKIP para tipos de accesorios importados anteriormente. Devuelve recuentos de creados/actualizados/sin cambios/omitidos/fallidos y una lista por archivo (limitada a 100, fallos primero).

Los límites coinciden con el backend: como máximo 2000 entradas por archivo, description.xml como máximo 32 MB, entradas __MACOSX/ y ._* omitidas. Los archivos ilegibles se reportan como FAILED y nunca detienen a los demás. Solo importa archivos que tú proporciones; la herramienta nunca descarga de GDTF Share.

Exportación de Datos (CSV / Excel)

Requiere lacylights-go v0.4.0 o más reciente; los backends más antiguos reciben un mensaje de "actualizar LacyLights".

  • list_data_export_tables - Lista tablas exportables con sus columnas y alcance (qué IDs necesita cada exportación)
  • export_data_table - Exporta una tabla como CSV (devuelto en línea, truncado con una nota cuando es grande) o XLSX (escrito en un archivo; se devuelve la ruta)
  • export_data_workbook - Exporta varias tablas de proyecto como un libro XLSX de múltiples hojas escrito en un archivo

Los archivos se escriben en el argumento outputDirectory de la herramienta, si no en LACYLIGHTS_EXPORT_DIR, si no en una carpeta privada (0700) lacylights-exports en el directorio temporal del sistema. Los archivos se crean con modo 0600 y nunca sobrescriben un archivo existente (se añade un sufijo numérico). Ten en cuenta que outputDirectory es elegido por el asistente de IA y puede ser cualquier directorio al que el proceso del servidor MCP pueda escribir. Establece LACYLIGHTS_EXPORT_DIR para dar a las exportaciones un hogar predecible, y mantén al asistente en ese valor predeterminado.

Instalación

  1. Instala las dependencias:
npm install
  1. Configura las variables de entorno:
cp .env.example .env
# Edit .env with your configuration
  1. Construye el proyecto:
npm run build

Configuración

Variables de Entorno

  • LACYLIGHTS_GRAPHQL_ENDPOINT - Punto final GraphQL para tu backend lacylights-go (predeterminado: http://localhost:4000/graphql)
  • OPENAI_API_KEY - Clave API de OpenAI, necesaria solo para las herramientas de generación impulsadas por IA (por ejemplo, generate_look, analyze_script, generate_act_cues). El servidor se inicia sin ella y todas las demás herramientas funcionan; las herramientas de IA entonces devuelven un error pidiendo que la establezcas.

Variables de Entorno Opcionales

  • CHROMA_HOST - Host de ChromaDB para funcionalidad RAG mejorada (predeterminado: localhost)
  • CHROMA_PORT - Puerto de ChromaDB (predeterminado: 8000)
  • LACYLIGHTS_EXPORT_DIR - Directorio para archivos de exportación de datos CSV/XLSX (predeterminado: lacylights-exports en el directorio temporal del sistema)

Ejecución del Servidor

Asegúrate de que tu backend lacylights-go esté ejecutándose primero, luego:

# Start in development mode (with auto-reload)
npm run dev

# Or build and run in production mode
npm run build
npm start

Deberías ver:

RAG service initialized with in-memory patterns
LacyLights MCP Server running on stdio

Integración con Claude

Añade este servidor a tu configuración de Claude:

{
  "mcpServers": {
    "lacylights": {
      "command": "/usr/local/bin/node",
      "args": ["/path/to/lacylights-mcp/run-mcp.js"],
      "env": {
        "OPENAI_API_KEY": "your_openai_api_key_here",
        "LACYLIGHTS_GRAPHQL_ENDPOINT": "http://localhost:4000/graphql"
      }
    }
  }
}

Importante:

  • Usa la ruta absoluta a run-mcp.js en tu configuración
  • Si lo anterior no funciona, encuentra la ruta de tu Node.js con: which node
  • El script envoltorio asegura la carga adecuada de módulos CommonJS

Lanzamientos y Versionado

Canales de Lanzamiento

LacyLights MCP soporta dos canales de lanzamiento:

  1. Lanzamientos Estables (por ejemplo, 1.4.0, 1.5.0)

    • Versiones listas para producción
    • Completamente probadas y validadas
    • Listadas como "Latest" en GitHub
    • Actualiza latest.json para descubrimiento automático
  2. Lanzamientos Beta (por ejemplo, 1.4.1b1, 1.5.0b2)

    • Versiones de pre-lanzamiento para pruebas
    • Nuevas características y cambios experimentales
    • Marcadas como "Pre-release" en GitHub
    • No afecta al latest.json estable

Formato de Versión

  • Estable: X.Y.Z (versionado semántico)

    • X = Versión principal (cambios disruptivos)
    • Y = Versión menor (nuevas características)
    • Z = Versión de parche (correcciones de errores)
  • Beta: X.Y.Zb[N] (beta con iteración)

    • b = Identificador beta
    • [N] = Número de iteración beta (1, 2, 3, ...)

Instalación de Versiones Específicas

Instalar Última Estable (Recomendado)

# Download latest stable release
curl -s https://dist.lacylights.com/releases/mcp/latest.json | jq -r '.url' | xargs curl -LO

# Extract archive
tar -xzf lacylights-mcp-*.tar.gz
cd lacylights-mcp

# Install and run
npm ci --omit=dev
npm start

Instalar Versión Específica

# Download specific version (replace X.Y.Z with actual version)
VERSION="1.4.0"  # or "1.4.1b1" for beta
curl -LO https://dist.lacylights.com/releases/mcp/lacylights-mcp-${VERSION}.tar.gz

# Verify SHA256 checksum (optional but recommended)
curl -s https://dist.lacylights.com/releases/mcp/latest.json | jq -r '.sha256'
sha256sum lacylights-mcp-${VERSION}.tar.gz

# Extract and run
tar -xzf lacylights-mcp-${VERSION}.tar.gz
cd lacylights-mcp
npm ci --omit=dev
npm start

Instalar Beta para Pruebas

# Download latest beta (check GitHub releases for version)
VERSION="1.5.0b2"
curl -LO https://dist.lacylights.com/releases/mcp/lacylights-mcp-${VERSION}.tar.gz

# Extract and test
tar -xzf lacylights-mcp-${VERSION}.tar.gz
cd lacylights-mcp
npm ci --omit=dev
npm start

Distribución de Lanzamientos

Todos los lanzamientos se distribuyen a través de múltiples canales:

  1. Lanzamientos de GitHub: https://github.com/bbernstein/lacylights-mcp/releases

    • Código fuente
    • Archivos precompilados
    • Notas de lanzamiento
  2. Distribución S3: https://dist.lacylights.com/releases/mcp/

    • Descargas directas de archivos
    • Sumas de verificación SHA256
    • Metadatos latest.json
  3. Registro DynamoDB:

    • Seguimiento de versiones
    • Metadatos de lanzamiento
    • Indicadores de pre-lanzamiento

Programa de Pruebas Beta

¿Quieres ayudar a probar nuevas características? Instala lanzamientos beta:

  1. Busca betas: Visita Lanzamientos de GitHub

    • Busca lanzamientos marcados como "Pre-release"
    • Formato de versión: X.Y.Zb[N]
  2. Instala beta:

    # See "Install Beta for Testing" above
    
  3. Reporta problemas:

    • Abre problemas en GitHub
    • Incluye el número de versión
    • Proporciona pasos de reproducción

Proceso de Lanzamiento

Para mantenedores: Consulta RELEASE_PROCESS.md para documentación completa de lanzamiento que incluye:

  • Flujos de trabajo de lanzamiento beta
  • Procedimientos de lanzamiento estable
  • Gestión de versiones
  • Verificación de distribución
  • Solución de problemas y reversión

Ejemplo Completo: Diseño de Iluminación para Macbeth

Aquí tienes un ejemplo completo que muestra cómo un diseñador de iluminación usaría LacyLights MCP para crear un diseño de iluminación completo para Macbeth de Shakespeare:

Paso 1: Crear el Proyecto

Use create_project to create a new project called "Macbeth - Main Stage 2024"
with description "Shakespeare's Macbeth, directed by Jane Smith, March 2024 production"

Paso 2: Configurar los Equipos

Use create_fixture_instance to add these fixtures to the project:
- 12x Chauvet SlimPAR Pro RGBA fixtures for front wash (channels 1-48)
- 8x Martin MAC Quantum Profile moving heads for specials (channels 100-163)
- 6x ETC Source Four LED Series 2 for side lighting (channels 200-241)
- 4x Chauvet Strike 4 strobes for storm effects (channels 300-315)
- 2x Rosco Vapour Plus hazers for atmosphere (channels 400-403)

Paso 3: Analizar el Guion

Use analyze_script with the full text of Act 1 to extract:
- All lighting cues mentioned in stage directions
- Scene transitions that need lighting changes
- Mood and atmosphere requirements for each scene

Paso 4: Generar Looks Clave

Use generate_look to create these essential looks:

1. "Opening - Thunder and Lightning"
   - Script context: "Thunder and lightning. Enter three witches."
   - Mood: ominous, supernatural
   - Color palette: ["deep purple", "electric blue", "white strobe"]
   - Intensity: dramatic

2. "Duncan's Arrival at Inverness"
   - Script context: "Hautboys and torches. Enter Duncan, Malcolm, Donalbain, Banquo"
   - Mood: regal, warm
   - Color palette: ["warm amber", "gold", "soft orange"]
   - Intensity: moderate

3. "Lady Macbeth Reads the Letter"
   - Script context: "Enter Lady Macbeth, reading a letter"
   - Mood: intimate, plotting
   - Color palette: ["cool blue", "pale amber", "shadow"]
   - Focus areas: ["center stage", "downstage center"]

4. "The Dagger Soliloquy"
   - Script context: "Is this a dagger which I see before me"
   - Mood: hallucinatory, tense
   - Color palette: ["blood red", "deep shadow", "cold steel blue"]
   - Intensity: subtle
   - Focus areas: ["center stage spot"]

5. "Murder of Duncan"
   - Script context: "Macbeth exits to kill Duncan, bell rings"
   - Mood: dark, suspenseful
   - Color palette: ["deep red", "black", "moonlight blue"]
   - Intensity: dramatic

6. "Banquo's Ghost Appears"
   - Script context: "The Ghost of Banquo enters, and sits in Macbeth's place"
   - Mood: supernatural, terrifying
   - Color palette: ["ghostly green", "cold white", "shadow"]
   - Effects: use moving heads for ghost tracking

7. "Lady Macbeth's Sleepwalking"
   - Script context: "Enter Lady Macbeth with a taper"
   - Mood: haunted, guilty
   - Color palette: ["candlelight amber", "moonlight", "deep shadow"]
   - Focus areas: ["follow spot", "single candle effect"]

8. "Final Battle"
   - Script context: "Alarums. Enter Macbeth and Macduff fighting"
   - Mood: violent, chaotic
   - Color palette: ["fire red", "steel blue", "explosive white"]
   - Intensity: dramatic
   - Effects: strobe for sword clashes

Paso 5: Crear Secuencias de Cues

Use create_cue_sequence to build the Act 1 cue list:
- Name: "Act 1 - Complete"
- Include all Act 1 looks in order
- Set default fade times: 3 seconds in, 3 seconds out
- Add follow cues for quick transitions during soliloquies

Paso 6: Generar Cues por Acto con Análisis del Guion

Use generate_act_cues with the complete text of Act 2:
- This will analyze the script and create a complete cue list
- Automatically times transitions based on dramatic pacing
- Suggests lighting changes for every entrance, exit, and mood shift

Paso 7: Optimizar para el Rendimiento

Use optimize_cue_timing on the Act 1 cue list:
- Strategy: "dramatic_timing"
- This will adjust fade times for maximum dramatic impact
- Smooth transitions for scene changes
- Sharp cuts for supernatural appearances

Paso 8: Crear Secuencias de Efectos Especiales

Use create_cue_sequence for the storm effect:
1. Lightning Strike 1 (strobes at full, 0.1s)
2. Thunder Roll (deep blue wash, 2s fade)
3. Lightning Strike 2 (strobes at 75%, 0.15s)
4. Return to storm base (purple/blue, 3s fade)
- Set follow times for automatic progression

Paso 9: Ejecutar el Espectáculo

Durante la función, el director de escena puede usar:

start_cue_list "Act 1 - Complete"
next_cue  # Advance through each cue
go_to_cue 15.5  # Jump to specific cue for pickups
fade_to_black 5  # Emergency blackout with 5-second fade

Paso 10: Hacer Ajustes en Vivo

Use update_look to adjust the "Banquo's Ghost" look:
- Increase moving head intensity for better visibility
- Adjust color temperature based on costume reflectance
- Fine-tune positioning for actor's blocking changes

Ejemplos de Uso Avanzado

Flujo de Trabajo de Diseño Basado en el Guion

1. Analyze the entire script:
   analyze_script with full play text

2. Review extracted cues and looks

3. Generate all suggested looks in batch:
   generate_look for each suggestion

4. Create master cue list:
   create_cue_sequence with all looks

5. Optimize for your venue:
   optimize_look for each look with "technical_simplicity"

Configuración Multi-Universo

For large productions spanning multiple DMX universes:

1. Plan channel allocation:
   suggest_channel_assignment for all fixtures

2. Create fixtures with specific universe assignments:
   create_fixture_instance with universe: 1 for front lights
   create_fixture_instance with universe: 2 for moving heads
   create_fixture_instance with universe: 3 for effects

3. View the complete channel map:
   get_channel_map for the project

Proceso de Diseño Colaborativo

Director requests:
"I want the witches' scenes to feel otherworldly but not cartoonish"

Use generate_look:
- Description: "Witches on the heath"
- Mood: "otherworldly, mysterious"
- Color palette: ["deep violet", "fog grey", "pale green"]
- Intensity: "subtle"

Then iterate with optimize_look using "dramatic_impact" until satisfied

Funciones Impulsadas por IA

Análisis Inteligente del Guion

  • Extrae cues de iluminación explícitos de las acotaciones escénicas
  • Identifica necesidades de iluminación implícitas a partir del diálogo y la acción
  • Sugiere iluminación atmosférica basada en el contexto dramático
  • Reconoce convenciones teatrales estándar (amanecer, atardecer, tormentas)

Generación de Looks Contextual

  • Comprende los principios de iluminación teatral
  • Aplica teoría del color para el impacto emocional
  • Considera las capacidades y posiciones de los equipos
  • Genera valores DMX que respetan las limitaciones del mundo real

Optimización Adaptativa

  • Eficiencia Energética: Reduce el consumo de energía manteniendo la intención artística
  • Impacto Dramático: Mejora el contraste y el enfoque para un efecto máximo
  • Simplicidad Técnica: Simplifica la programación para una operación más fácil
  • Precisión del Color: Optimiza para una reproducción cromática fiel

Solución de Problemas

Problemas Comunes

  1. Errores de importación de módulos

    • Asegúrate de que la versión de Node.js sea 18+ como se especifica en package.json
    • Usa el script contenedor run-mcp.js, no dist/index.js directamente
  2. Errores de conexión GraphQL

    • Verifica que tu backend lacylights-go esté ejecutándose en el puerto 4000
    • Revisa la variable de entorno LACYLIGHTS_GRAPHQL_ENDPOINT
  3. Errores de la API de OpenAI (por ejemplo, "This tool requires OpenAI, but OPENAI_API_KEY is not set")

    • Establece OPENAI_API_KEY en el bloque env de la configuración de tu cliente MCP (o expórtalo en el shell que lanza el servidor) y luego reinicia el servidor. El servidor no carga un archivo .env por sí mismo
    • Verifica que la clave de API tenga acceso a GPT-4
  4. Errores de conexión MCP en Claude

    • Usa la ruta absoluta completa en tu configuración de Claude
    • Reinicia Claude después de actualizar la configuración de MCP
    • Revisa los registros de Claude para ver mensajes de error detallados
  5. Error "Unexpected token ?"

    • Actualiza tu configuración para usar la ruta completa a Node.js 14+
    • En macOS con Homebrew: "command": "/opt/homebrew/bin/node"
    • En otros sistemas, encuentra tu ruta de node con: which node

Configuración de ChromaDB (Opcional - Para RAG Mejorado)

El servidor MCP funciona de inmediato con almacenamiento de patrones en memoria. Para almacenamiento vectorial persistente y coincidencia de patrones más sofisticada:

Opción 1: Docker (Recomendado)

# Start ChromaDB with Docker
docker-compose up -d chromadb

# Verify it's running
curl http://localhost:8000/api/v2/heartbeat

Opción 2: Instalación Local

# Install ChromaDB
pip install chromadb

# Start the server
chroma run --host localhost --port 8000

Luego actualiza tu archivo .env:

# Uncomment these lines in .env
CHROMA_HOST=localhost
CHROMA_PORT=8000

Integración con el Ecosistema LacyLights

Este servidor MCP es parte del sistema completo LacyLights:

  • lacylights-go - API GraphQL backend para gestión de equipos y looks
  • lacylights-fe - Frontend web para control manual y visualización
  • lacylights-mcp - Interfaz de IA para automatización inteligente

El servidor MCP mejora el sistema existente con:

  • Control en lenguaje natural
  • Generación inteligente de looks
  • Capacidades de análisis de guiones
  • Creación automatizada de cues
  • Optimización del rendimiento

Desarrollo

Estructura del Proyecto

src/
├── tools/           # MCP tool implementations
│   ├── fixture-tools.ts    # Fixture management operations
│   ├── look-tools.ts       # Look creation and control
│   ├── cue-tools.ts        # Cue list management
│   └── project-tools.ts    # Project operations
├── services/        # Core services
│   ├── graphql-client.ts   # GraphQL API client
│   ├── rag-service.ts      # RAG pattern matching
│   └── ai-lighting.ts      # AI look generation
├── types/          # TypeScript type definitions
│   └── lighting.ts         # Core lighting types
└── index.ts        # MCP server entry point

Añadir Nuevas Herramientas

  1. Crea la implementación de la herramienta en el archivo apropiado bajo src/tools/
  2. Añade la definición de la herramienta a src/index.ts en el manejador ListToolsRequestSchema
  3. Añade el manejador de la herramienta en el manejador CallToolRequestSchema
  4. Actualiza este README con la documentación de la herramienta

Pruebas

npm test

Directorio MCP

LacyLights Server MCP server

Licencia

MIT