elgato-keylight
Control Elgato Key Lights, including turning on/off, adjusting brightness and color temperature, applying presets, and effects like flash, pulse, and celebrate.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@elgato-keylight turn on all lights"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
elgato-keylight
Control Elgato Key Lights from CLI, waybar, and Claude Code (MCP).
Install
# Development
uv sync
# Global CLI
uv tool install -e ".[mcp]"Related MCP server: hue_mcp
CLI
elgato status # Show all lights
elgato on # Turn all on
elgato off # Turn all off
elgato toggle # Toggle on/off
elgato brightness 75 # Set brightness (0-100)
elgato brightness-up # +10 brightness
elgato brightness-down # -10 brightness
elgato temperature 200 # Set color temp (143-344)
elgato preset webcam # Apply preset (per-light values)
elgato identify # Flash to identify
elgato -l right status # Target specific light
# Effects
elgato flash # Flash on/off
elgato pulse # Smooth brightness pulse
elgato celebrate # Color temperature dance
elgato alert # Urgent attention flash
elgato mood focus # Set mood (cozy/focus/relax/energize/movie)Waybar
Add to ~/.config/waybar/config.jsonc:
"custom/lights": {
"exec": "elgato-waybar",
"return-type": "json",
"interval": 30,
"on-click": "elgato toggle",
"on-click-right": "elgato preset video",
"on-scroll-up": "elgato brightness-up",
"on-scroll-down": "elgato brightness-down"
}Add to ~/.config/waybar/style.css:
#custom-lights {
color: #7aa2f7;
}
#custom-lights.off {
color: #565f89;
}
#custom-lights.mixed {
color: #e0af68;
}MCP Server
Add to ~/.claude.json:
{
"mcpServers": {
"elgato-keylight": {
"command": "uv",
"args": ["run", "--directory", "/path/to/elgato-control-home-automation", "--extra", "mcp", "elgato-mcp"]
}
}
}Config
Config lives at ~/.config/elgato-keylight/config.toml. Presets support per-light overrides:
[presets.webcam]
brightness = 32 # fallback for unnamed lights
temperature = 179
[presets.webcam.right]
brightness = 18 # right light gets its own values
temperature = 181
[presets.webcam.left]
brightness = 46 # left light gets its own values
temperature = 177License
Licensed under either of
Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Available Tools
13 toolsalert_flashB
Urgent attention-getting flash at max brightness. Restores original state.
Args: flashes: Number of alert flashes (default 5). light_names: Optional list of light names.
Inputs: flashes, light_names. Returns: result
apply_presetC
Apply a named lighting preset.
Available presets: bright, dim, warm, cool, video.
Args: preset_name: Name of the preset to apply. light_names: Optional list of light names.
Inputs: preset_name (required), light_names. Returns: result
celebrateA
Fun alternating color temperature dance! Perfect for celebrating a win. Restores original state when done.
Inputs: no named parameters. Returns: result
dim_for_attentionA
Slowly dim lights to subtly get attention without being jarring. Restores original state.
Args: light_names: Optional list of light names.
Inputs: light_names. Returns: result
flash_lightsB
Flash the lights on/off to get attention or say hello! Restores original state.
Args: times: Number of flashes (default 3). light_names: Optional list of light names.
Inputs: times, light_names. Returns: result
get_light_statusA
Get the current status of all (or specified) lights.
Args: light_names: Optional list of light names to query (e.g. ["left", "right"]). If not provided, queries all configured lights.
Inputs: light_names. Returns: result
pulse_lightsA
Smoothly pulse light brightness up and down. Restores original state.
Args: cycles: Number of pulse cycles (default 3). light_names: Optional list of light names.
Inputs: cycles, light_names. Returns: result
set_brightnessB
Set brightness of all (or specified) lights.
Args: brightness: Brightness level 0-100. light_names: Optional list of light names.
Inputs: brightness (required), light_names. Returns: result
set_mood_lightingB
Set a mood lighting preset. This persists (does not restore previous state).
Available moods: cozy, focus, relax, energize, movie.
Args: mood: The mood to set.
Inputs: mood (required). Returns: result
set_temperatureA
Set color temperature of all (or specified) lights.
Args: temperature: Temperature in Elgato units (143=cool/7000K to 344=warm/2900K). light_names: Optional list of light names.
Inputs: temperature (required), light_names. Returns: result
toggle_lightsA
Toggle all (or specified) lights on/off.
Args: light_names: Optional list of light names to toggle.
Inputs: light_names. Returns: result
turn_offC
Turn off all (or specified) lights.
Args: light_names: Optional list of light names to turn off.
Inputs: light_names. Returns: result
turn_onB
Turn on all (or specified) lights.
Args: light_names: Optional list of light names to turn on.
Inputs: light_names. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Each tool has a clear, distinct purpose: basic on/off/toggle, brightness/temperature control, status query, presets, and specific effects. Descriptions like 'alert_flash' vs 'flash_lights' highlight urgency vs casual use, preventing confusion.
Most tools follow a verb_noun pattern (e.g., 'turn_on', 'set_brightness'), but 'celebrate' is a single-word verb, and 'dim_for_attention' uses a preposition, introducing slight inconsistency.
13 tools cover all essential controls (power, brightness, temperature, status) plus presets and effects without being excessive. The count is well-scoped for the domain.
The tool set includes CRUD-like operations (turn on/off, set brightness/temp, get status), multiple presets (apply_preset, set_mood_lighting), and fun effects, leaving no obvious gaps for typical usage.
Maintenance
Related MCP Connectors
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
BeautySpark MCP server for ChatGPT, Claude and other MCP clients
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for Kling AI video generation
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for controlling Meticulous espresso machines via Claude and other AI clients.22112 npmMIT
- FlicenseNot gradedqualityCmaintenanceA production-ready Model Context Protocol (MCP) server that enables Claude to control Philips Hue lights through natural language commands.-

Calcifierofficial
FlicenseNot gradedqualityDmaintenanceMCP server for the Calcifier smart camping lamp, enabling control of lamp state, brightness, color temperature, mode, and battery charging via natural language with Claude.-- AlicenseAqualityDmaintenanceMCP server that enables AI agents to control Twinkly lights through natural language, supporting operations like on/off, color, brightness, and effects.1424 npmISC