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.localsi 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
- Abre Claude Desktop
- Ve a Configuración > Extensiones
- Arrastra
build/ufo-mcp.dxtal á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).
- 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
- 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
- URL del servidor:
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 comandosendRawApi- Envía comandos API sin procesar directamente al UFOplayEffect- Reproduce un efecto de iluminación con nombre de la bibliotecastopEffect- Detiene el efecto actual y reanuda el anterior de la pilagetLedState- Consulta el estado actual de los LEDlistEffects- Muestra todos los efectos disponibles (integrados y personalizados)
📝 Opciones de configuración
Argumentos de línea de comandos
--transporto-t: Tipo de transporte (stdioohttp, predeterminado:stdio)--port: Puerto HTTP al usar transporte http (predeterminado:8080)--ufo-ip: Dirección IP del dispositivo UFO (anula la variable de entornoUFO_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.100oufo.local)
🐛 Solución de problemas
- No encuentro el UFO: Verifica la dirección IP de tu UFO en el panel de administración de tu router
- Conexión rechazada: Asegúrate de que el UFO esté encendido y conectado a tu red
- Los efectos no se guardan: Verifica los permisos de escritura para la ubicación del archivo de efectos
- 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