MCP (Model Context Protocol) server exposing Philips Hue lamp control as tools and resources. Provides lamp state management, automation control, and integration with Hue entertainment mode.
Three tools with clear verb-noun naming (get_lamp_state, set_lamp_state, set_all_lamps) and detailed descriptions (150-200 chars). All tools have input schemas with typed parameters and descriptions. However, output schemas are not documented, LLMs cannot predict return structure. Parameter descriptions include ranges and constraints (e.g., 'Brightness level from 0 to 254'), which is good. Missing: error handling guidance, idempotency hints for write operations, and confirmation patterns for destructive actions. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels.
Get detailed state of a specific lamp including its automation status, whether it has a manual override, and if it's controlled by Hue Sync entertainment mode.
Set the state of all lamps at once. Useful for 'I left home' / 'I am back' scenarios or setting all lamps to one color. This creates manual overrides for all lamps.
Set the state of a specific lamp. This creates a manual override that lasts for 1 hour. You can control on/off, brightness (0-254), and color via hue (0-65535), saturation (0-254), or color temperature in Mirek (153-500).
Output schemas not documented. LLMs cannot predict what fields get_lamp_state, set_lamp_state, or set_all_lamps return, forcing them to guess or make follow-up calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). set_lamp_state and set_all_lamps are write operations with 1-hour manual overrides, but LLMs have no metadata to understand risk or idempotency.
No error handling guidance. If a lamp_id is invalid or the Hue API is unreachable, LLMs receive no recovery hints (e.g., 'Try get_lamp_state to list valid IDs').
set_lamp_state and set_all_lamps lack confirmation/dry-run patterns. Agents can accidentally turn off all lights or set invalid colors without a safety gate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 77 | 2026-07-28+ | v2 |
Parameter 'lamp_id' in set_lamp_state is required but get_lamp_state does not document what valid IDs look like or how to discover them. Agents may pass invalid IDs.