millumin-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MILLUMIN_HOST | No | Where Millumin runs | 127.0.0.1 |
| MILLUMIN_PORT | No | Millumin's OSC listener port | 5678 |
| MILLUMIN_FEEDBACK_PORT | No | Port to receive feedback on; unset turns feedback off | |
| MILLUMIN_ALLOW_DESTRUCTIVE | No | Set to 1 to allow /action/quit and /action/saveProject, which are refused otherwise |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| millumin_actionB | Run a Millumin action, e.g. launchColumn [index or name], stopColumn, launchNextColumn, playOrPause, goToTime [seconds], selectLayer [index or name], displayTestCard, hideTestCard. |
| millumin_setB | Set a property on a target. Target defaults to selectedLayer; other forms are layer:, light:, index:, or an element name. Property examples: opacity, position/x, position/xy, rotation, scale, intensity, media/speed, media/normalizedTime. |
| millumin_masterB | Set a master level: video, audio, or dmx. Value is normalized 0..1. |
| millumin_send_rawA | Send an arbitrary OSC message to Millumin. Use only when no typed tool fits. Destructive addresses (/action/quit, /action/saveProject) are refused unless the server was started with MILLUMIN_ALLOW_DESTRUCTIVE=1. |
| millumin_pingB | Send /ping and return the layer and board state Millumin reports back. Requires MILLUMIN_FEEDBACK_PORT and Millumin's OSC "API feedback" enabled and pointed at that port. |
| millumin_feedbackA | Return recent feedback messages from Millumin (addresses start with /millumin), optionally filtered by a case-insensitive substring such as "launchedColumn" or "layer:Intro". |
| millumin_queryA | Ask Millumin for the current value of one property by sending address + "/?", then return any feedback that came back. Example address: /layer:Intro/opacity. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
The typed tools separate command execution (millumin_action), property setting (millumin_set), and master-level setting (millumin_master) clearly. millumin_query, millumin_feedback, and millumin_ping all expose feedback/state but with distinguishable purposes, while millumin_send_raw overlaps everything as a fallback, keeping this from a perfect score.
All names share the millumin_ prefix and snake_case, which aids readability. However, suffixes mix nouns and verbs (action, master, feedback, ping, query vs set, send_raw) rather than following a single predictable verb_noun convention.
Seven tools is well within the appropriate range for an OSC control bridge. Each tool has a distinct role: typed control, master control, raw fallback, and introspection.
The surface covers core control and introspection: actions, property setting, master levels, targeted queries, recent feedback, ping state, and raw OSC as an escape hatch. Typed discovery/listing of layers, columns, media, or available properties is not provided, though raw OSC can fill those gaps.