@lumiastream/mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LUMIA_HOST | No | Hostname of the Lumia Stream REST API. | 127.0.0.1 |
| LUMIA_PORT | No | Port of the Lumia Stream REST API. | 39231 |
| LUMIA_TOKEN | Yes | Required. API token from Lumia Stream Settings -> API. | |
| LUMIA_SECURE | No | Set to 'true' to use HTTPS instead of HTTP. | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_settingsA | Discover what this Lumia Stream user actually has set up. The default summary returns states, counts, and studio scene/theme/animation names; large lists are counts only. Pass a section to fetch a full list: "commands" (all chat/chatbot/points/extension command names), "alerts", "lights", or "voices". Call this before triggering things by name, since every user's setup differs. |
| trigger_commandA | Trigger one of the user's configured commands by name. "kind" selects which list it comes from: a chat command, a chatbot command, a Twitch channel-points reward, or a Twitch extension command. Use get_settings to see valid names. |
| set_colorA | Set the color and brightness of the user's lights. Provide exactly one of: hex (e.g. "#FF4076"), rgb ({ r, g, b } each 0-255), or ct (color temperature 2900-7000 kelvin). Brightness is 0-100; transition and duration are in milliseconds. |
| trigger_alertA | Simulate a platform alert such as "twitch-follower", "twitch-subscriber", "twitch-bits", "youtube-superchat", or "kofi-donation". Use get_settings (options.alert.values) to see which alerts the user has configured. extraSettings can carry variables like { "username": "lumia", "bits": 1000 }. |
| get_variableA | Read the current value of a Lumia variable, e.g. "twitch_username" or a custom variable you created. |
| set_variableA | Create or update a custom Lumia variable that overlays, commands, and custom code can read. |
| set_counterA | Set a counter variable to an exact numeric value, e.g. reset a death counter to 0. Creates the counter if it doesn't exist yet. |
| speakA | Speak text aloud through Lumia's TTS engine on the streamer's machine. Optionally pick a voice from get_settings (options.tts.voices). Volume is Windows-only, 0-100. |
| set_studioA | Trigger a Lumia Studio scene, theme, or animation by name. Use get_settings to see valid values under options.studio-scene / studio-theme / studio-animation. |
| control_overlayA | Show or hide an overlay or a layer, move or resize a layer, or set a layer's content. "target" is the overlay name/uuid for the "visibility" action, or the layer id for the layer actions (both are found in Lumia's overlay settings). |
| set_lumia_stateA | Turn Lumia's light control on or off, toggle it, or reset all lights to their default state. |
| set_stream_modeA | Turn Lumia Stream Mode on or off, or toggle it. |
| control_queueB | Pause, resume, or clear Lumia's alert/effect queue, or clear all command cooldowns. |
| set_command_stateA | Enable or disable a command, or a whole command folder, by name. For commands, "kind" picks which list the name belongs to (chat, chatbot, Twitch channel points, Kick points, or Twitch extension); points/extension kinds also sync the platform-side reward state on an up-to-date Lumia Stream. |
| manage_chatbot_commandA | Create, update, or delete a chatbot command (chatbot commands are unlimited on every plan). Names are slugified (lowercase, spaces become dashes). "message" is the chat reply and is required for create; it supports {{variables}}. Update merges only the fields you pass; delete refuses built-in system commands. Requires an up-to-date Lumia Stream. |
| control_fuzeA | Start, stop, or toggle Fuze, or set its audio sensitivity (a value below 100 makes it less sensitive). |
| loyalty_pointsA | Add or remove a viewer's loyalty points. Use a negative amount to remove points. |
| get_loyalty_pointsA | Read a viewer's current loyalty points balance. To change it, use loyalty_points. |
| control_song_requestA | Control the song request queue (plays through Spotify). "add" queues a song by search query or link; "skip" jumps to the next song; "play"/"pause" control playback; "remove" drops a request (the last one, or a specific id); "clear" empties the whole queue. |
| send_chat_messageA | Post a message to your live chat through Lumia's chat bot. The platform must be connected and the chat bot enabled. Set as_streamer to post as yourself instead of the bot account. |
| shoutoutA | Shout out a user: finds a clip of them if possible, shows it on your overlays, and posts a shoutout in chat. |
| moderate_userA | Ban, unban, or time out a user, or grant/remove VIP. Ban/unban/timeout work on Twitch and YouTube; VIP is Twitch only. For "timeout", set duration_minutes and optionally a reason. |
| delete_messageC | Delete a specific chat message by its message id. |
| clear_chatA | Clear the entire Twitch chat for all viewers. This cannot be undone. |
| pin_messageA | Pin a Twitch chat message by its message id, or unpin. For "unpin", omit message_id to unpin whatever is currently pinned. |
| manage_moderatorA | Grant or revoke a user's moderator role on Twitch. |
| translate_messageA | Translate a message into a target language and post it to chat. "language" is a code like "en", "es", or "fr". |
| set_stream_infoA | Change the live stream title and/or category. Provide title, category, or both. Works on Twitch and Kick; the category is matched by name search on the platform. YouTube is not supported. |
| create_clipA | Create a Twitch clip of the last moments of the live stream. The clip id and url land in the "twitch_last_clip_id" and "twitch_last_clip_url" variables — read them with get_variable afterwards. Only works while live on Twitch. |
| create_stream_markerA | Mark the current moment of the Twitch broadcast (shows up in the Highlighter for editing later). Only works while live on Twitch. |
| send_announcementB | Post a highlighted announcement message to Twitch chat. |
| run_commercialA | Run an ad break on the Twitch channel. Twitch serves an ad as close to the requested length as possible. Only works while live on Twitch, and respects the channel's ad cooldown. |
| set_chat_modeA | Turn a Twitch chat mode on or off: slow mode, subscriber-only, follower-only, or emote-only. |
| create_pollA | Start a Twitch poll. The poll id lands in the "twitch_current_poll_id" variable, and end_poll targets the last poll created this way. Only works while live on Twitch. |
| end_pollA | End the Twitch poll that is currently running. Only finds polls that were created through Lumia. |
| create_predictionA | Start a Twitch channel-points prediction. The prediction id and outcomes are cached so end_prediction can resolve it by outcome title. Only works while live on Twitch. |
| end_predictionA | Resolve or cancel the Twitch prediction that is currently running. To resolve, name the winning outcome — it must match one of the prediction's outcome titles (case-insensitive). Canceling refunds all channel points. Only works for predictions created through Lumia in the current app session. |
| get_variablesA | Read several Lumia variables at once by name. Returns a map of name to value. Use get_settings first if you're unsure which variables exist. |
| get_stateA | Get a snapshot of the current stream: streamer name, live status, now-playing song, and heart rate, plus a per-platform breakdown (followers, subscribers, viewers, latest follower/subscriber, live) for every connected platform, alongside cross-platform "totals". Platforms with no data are omitted. Note: Lumia "stream mode" on/off isn't a variable, so per-platform "live" is the closest live indicator. |
| get_recent_eventsA | Return live events (chat, chat commands, follows, subs, bits, raids, donations, heart-rate, etc.) that Lumia has pushed since this server started. Optionally filter by a type substring (e.g. "follow", "chat", "sub", "bits") or origin (e.g. "twitch"). If nothing is buffered yet, check the returned status.connected. |
| wait_for_eventA | Block until the next matching live event arrives, or until the timeout. Use it to react in real time — e.g. wait for the next follower, then greet them by name. Returns the event, or a timedOut result if none arrived in time. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| start_stream | Discover the setup, set inviting lights, welcome chat, and run the intro command. |
| brb | Switch to a BRB vibe: calm lights, a chat heads-up, and a BRB scene if present. |
| hype | Celebrate: flashy lights, a hype alert/command, and an energetic chat shout. |
| wind_down | Ease out: warm dim lights, thank the chat, and run any ending command. |
| thank_new_followers | Read recent follow events and thank each new follower by name. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| settings | The current user's available command names, alerts, connected lights, studio scenes/themes/animations, and TTS voices (slimmed — full overlay configs omitted). |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lumiastream/MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server