MCP server for controlling Elgato Key Light devices over the network
Two tools with critical definition gaps. elgato_key_light_control_tool has a vague description and parameters with NO descriptions (on, brightness, temperature all have null descriptions). elgato_key_light_status_tool has a reasonable description but empty input schema. Neither tool documents output structure. Parameter types are present but lack semantic guidance (e.g., 'on' as integer is ambiguous, should be boolean or enum 0/1). No error handling guidance. No parameter constraints (brightness 0-100, temperature 143-344 mentioned in description but not in schema). Descriptions are 10 - 20 chars below the 194-char baseline for production tools.
Controls the Elgato Key Light. Turn it on/off, set brightness (0-100) and color temperature 344(2900k) - 143(7000k).
Returns the current state of the Elgato Key Light: whether it is on, brightness level, and color temperature.
All input parameters lack descriptions. 'on', 'brightness', 'temperature' have null descriptions, violating pattern:tool-description. LLMs cannot infer that 'on' is 0/1, 'brightness' is 0 - 100, or 'temperature' is 143 - 344.
No output schema documented for either tool. elgato_key_light_control_tool returns 'Light state set with response code: X' (unstructured text); elgato_key_light_status_tool returns JSON but structure is not declared. LLMs cannot plan downstream calls or extract fields reliably.
Parameter 'on' uses integer type but semantics are unclear. Should be boolean (true/false) or enum (0=off, 1=on). Current type invites invalid values like 2 or -1.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Numeric parameters lack min/max constraints in schema. Brightness and temperature ranges are mentioned in description (0 - 100, 143 - 344) but not enforced in JSON Schema. LLMs may pass out-of-range values.
Error handling returns raw exception messages (e.g., 'Connection refused') without recovery guidance. No indication whether error is retryable, user-fixable, or fatal.