UFO MCP Server

Controla un dispositivo Dynatrace UFO en tu red local usando clientes compatibles con MCP.

Documentación

Servidor UFO MCP

Controla tu dispositivo Dynatrace UFO mediante clientes compatibles con MCP, como Claude Desktop.

Versión 1.0.1 - Especificación MCP 2024-11-05

🚀 Inicio rápido

Requisitos previos

  • Un dispositivo Dynatrace UFO en tu red
  • Encuentra la dirección IP de tu UFO (consulta tu router o usa ufo.local si mDNS está disponible)

📦 Instalación

Opción 1: Descarga directa (recomendada)

# macOS (Apple Silicon)
curl -L https://github.com/starspace46/ufo/releases/download/v1.0.1/ufo-mcp-darwin-arm64 -o /usr/local/bin/ufo-mcp
chmod +x /usr/local/bin/ufo-mcp

# macOS (Intel)
curl -L https://github.com/starspace46/ufo/releases/download/v1.0.1/ufo-mcp-darwin-amd64 -o /usr/local/bin/ufo-mcp
chmod +x /usr/local/bin/ufo-mcp

# Linux
curl -L https://github.com/starspace46/ufo/releases/download/v1.0.1/ufo-mcp-linux-amd64 -o /usr/local/bin/ufo-mcp
chmod +x /usr/local/bin/ufo-mcp

Opción 2: Docker

docker pull starspace46/ufo-mcp:latest

# Run with Docker
docker run -d \
  --name ufo-mcp \
  -e UFO_IP=YOUR_UFO_IP_HERE \
  -v ~/.ufo-effects:/data \
  starspace46/ufo-mcp:latest

Opción 3: Compilar desde el código fuente

git clone https://github.com/starspace46/ufo-mcp-server.git
cd ufo-mcp-server
go build -o ufo-mcp ./cmd/server
sudo mv ufo-mcp /usr/local/bin/

🔧 Configuración del cliente

Opción A: Extensión de escritorio (recomendada para múltiples agentes)

Para la coordinación de múltiples agentes, donde varias instancias de Claude Desktop comparten el mismo estado del UFO, usa la Extensión de Escritorio:

1. Compilar la extensión

make dxt

2. Iniciar el servidor HTTP

docker run -d --name ufo-mcp-shared -p 8080:8080 -v "$(pwd)/data:/data" ufo-mcp:local --transport http --port 8080

3. Instalar la extensión

  1. Abre Claude Desktop
  2. Ve a Configuración > Extensiones
  3. Arrastra build/ufo-mcp.dxt al área de extensiones

Beneficios:

  • ✅ Varias instancias de Claude Desktop comparten el estado del UFO
  • ✅ Coordinación en tiempo real entre agentes
  • ✅ Gestión centralizada de la pila de efectos
  • ✅ No se requiere editar archivos de configuración

Consulta extension/README.md para documentación detallada.

Opción B: Configuración MCP directa

Para uso con un solo agente o si prefieres la configuración tradicional del servidor MCP:

Claude Desktop

Añade a tu configuración de Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

Instalación directa

{
  "mcpServers": {
    "ufo": {
      "command": "/usr/local/bin/ufo-mcp",
      "args": [
        "--transport", "stdio",
        "--ufo-ip", "YOUR_UFO_IP_HERE"
      ]
    }
  }
}

Instalación con Docker

{
  "mcpServers": {
    "ufo": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "UFO_IP=YOUR_UFO_IP_HERE",
        "-v", "~/.ufo-effects:/data",
        "starspace46/ufo-mcp:latest",
        "--transport", "stdio"
      ]
    }
  }
}

Cline (extensión de VS Code)

Añade a settings.json de VS Code:

Instalación directa

{
  "mcp.servers": {
    "ufo": {
      "command": "/usr/local/bin/ufo-mcp",
      "args": ["--transport", "stdio", "--ufo-ip", "YOUR_UFO_IP_HERE"]
    }
  }
}

Instalación con Docker

{
  "mcp.servers": {
    "ufo": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "UFO_IP=YOUR_UFO_IP_HERE",
        "-v", "~/.ufo-effects:/data",
        "starspace46/ufo-mcp:latest",
        "--transport", "stdio"
      ]
    }
  }
}

MuleSoft Anypoint Code Builder

El servidor UFO MCP incluye soporte SSE heredado para el Conector MCP de MuleSoft (0.1.0-BETA).

  1. Inicia el servidor en modo HTTP:
# Direct
ufo-mcp --transport http --port 8080 --ufo-ip YOUR_UFO_IP_HERE --effects-file ./data/effects.json

# Docker
docker run -d \
  --name ufo-mcp-http \
  -p 8080:8080 \
  -e UFO_IP=YOUR_UFO_IP_HERE \
  -v ~/.ufo-effects:/data \
  starspace46/ufo-mcp:latest \
  --transport http
  1. En Anypoint Code Builder, configura tu conexión MCP:
    • URL del servidor: http://localhost:8080
    • Ruta del endpoint SSE: /sse
    • El servidor gestionará automáticamente la persistencia de sesión entre reconexiones

Otros clientes MCP

Para clientes MCP HTTP/2 estándar, conéctate a http://localhost:8080/mcp

El servidor admite múltiples modos de transporte simultáneamente:

  • stdio: E/S estándar para clientes de escritorio (Claude, Cline)
  • http: HTTP/2 + SSE para clientes basados en web
  • SSE heredado: SSE bidireccional para compatibilidad con MuleSoft

💡 Ejemplos de uso

Una vez configurado, pide a Claude que:

  • "Pon el UFO en rojo" - Configura todos los LED en rojo
  • "Reproduce el efecto arcoíris" - Inicia una animación colorida
  • "Haz el anillo superior azul y el anillo inferior verde" - Control independiente de anillos
  • "Configura el brillo al 50%" - Ajusta el brillo general
  • "Añade rotación al anillo superior" - Anima los patrones del anillo
  • "Muestra el estado actual del UFO" - Ve lo que se muestra actualmente

🎨 Efectos integrados

El servidor incluye efectos preconfigurados:

  • rainbow - Colores arcoíris rotativos (perpetuo)
  • breathingGreen - Pulso verde relajante (perpetuo)
  • policeLights - Patrón de luces de emergencia (30 segundos)
  • oceanWave - Olas azules relajantes (perpetuo)
  • fireGlow - Efecto de fuego parpadeante (perpetuo)
  • alertPulse - Destello de alerta roja (20 segundos)

🛠️ Herramientas disponibles

  • configureLighting - Configura toda la iluminación del UFO (anillo superior, anillo inferior, logotipo) en un solo comando
  • sendRawApi - Envía comandos API sin procesar directamente al UFO
  • playEffect - Reproduce un efecto de iluminación con nombre de la biblioteca
  • stopEffect - Detiene el efecto actual y reanuda el anterior de la pila
  • getLedState - Consulta el estado actual de los LED
  • listEffects - Muestra todos los efectos disponibles (integrados y personalizados)

📝 Opciones de configuración

Argumentos de línea de comandos

  • --transport o -t: Tipo de transporte (stdio o http, predeterminado: stdio)
  • --port: Puerto HTTP al usar transporte http (predeterminado: 8080)
  • --ufo-ip: Dirección IP del dispositivo UFO (anula la variable de entorno UFO_IP)
  • --effects-file: Ruta al archivo JSON de efectos (predeterminado: /data/effects.json)

Variables de entorno

  • UFO_IP: Dirección IP o nombre de host del dispositivo UFO (por ejemplo, 192.168.1.100 o ufo.local)

🐛 Solución de problemas

  1. No encuentro el UFO: Verifica la dirección IP de tu UFO en el panel de administración de tu router
  2. Conexión rechazada: Asegúrate de que el UFO esté encendido y conectado a tu red
  3. Los efectos no se guardan: Verifica los permisos de escritura para la ubicación del archivo de efectos
  4. Problemas de permisos con Docker: Asegúrate de que el directorio de efectos sea escribible

📄 Licencia

Licencia MIT - Consulta el archivo LICENSE para más detalles