openhab
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENHAB_URL | Yes | The URL of your OpenHAB instance (e.g., http://openhab:8080) | |
| OPENHAB_API_TOKEN | Yes | Your generated long-lived API token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"subscribe": true,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| initial_discoveryA | One-shot bootstrap: returns a compact guidance context with a room-grouped quick-reference of every item (name, type, live state). Call ONCE on first contact. Do NOT also call generate_home_blueprint or get_system_summary — this covers all discovery needs. |
| get_system_summaryA | High-density snapshot of the OpenHAB system: items, things, rooms, health. |
| generate_home_blueprintA | Full room-by-room Markdown guide of the home. Use for layout exploration or when a user explicitly asks for a home overview — NOT as a first step (use initial_discovery instead). |
| resolve_itemA | PRIMARY item finder. Converts natural-language intent ("kitchen light", "front door sensor") into ranked matches with exact names, types, rooms, and live states. Call this BEFORE any other search. |
| send_commandC | Send a command (ON, OFF, numeric value, etc.) to a single item. |
| execute_batchA | Execute multiple commands in parallel. Use for "Goodnight", scene-like, or multi-device actions. |
| schedule_commandA | Schedule a command to run after a delay (e.g. "turn off in 20 minutes"). |
| query_itemsC | Read item data. action: all (list with optional filters), get (by name), multi (batch by names), search (fuzzy text), master_search (across items+things+rules), room_inventory, semantic_path, neighbors, schema. |
| query_thingsC | Read thing data. action: all (list all), get (by UID), status (status info). |
| query_rulesB | Read automation rules. action: all (list all), get (by UID). |
| manage_itemB | Modify items. action: create_or_update, delete, update_state, add_tag, remove_tag, set_metadata, remove_metadata. WARNING: Do NOT use create_or_update for semantic model fixes (parentage, hierarchy). Use remediate action=semantic_fix instead. create_or_update safely merges existing groupNames and tags on update, but semantic relationships (hasLocation, isPointOf, isPartOf) must go through semantic_fix. WARNING: Do NOT use create_or_update for semantic model fixes (parentage, hierarchy). Use remediate action=semantic_fix instead. create_or_update safely merges existing groupNames and tags on update, but semantic relationships (hasLocation, isPointOf, isPartOf) must go through semantic_fix. |
| manage_thingC | Manage things. action: create, update, delete, enable, disable, configure. |
| manage_ruleC | Manage automation rules. action: create, update, delete, enable, disable, run. |
| manage_linkB | Manage item-channel links. action: list, link, unlink, configure (apply a link profile). |
| manage_sceneC | Named scene management. action: capture (save current item states), activate (restore a saved scene). |
| manage_logsB | OpenHAB log access. Logs are on the remote OpenHAB server — ask the user for the path and call set_folder first. action: set_folder, recent, historical, search. |
| manage_persistenceC | Persistence data operations. action: services (list), get_data, store_data, statistics, summarize. |
| manage_uiD | UI, add-ons, sitemaps, semantic tags, and discovery inbox. action: addons, install_addon, uninstall_addon, sitemaps, sitemap_to_main_ui, ui_components, ui_tiles, generate_widget, semantic_tags, create_tag, update_tag, delete_tag, inbox_list, inbox_approve, inbox_ignore, inbox_unignore. |
| manage_systemD | System config, loggers, voice/audio, and binding scans. action: system_info, services, service_config_get, service_config_update, logger_list, logger_set, transformations, templates, trigger_scan, voice_say, voice_interpret, voices, audio_sinks, audio_sources, habot. |
| analyze_homeA | Home-wide analysis. action: health (offline + battery), safety_audit, energy, stale_items, orphans (broken links), semantic_audit (returns structured SemanticIssue objects with issue type + safeFix suggestions — same logic as the OpenHAB MainUI model page), rule_conflicts, find_equipment (by room + type), voice_exposure (Google/Alexa mappings). |
| diagnose_itemA | Item diagnostics. action: explain (forensic state + rules + history), topology (Mermaid home graph). |
| automationB | Automation generation and testing. action: generate_rule (from NL), discover_patterns (temporal correlation), shadow_run (dry-run preview), simulate (predict outcome + rule chains), validate_rule (JS syntax check). |
| remediateB | Bulk remediation and generation. action: bulk_update (batch tags/groups), create_equipment (auto-provision from thing), suggest_tags, standardize_naming, optimize_persistence, export_snapshot, boilerplate (TS types). semantic_fix: safely fix ONE item's semantic parent without touching other fields or groupNames — uses targeted REST endpoints (metadata only + additive group). semantic_fix_all: run full audit and auto-apply all safely fixable issues (dryRun=true for preview). |
| control_mediaC | Control a media player equipment item. action: play, pause, next, previous, volume_up, volume_down. |
| mcp_statusB | MCP server metadata. action: health (SSE/cache metrics), capabilities, prompt_context (AI priming context for this home). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| OpenHAB Items | A list of all items and their current states |
| OpenHAB Things | A list of all configured things and their status |
| OpenHAB Discovery Inbox | A list of discovered but unconfigured things in the inbox |
| OpenHAB System Summary | A token-efficient overview of the system state for LLM context optimization |
| OpenHAB Item Schema | Ultra-minimal list of item names and types for zero-token discovery |
| OpenHAB AI Prompt Context | Pre-baked system prompt fragment to prime any AI agent for this specific home |
TDQS
Scored across 25 tools
Several tools overlap in practice: query_items vs resolve_item, initial_discovery vs get_system_summary vs generate_home_blueprint, and analyze_home vs diagnose_item vs remediate semantic fixes. The descriptions try hard to disambiguate with explicit 'PRIMARY' and 'do NOT use' warnings, which helps but also signals genuine boundary confusion.
Most names follow a predictable snake_case verb_noun or manage_/query_ pattern (manage_item, query_things, send_command, execute_batch). Minor deviations like remediate, automation, initial_discovery, and mcp_status are readable but break the pattern slightly.
At 25 tools, the surface is at the heavy end, and many tools are large action multiplexers with 5-15 actions each. The domain is broad, but overlapping discovery, query, and analysis tools make the count feel excessive rather than tightly scoped.
Coverage is broad and lifecycle-complete across items, things, rules, links, scenes, persistence, logs, UI, system config, media control, and automation generation. No obvious core OpenHAB operation appears missing.