Homey-Wan-Kenobi-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOMEY_TOKEN | No | Your Homey local API key. Required when using local API key authentication. | |
| HOMEY_ADDRESS | No | The address of the Homey device (e.g., http://192.168.1.x). Required when using local API key authentication. | |
| MCP_TRANSPORT | No | Transport mode: 'stdio' (default) or 'streamable-http'. | stdio |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_devicesA | List all Homey devices with current capability values. Returns device ID, name, class, zone, availability, capabilities, and live sensor/state values. Use 'zone' to filter by room name (partial match) or 'class' to filter by device type (light, sensor, thermostat, speaker, lock, socket, etc). |
| get_deviceA | Get detailed information about a specific device by ID, including all capability values, settings, and availability status. Use list_devices or search_devices first to find the device ID. |
| search_devicesA | Search devices by name, device class, or capability name. Returns matching devices with their current values. Useful for finding devices when you don't know the exact ID — e.g. search 'temperature' to find all temperature sensors, or 'kitchen' to find devices with kitchen in the name. |
| set_device_capabilityA | Control a device by setting a capability value. Common capabilities: 'onoff' (boolean — turn on/off), 'dim' (number 0-1 — brightness), 'target_temperature' (number — thermostat setpoint), 'volume_set' (number 0-1). Use get_device first to see available capabilities and their current values. |
| list_zonesA | List all zones (rooms/areas) in the home with their hierarchy. Returns zone ID, name, parent zone, and icon. Zones are organized in a tree: Home → Floors → Rooms. |
| list_flowsA | List all automation flows (simple and advanced). Returns flow ID, name, enabled/broken status, and type. Flows are Homey's automations with WHEN/AND/THEN logic. |
| trigger_flowA | Trigger (run) a flow immediately by its ID. Tries simple flow first, then advanced flow. Use list_flows to find the flow ID. |
| set_flow_enabledA | Enable or disable a flow automation. Disabled flows won't trigger. Use list_flows to find the flow ID. |
| list_variablesA | List all logic variables with their current values. Logic variables store state (boolean, number, string) that can be used in flow conditions and actions. |
| set_variableA | Set the value of a logic variable. The value type must match the variable type (boolean, number, or string). |
| list_appsA | List all installed Homey apps with version, enabled status, and origin (appstore or devkit). Apps provide device drivers, flow cards, and integrations. |
| restart_appA | Restart a Homey app. Useful when devices from that app are unresponsive. Use list_apps to find the app ID (e.g. 'com.fibaro'). |
| enable_appA | Enable or disable a Homey app. Disabled apps won't run and their devices become unavailable. |
| uninstall_appA | Permanently uninstall a Homey app and remove all its devices. This cannot be undone. |
| list_insightsA | List all available insight logs (sensor history, energy meters, etc). Returns log ID, title, data type, and units. Use the log ID with get_insight_entries to retrieve historical data. |
| get_insight_entriesB | Get historical data points for an insight log. Returns timestamped values (e.g. temperature readings over time). Use list_insights first to find the log ID. |
| get_energy_liveA | Get real-time power consumption broken down by zone and device. Returns watts (W) currently being consumed. Useful for answering 'what is using power right now?' |
| get_energy_reportA | Get energy consumption report for a specific period. Returns kWh consumed per device. Useful for 'how much energy did I use today/this week/this month?' |
| get_weatherA | Get current weather conditions at Homey's location. Returns temperature, humidity, pressure, wind, and weather state (e.g. 'clear sky', 'overcast clouds'). |
| get_weather_hourlyA | Get hourly weather forecast at Homey's location. Returns temperature and weather conditions for upcoming hours. |
| get_presenceA | Get home/away and awake/asleep status for all household members. Useful for 'is anyone home?' or 'who is home?' |
| set_presenceA | Set your own presence (home/away) or sleep state (awake/asleep). This affects presence-based automations. |
| list_notificationsA | List the 50 most recent Homey notifications (app updates, alerts, system messages). Sorted newest first. |
| create_notificationA | Send a notification to the Homey timeline. Visible in the Homey app for all household members. |
| list_alarmsA | List all alarms and timers with their schedule and repetition days. |
| set_alarmA | Create a new alarm or update an existing one. Specify time in HH:MM format and optionally which days to repeat. |
| delete_alarmA | Permanently delete an alarm. Use list_alarms to find the alarm ID. |
| list_moodsA | List all moods (scenes/presets) per zone. Moods save device states that can be activated together (e.g. 'Movie Mode' dims lights and closes blinds). |
| set_moodB | Activate a mood (scene) in a zone. This sets all devices in the mood to their saved states. |
| get_system_infoA | Get Homey system information including software version, hostname, Wi-Fi network, and hardware details. |
| get_locationA | Get Homey's configured geographic location (address and GPS coordinates). Used for sunrise/sunset calculations and weather. |
| list_driversA | List all available device drivers (protocol integrations). Useful for troubleshooting — shows which drivers are ready. |
| get_zwave_logA | Get recent Z-Wave network log entries. Shows transmit failures, routing issues, and network events. Essential for diagnosing Z-Wave device connectivity problems. |
| get_backup_statusA | Get backup configuration and last successful backup timestamp. |
| create_backupB | Schedule a new backup of the Homey configuration. Backup runs in the background. |
| get_ledringA | Get LED ring screensaver options and current setting. |
| set_ledringA | Set the LED ring screensaver animation. Use get_ledring to see available options (e.g. 'spectrum', 'off'). |
| get_updatesA | Check for available Homey system updates and current update settings (channel, auto-update). |
| get_sessionA | Get current API session details including authenticated user, role, and permission scopes. |
| reboot_homeyA | Reboot the Homey Pro. Takes 2-3 minutes to come back online. Use this to resolve stale devices or Z-Wave/Zigbee mesh issues after firmware updates. |
| get_memory_infoA | Get Homey memory usage breakdown by app and system component. Useful for identifying memory-hungry apps. |
| get_storage_infoA | Get Homey storage usage breakdown. Shows how much disk space is used by apps, insights, and system. |
| set_system_nameA | Set the Homey system name (visible in network discovery and the Homey app). |
| get_advanced_flowA | Get the full definition of an Advanced Flow by ID, including all cards (triggers/logic/actions) with their args, coordinates and outputSuccess/outputError connections. Use before update_advanced_flow to see the current structure. |
| create_advanced_flowA | Create a new Advanced Flow. Provide a name and a 'cards' object keyed by UUID; each card has type (trigger/condition/action/note/start/delay/all/any), id (flow card id), optional args, x/y coordinates, and outputSuccess/outputError arrays linking to other card UUIDs. Returns the new flow id and broken status (broken=false means all cards resolved). |
| update_advanced_flowA | Update an existing Advanced Flow. Pass only the fields to change (name, enabled, and/or the full cards map). Replacing cards replaces the entire flow graph, so fetch with get_advanced_flow first and send the complete cards object. Returns broken status. |
| delete_advanced_flowA | Permanently delete an Advanced Flow by ID. Cannot be undone. |
| get_flowA | Get the full definition of a standard (WHEN/AND/THEN) Flow by ID, including its trigger, conditions and actions cards. |
| create_flowA | Create a standard WHEN/AND/THEN Flow. Provide a name and a 'flow' object containing trigger (card object) and optional conditions[]/actions[] arrays. Use get_flow on a similar flow to learn the exact card shape. |
| update_flowA | Update a standard Flow. Pass the flow id and a 'flow' object with only the fields to change (name, trigger, conditions, actions, enabled). |
| delete_flowB | Permanently delete a standard Flow by ID. Cannot be undone. |
| list_flow_cardsA | List available flow cards of a given type (trigger/condition/action). There are hundreds, so filter by a substring matched against the card id/title/uri (e.g. a device UUID to find that device's cards, or 'windowcoverings', 'dim', 'button'). Returns id + title. Use get_flow_card for full args. |
| get_flow_cardA | Get the full definition of one flow card (by type + id), including its arguments (names, types, dropdown values, ranges). Use this to learn exactly what args a card needs when building a flow. |
| rename_deviceA | Rename a device. Use list_devices to find the device ID. |
| move_device_to_zoneA | Move a device to a different zone (room). Use list_zones for the zone ID and list_devices for the device ID. |
| create_zoneA | Create a new zone (room/area). Optionally nest it under a parent zone. |
| diagnose_zigbee_networkA | Read the Zigbee mesh state and report health: controller status, node count, per-node last-seen age, and detected issues with recommended remediations. Note: battery Zigbee devices sleep, so a stale last-seen on a battery node can be normal. |
| diagnose_zwave_networkA | Read the Z-Wave controller state plus recent network log and report health: controller readiness/version, transmit failures grouped by node, currently-unavailable devices, and detected issues with recommended remediations. |
| homey_api_callA | Advanced escape hatch: call any Homey Web API endpoint directly. method is GET/POST/PUT/DELETE; path is the API path (e.g. /manager/zwave/state); body is an optional JSON object. Use to reach endpoints not yet wrapped by a dedicated tool, including new firmware capabilities. Prefer the dedicated tools when one exists. |
| analyze_app_usageA | Cross-references installed apps against RAM usage (from the memory report), how many devices each provides, and whether each app is referenced by any flow (full flow definitions are scanned, not just metadata). Flags removal candidates (apps with 0 devices and no flow references, largest RAM first), reports potential RAM savings, and groups possible duplicate/overlapping app categories (e.g. multiple MQTT apps). Read-only and advisory; it does NOT uninstall anything. Caveat: a few apps run background logic (schedules, exports, tokens) without devices or flow cards, so verify before removing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| homey_best_practices | Zone architecture, device naming, Z-Wave/Zigbee mesh tips, energy management, security, and performance guidelines. |
| homey_troubleshooting | Diagnosing offline devices, Z-Wave/Zigbee issues, flow debugging, and performance problems. |
| homey_flow_patterns | Automation patterns for presence, lighting, climate, notifications, and common anti-patterns to avoid. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/Ringosystems/Homey-Wan-Kenobi-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server