Labsco
MCP SERVER

UFO MCP Server

by rhoegg

Drive a Dynatrace UFO's LED rings by asking — colours, named effects, and a stack that remembers what was showing before.

IoT, Smart Home & Embedded Hardware
Summary
An effect stack, so an alert does not destroy what was there.

playEffect and stopEffect behave as a stack rather than a toggle: push a red alert, and when it clears the ambient effect you had running comes back on its own. That, plus the shared mode, is what makes it usable as a build or incident indicator several agents can drive at once.

What it is

A Go server for the Dynatrace UFO, the two-ring LED device. It sets the rings and logo in one call, plays named effects from a library, and keeps an effect stack so a temporary alert can be lifted and the previous state restored.

What you get
  • Both rings and the logo set in a single command (configureLighting)
  • Named effects played from the library — rotating rainbow, breathing green, police lights, ocean waves, fire glow, a red alert flash (playEffect)
  • The current effect stopped and whatever was showing before resumed from the stack (stopEffect)
  • The effects available, built-in and your own, listed (listEffects)
  • The current LED state read back (getLedState)
  • Raw device commands sent through for anything the tools do not cover (sendRawApi)
  • Independent control of the two rings, plus brightness and rotation
  • Several clients sharing one device's state, when it runs as a shared service
Requirements

A Dynatrace UFO on your network and its address, given as a startup argument or an environment setting. Prebuilt binaries for macOS and Linux, a container image, or a Go build. Standard input and output for a single client; an HTTP mode exists for shared use, and a desktop extension packages that arrangement.

Setup effort

One command — curl -L https://github.com/starspace46/ufo/releases/download/v1.0.1/ufo-mcp-darwin-arm64 -o /usr/local/bin/ufo-mcp