analyze_log_errors
[READ] Analyzes logs and returns intelligent summary of errors and warnings.
Full observability over a Home Assistant install — automations, blueprints, devices, logs, dashboards, dependency graph — with no write path of any kind.
LABSCO SUMMARY
The read-only boundary is the design, not a limitation: an assistant with this attached can read your YAML, correlate it with the logs, and trace which entity broke which dashboard, while being structurally unable to change anything it finds. The catalogue is 145 read-only tools by default and 158 with developer tools enabled via MCP_DEV_TOOLS_ENABLED, so on a client with a tight tool budget you will want to attach it selectively. Tool responses carry a success field — check it before reading data.
A read-only MCP server for Home Assistant, built for the debugging half of running a smart home rather than the controlling half. It reads entity states, automation and script YAML, blueprints, registries, logs and Lovelace dashboards, and it cannot change state, call a service or trigger an automation. A separate context generator writes the same picture out as a bounded Markdown snapshot for retrieval systems and AI project knowledge.
get_entity_state, get_states_grouped, search_entities, get_system_overviewlist_automations, get_automation_code, diagnose_automation, search_automations_by_entity, get_automation_conflictslist_scripts, get_script_code, list_scenes, get_blueprint_code, get_blueprint_instances, resolve_blueprint_automationget_device_details, get_devices_by_area, diagnose_config_entry, get_integration_healthget_log_insights, analyze_log_errors, get_startup_errors, get_log_timeline, search_logsget_entity_dependencies, get_entity_consumers, entity_get_context_tree, get_context_chaingraph_build_index, graph_find_references, graph_entity_impact, graph_detect_ghost_references, graph_detect_orphans, graph_export_mermaidread_config_file, search_in_config, validate_yaml_syntax, get_lovelace_config, diagnose_lovelace_setupbulk_search_entities, compare_entities_state, validate_yaml_batch, investigate_entity, get_area_diagnostic, audit_config_orphansoffline, online or hybrid mode, each source recorded with its status, record count and redaction count in a provenance matrixA Home Assistant instance and a long-lived access token: HA_URL and HA_TOKEN. The filesystem tools additionally need the Home Assistant config directory reachable, pointed at by HA_CONFIG_PATH. The package is ha-mcp-readonly (version 2.0.0) on Python 3.11 or newer, or the container at ghcr.io/paulomac1000/ha-mcp-readonly. Stdio is the default transport and opens no network port; for Streamable HTTP set MCP_TRANSPORT=http and a caller token in MCP_AUTH_TOKEN, and keep the bind address controlled — ports 9091, 9092 and 9093 are meant for localhost or a reverse proxy, not the open internet.
One command plus a key — docker run -d --name ha-mcp-readonly -p 127.0.0.1:9091:9091 -p 127.0.0.1:9092:9092 -e HA_URL=http://your-ha-ip:8123 -e HA_TOKEN=your_token -e MCP_TRANSPORT=http -e MCP_BIND_HOST=0.0.0.0 -e MCP_AUTH_TOKEN=replace-with-a-high-entropy-caller-token -v /path/to/ha/config:/config:ro ghcr.io/paulomac1000/ha-mcp-readonly:latest
USE CASES
Read the automation's YAML and its file location, run the diagnosis, then check whether another automation is fighting it for the same entity.
Build the graph index, ask what references the entity and what its impact score is, and get the orphaned references it would leave behind.
Pull log insights and error analysis instead of raw lines, check what failed at startup, and place the failures on a timeline against the state changes around them.
Take a system overview, list the unavailable entities grouped by cause, and audit the configuration for orphans left behind by removed devices.
Generate the Markdown context file in hybrid mode and hand it to a retrieval system or a project knowledge base, with the provenance matrix showing which sources were reached and which were not.
Run it over stdio so no network port opens, and let the model read everything about the house while remaining unable to switch anything on.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
analyze_log_errors[READ] Analyzes logs and returns intelligent summary of errors and warnings.
audit_config_orphans[READ] Find orphan entities, never-triggered automations, broken entity references, and unused blueprints.
Scans entity registry, automations, scripts, scenes, dashboards, and blueprints to identify configuration drift and unused resources.
Args: None
Returns: JSON with:
automation_validate_triggers[READ] Validate that all trigger ids in an automation have corresponding handlers.
Checks automation configuration for:
bulk_search_entities[READ] Search multiple terms at once. Saves ~85% tokens vs individual searches.
compare_entities_state[READ] Compare entity states before/after changes. Saves ~70% tokens vs manual checking.
compare_entity_health_snapshot[READ] Compare a previously taken health snapshot with the current state. Shows new and resolved unavailable entities.
describe_ha_capabilities[READ] Return the supported catalog and active deployment profile.
This is a zero-I/O introspection tool. It lets an AI agent inspect every governed capability's risk, side effects, activation state and inactive reason without invoking the operation itself.
Args: None.
Returns: JSON string with a `success` flag and a payload containing the supported and active catalog counts plus per-tool manifests.
device_get_wifi_status[READ] Get WiFi status for Tasmota/OpenBK devices.
Queries the device directly via HTTP if available, or returns cached status from Home Assistant sensors.
diagnose_automation[READ] Comprehensive automation diagnostics with entity resolution, template validation, and usage analysis. ~75% token savings.
~75% token savings when analyzing automations. Instead of: get_automation_code() + check_entity_exists() × N + test_template() × M
diagnose_automation_aliases[READ] Detect duplicate automation aliases from YAML and UI sources.
Groups all automations by alias and flags groups of 2+ entries with the same display name, categorizing the impact as all_disabled, all_enabled, or mixed.
Returns: JSON with:
diagnose_category_alias_mismatch[READ] Detect mismatches between automation alias prefixes and assigned categories.
For each automation, extracts the prefix from the alias and verifies that the assigned category matches the canonical prefix-to-category mapping.
Returns: JSON with mismatches list containing entity_id, alias, alias_prefix, assigned_category_name, expected_category_name, and severity.
diagnose_config_entry[READ] Provide diagnostics for a config entry using registry, API, and logs.
diagnose_connectivity[READ] Diagnose network and API connectivity issues across integrations. Checks system health and log retry patterns.
Args: (none)
Returns: JSON with overall_status, connectivity_issues list, retry_patterns, and recommendations.
diagnose_entity_threshold_proximity[READ] Detect sensors approaching their input_number threshold limits.
Matches sensor.* entities to input_number.* threshold helpers by naming convention and flags pairs where the sensor value is within proximity_percent of the threshold.
diagnose_installation_type[READ] Detect Home Assistant installation type (OS, Supervised, Container, or Core) and list feature constraints.
Args: (none)
Returns: JSON with type, version, constraints list, and available_features list.
diagnose_lovelace_setup[READ] Full Lovelace diagnostics: missing entity references, strategy/YAML mode, resource analysis, recommendations. ~85% token savings.
Checks: missing entity references, strategy/YAML mode dashboards, resource analysis, and generates recommendations. ~85% token savings vs manual multi-call workflow.
Returns: JSON with dashboard stats, resource analysis, health_checks (missing entity references, strategy/YAML mode), issues, and recommendations.
diagnose_orphan_references[READ] Finds entity_id references in automations/scripts that do not exist in Home Assistant.
Extracts every entity_id referenced in automations.yaml (and optionally scripts.yaml), then cross-references with the live entity list from /api/states to identify orphaned references.
diagnose_performance[READ] Analyze system performance: slow automations, entities with large attribute payloads, and trigger frequency.
Args: (none)
Returns: JSON with slowest_automations, largest_entities, and summary.
diagnose_person_tracking[READ] Full person tracking diagnostics: entity state, tracker freshness, zone proximity, and related automations. ~85% token savings.
Aggregates ~6 individual calls into one:
diagnose_post_update_integrations[READ] Check custom integrations after a Home Assistant update. Highlights known-fragile integrations and load failures.
Args: (none)
Returns: JSON with custom_components_total, loaded/failed counts, fragile_highlighted, per_integration details, and recommendations.
diagnose_stale_entities[READ] Detects entities whose last_updated timestamp exceeds the threshold.
Scans camera, sensor, and binary_sensor entities for stale data. Flags entities with severity based on age: critical (>60min), warning (>15min), info (>5min). Groups results by integration domain.
diagnose_startup_progress[READ] Estimate Home Assistant startup progress by counting entities, loaded integrations, and active automations.
Args: (none)
Returns: JSON with entity_count, integrations_loaded/total, automations_on/total, progress_pct, and status.
diagnose_stuck_helpers[READ] Detects input_boolean, timer, and counter entities stuck in one state.
Scans helper entities and flags those whose `last_changed timestamp is older than stale_hours`. Useful for catching restart-interrupted delay patterns and broken automations.
diagnose_system_health[READ] Complete system diagnostics: health score, error patterns, unavailable entities, performance issues, and recommendations in a single call.
Provides everything needed for AI-driven diagnosis:
diagnose_uncategorized_automations[READ] Scans entity registry for automations without a category assigned.
Filters entities with empty categories dict and optionally suggests a category based on the alias prefix.
diagnose_voice[READ] Diagnose voice assistant configuration: exposed entities, available STT/TTS/conversation agents, and pipelines.
Args: (none)
Returns: JSON with exposed_entities_count, assistants_available, pipelines, issues, and recommendations.
entity_get_context_tree[READ] Trace the sources of changes for an entity.
Analyzes automation traces, logbook entries, and history to determine what triggered recent state changes.
get_all_states[READ] Get all entities and their states.
Warning: may return 1000+ entities. Use get_states_filtered for filtering.
get_area_automation_summary[READ] Analyze what is happening in a room: devices, automations related to those devices, and recent activity.
get_area_devices_summary[READ] Summary of devices in an area.
~80% token savings vs get_area_overview() + get_device_registry().
get_area_diagnostic[READ] Full area/room diagnostics in a single query: devices, entities, automations, and sensor readings.
get_area_overview[READ] BATCH ENDPOINT - Comprehensive area overview.
~70% token savings when analyzing an area. Instead of: get_area_registry() + filter entities + get states × N
get_area_registry[READ] Fetches registry of all areas/rooms from .storage. Contains: name, aliases, picture, icon.
get_automation_code[READ] Fetches full automation code (without 'id' - ready to paste in UI).
get_automation_codes_batch[READ] Get YAML code for multiple automations at once. Saves ~70% tokens vs N individual calls.
get_automation_conflicts[READ] Detect potential conflicts where multiple automations modify the same entity, which may cause flickering or unexpected states. Detects if a given entity is modified by multiple automations at once (which may cause light flickering or unexpected states).
get_automation_dependencies[READ] Analyze automation dependencies: lists used entities, scripts, scenes, and blueprints.
get_automation_entity_id[READ] Resolve automation alias to entity_id. Searches HA entity registry for automation.* entities matching by friendly_name (alias).
get_automation_file_location[READ] Returns the file path and line numbers (line_start, line_end) of an automation in automations.yaml.
Use this to locate an automation's exact position before reading surrounding context with read_config_file(offset=line_start, limit=...). Eliminates manual grep + read steps.
get_automation_usage_stats[READ] Get automation usage statistics: run count, last triggered time, recent activity from history.
Target: Automation usage statistics.
get_blueprint_code[READ] Fetches full source YAML code of a blueprint.
get_blueprint_instances[READ] Find all automations and scripts that use a specific blueprint.
get_blueprint_usage_summary[READ] Summary of blueprint usage.
Returns: JSON with summary (most used blueprints, unused, etc.)
get_cache_stats[READ] Return registry cache hit/miss/blocked statistics.
Returns cache performance data including hit rate percentage, total hits, misses, blocked requests, and number of cached keys.
Returns: JSON with hits, misses, blocked, total, hit_rate_percent, and cached_keys fields.
get_component_logs[READ] Fetches all logs related to a specific component/integration.
get_config_entries[READ] Fetches all configuration entries of integrations. Shows installed integrations, their domains, titles, versions, options.
get_config_entry_details[READ] Get details for a single config entry with full context.
get_config_structure[READ] Returns structure of directories and files in the Home Assistant configuration directory.
Returns: JSON with directory tree structure of the HA config directory.
get_context_chain[READ] Trace the context parent_id chain for entity state changes.
Follows context.parent_id links from logbook entries to reconstruct the chain of events that led to a state change (e.g. automation → script → light).
get_counters[READ] Fetches list of counters with their configuration.
Returns: JSON with total_counters count and counters list.
get_device_details[READ] Fetches device details with full context.
~90% token savings vs get_device_registry() + filtering.
get_device_entities[READ] Fetches list of entities belonging to a device.
get_device_registry[READ] Fetches registry of all devices from .storage. Contains: name, manufacturer, model, sw_version, connections, identifiers.
get_device_triggers[READ] Retrieve available device triggers for a device.
get_devices_by_area[READ] Fetches all devices in a given area.
get_domains_summary[READ] Return summary of how many entities are in each domain. Useful for quick system overview without fetching all states.
Returns: JSON with total entity and domain counts, and per-domain totals broken down by unavailable and unknown states.
get_energy_dashboard_data[READ] Get energy dashboard summary: current power, tariff info, daily consumption, and cost analysis.
Returns: JSON with tariff status, consumption figures, detected sensor counts, and recommendations.
get_entity_changes[READ] Detect entities that changed state recently. Useful for "what changed in the last hour?" queries.
Useful for:
get_entity_consumers[READ] List of automations and scripts using a given entity (simplified version).
get_entity_context[READ] Get comprehensive entity context: state, registry info, related entities, automations, and device details. ~75% token savings.
~75% token savings when analyzing an entity. Instead of: get_entity_details() + get_entity_state() + search related entities
get_entity_dependencies[READ] Finds all places where entity is used (reverse lookup).
~85% token savings vs manually searching files.
get_entity_details[READ] Fetches detailed information about a specific entity from the registry. Contains related device and area.
Warning: Use get_entity_context() for full context with live state.
get_entity_registry[READ] Fetches registry of all entities from .storage. Contains: entity_id, platform, device_id, aliases, disabled_by, hidden_by.
Warning: returns all entities - use search_registries_batch() for filtering.
get_entity_registry_batch[READ] Fetch entity registry entries with optional filtering by entity IDs and fields.
get_entity_state[READ] Get detailed state of a single entity.
get_entity_state_batch[READ] Batch: get states for a list of entities in one request.
get_entity_state_history_summary[READ] Summarize entity state history instead of returning raw rows.
get_entity_with_automations[READ] Composite: full entity context + automations + conflicts in one call.
Replaces multiple calls: get_entity_context + search_automations_by_entity + get_automation_conflicts.
get_exposed_entities[READ] Fetches list of entities exposed to voice assistants (Google Assistant, Alexa).
Returns: JSON with total_exposed count and entities exposed to voice assistants.
get_hacs_data[READ] Fetches HACS data (Home Assistant Community Store). Shows installed custom integrations and themes.
Returns: JSON with the full HACS storage data (repositories, categories), or an info message when HACS is not installed.
get_history_batch[READ] Fetch history of state changes for a list of entities. ~85% token savings when analyzing history.
~85% token savings when analyzing history.
get_history_stats[READ] Get entity history statistics: min, max, average values from the recorder. ~90% token savings vs raw history.
Returns processed data (Min, Max, Average) instead of raw list. ~90% token savings when analyzing history.
get_input_helpers[READ] Fetches all input helpers (input_boolean, input_number, input_select, input_text, input_datetime, input_button).
Returns: JSON with helper type keys (input_boolean, input_number, input_select, input_text, input_datetime, input_button), each with count and items.
get_integration_entities[READ] Get all entities for a given integration domain.
get_integration_health[READ] Get detailed health status of a specific integration domain (e.g. "mqtt", "tuya", "zha").
get_integration_summary[READ] Summarize an integration (devices, entities, health).
get_log_insights[READ] Intelligent log analysis: grouped error patterns, affected entities, problem categories, timeline, and fix recommendations. ~85% token savings.
Returns:
get_log_timeline[READ] Creates timeline of errors and warnings from last N hours.
get_lovelace_config[READ] Fetches configuration of a specific Lovelace dashboard.
get_lovelace_config_summary[READ] Token-efficient Lovelace dashboard structure overview: card type breakdown, view counts, strategy detection. ~95% token savings.
Returns card counts, type breakdown, view info. ~95% token savings vs returning full dashboard JSON.
get_lovelace_dashboards[READ] Fetches list of all Lovelace dashboards.
Returns: JSON with total_dashboards count and dashboards list.
get_lovelace_entity_usage[READ] Locate an entity across all Lovelace dashboards.
get_lovelace_resources[READ] Fetches list of registered Lovelace resources (custom cards, JS modules, CSS).
Returns: JSON with resource list, type breakdown, and source classification.
get_main_configuration[READ] Fetches main configuration from file configuration.yaml. Returns structured YAML, with sensitive data (passwords, tokens) redacted.
Returns: JSON with sanitized configuration data as a YAML string.
get_nfc_tags[READ] List NFC tags with automation usage info.
Reads from .storage/core.tag registry, falls back to /api/states for tag.* entities. Cross-references each tag against automations.yaml to determine usage.
Args: None
Returns: JSON with tags list (tag_id, name, last_scanned, used_in_automations), total count, and unused_count.
get_notification_history[READ] Check active persistent notifications in Home Assistant.
Returns: JSON with active persistent notifications, recent notifications from the last 24 hours, and counts for both.
get_persons[READ] Fetches list of people (person entities) with their configuration.
Returns: JSON with total_persons count and persons list.
get_previous_logs[READ] Fetches last N lines from previous log.
get_recent_logs[READ] Fetches last N lines from current log.
get_recent_state_changes[READ] Retrieve all state changes from the last `minutes` minutes.
get_scene_code[READ] Fetches full code of a specific scene.
get_script_code[READ] Fetches full code of a specific script.
get_services[READ] Get list of available services and domains.
get_startup_errors[READ] Analyzes startup logs and returns errors/warnings from last startup.
Returns: JSON with startup errors and warnings, and total counts for each.
get_states_filtered[READ] Server-side filtering of entities.
get_states_grouped[READ] Group entity states instead of listing all.
get_system_overview[READ] Batch endpoint: complete system overview in one call.
get_template_dependencies[READ] Get all entities referenced in a template. Saves ~90% tokens vs manual analysis.
get_template_entities[READ] Fetches template sensors and binary_sensors created via UI. Template helpers are stored in .storage/core.config_entries.
get_template_entities_batch[READ] Batch fetch template entity code for multiple entities.
get_template_entity_code[READ] Returns full Jinja2 template code for a single template helper entity. ~95% token savings vs get_template_entities().
get_timers[READ] Fetches list of timers with their configuration.
Returns: JSON with total_timers count and timers list.
get_unavailable_entities_grouped[READ] Group unavailable entities by integration or domain for efficient health analysis. ~95% token savings vs listing all.
Instead of returning 200+ entities (48k tokens), groups them by integration (~2k tokens).
get_zones[READ] Fetches list of zones with their configuration.
Returns: JSON with total_zones count and zones list.
graph_build_index[READ] Build or refresh the HA Semantic Graph from configuration files and registries.
graph_detect_ghost_references[READ] Detect entity references that no longer exist in the entity registry.
Returns: JSON with list of ghost entity IDs (referenced in config but not in registry).
graph_detect_orphans[READ] Detect entities in the registry with no incoming edges.
graph_entity_impact[READ] Analyze the potential impact of modifying or removing an entity.
graph_export_mermaid[READ] Export a subgraph as Mermaid flowchart syntax for visualization.
graph_find_references[READ] Find all semantic references to an entity in the HA graph.
graph_get_neighbors[READ] Get the subgraph around a specific node in the HA semantic graph.
hacs_get_update_count[READ] Get HACS repository update counts, critical updates, and major version bumps.
Lightweight statistics from hacs.data — total installed, updates available, critical updates, and major version bumps (e.g. v1.x -> v2.x).
Args: None
Returns: JSON with total_installed, updates_available, critical_updates list, major_version_bumps list.
investigate_entity[READ] Super function: comprehensive diagnostics for entity/area in one call.
Replaces multiple queries (search_entities, get_entity_context, get_entity_state, automation searches, area overview, conflict analysis, entity state batch). Token-optimized response.
list_automation_categories[READ] Lists all Home Assistant categories with their IDs, names, and icons.
Reads the category registry to discover organisational categories for automations, scripts, scenes, and helpers. Optionally counts how many entities are assigned to each category.
list_automations[READ] Fetches list of names and ids of all automations.
Warning: returns all 111 automations - use search_automations() if looking for a specific one.
list_blueprints[READ] Fetches list of all available blueprints. Scans 'automation' and 'script' directories in the blueprints folder.
Returns: JSON with list of blueprints (name, path, description, author, input count).
Example: list_blueprints()
list_config_entry_domains[READ] List all domains (integrations) with counts of config entries.
Returns: JSON with total entry count, total domain count, and per-domain entry and disabled counts.
list_custom_components[READ] Fetches list of installed custom components (custom_components/).
Returns: JSON with total component count and per-component name, path, version, and domain metadata.
list_directory[READ] List directory contents with allowlist validation.
list_scenes[READ] Fetches list of all scenes from scenes.yaml.
Returns scene names and their basic information.
Args: None
Returns: JSON with list of scenes.
list_scripts[READ] Fetches list of all scripts from scripts.yaml.
Returns script names and their descriptions.
Args: None
Returns: JSON with list of scripts.
list_themes[READ] Fetches list of installed themes (themes/).
Returns: JSON with list of installed themes, their paths, and metadata.
read_config_file[READ] Read a configuration file with optional line offset and limit.
read_file[READ] Read a text file with allowlist validation and size limits.
resolve_blueprint_automation[READ] Resolves a blueprint automation to its concrete configuration.
If the automation uses a blueprint (`use_blueprint` key), loads the blueprint YAML, substitutes user-provided input values into the template, and returns the resolved automation as if it were a regular (non-blueprint) automation. Regular automations are returned unchanged.
Resolution is computed, not persisted — the stored YAML is never modified.
search_automations[READ] Search automations by alias, description, mode, or blueprint usage. ~95% token savings vs listing all.
~95% token savings when searching for a specific automation. Instead of: list_automations() (111 items) -> search (1-5 items)
search_automations_by_entity[READ] Find all automations that reference a given entity in triggers, conditions, or actions. Checks if entity is in triggers, conditions, or actions.
search_config_by_params[READ] Search YAML configuration files by structured parameters (entity_id, service, platform, device_class).
search_config_entries[READ] Search config entries with optional filters.
search_devices[READ] Searches devices with filtering.
search_entities[READ] Search entities by name or entity_id.
search_entity_by_name[READ] Searches entities by name or entity_id in the registry.
Warning: Use search_registries_batch() for more advanced searching.
search_files[READ] Search for files containing a text pattern (safe grep).
search_in_config[READ] Searches for a specific phrase in all configuration files.
search_in_config_batch[READ] Search for multiple text phrases across many config files simultaneously.
search_inside_automations[READ] Searches inside automation YAML for a pattern across triggers, conditions, or actions.
Searches within YAML dump of each automation for the given pattern. Supports regex with safe validation.
search_logs[READ] Searches for a specific phrase in logs with optional context.
search_lovelace_config[READ] Search inside Lovelace dashboard configurations by entity_id, card_type, or free-text.
Searches cards/badges across all dashboards by entity_id, card_type, or free-text search_term. ~90% token savings vs returning full configs.
search_registries_batch[READ] Search multiple registries (entity, device, area) simultaneously by name, entity_ids, area, device, or platform. ~85% token savings.
Instead of: get_entity_registry() + get_device_registry() + filter × N
take_entity_health_snapshot[READ] Take a snapshot of current entity health (unavailable entities grouped by integration) for later comparison.
Args: (none)
Returns: JSON with snapshot_id, total_entities, unavailable_count, and unavailable_by_integration.
trigger_health_report[READ] Generate system health report (read-only). Returns JSON with metrics, logs, entity and automation health.
Returns: JSON with health score, system metrics, log summary, entity health, automation health, and generation timestamp.
validate_automation_names[READ] Validate automation alias naming conventions against 7 quality rules.
Checks each automation alias for separator style, canonical prefix, Polish characters, emoji, title case, compound hyphens, and version casing.
validate_yaml_batch[READ] Validate multiple YAML files in one call. Saves ~80% tokens vs individual calls.
validate_yaml_syntax[READ] Pre-deployment check: validates YAML syntax and checks references to entities/services/templates.
verify_recent_implementation[READ] Quick verification of recent changes in the Home Assistant system. ~85% token savings for questions about new entities or recent automation runs.
BEFORE YOU INSTALL
145 tools when we connected.
CONTEXT COST
Rated by the size of the 145 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
git clone https://github.com/paulomac1000/ha-mcp-readonly.git
cd ha-mcp-readonly
cp .env.example .env
# edit .env with your HA_URL and HA_TOKEN
docker compose up -ddocker run -d --name ha-mcp-readonly -p 127.0.0.1:9091:9091 -p 127.0.0.1:9092:9092 -e HA_URL=http://<YOUR_HA_IP>:8123 -e HA_TOKEN=<YOUR_HA_TOKEN> -e MCP_TRANSPORT=http -e MCP_BIND_HOST=0.0.0.0 -e MCP_AUTH_TOKEN=<YOUR_MCP_AUTH_TOKEN> -v <YOUR_PATH_TO_HA_CONFIG>:/config:ro ghcr.io/paulomac1000/ha-mcp-readonly:latest{
"mcpServers": {
"ha-mcp-readonly": {
"url": "http://127.0.0.1:9092/mcp",
"headers": {
"Authorization": "Bearer <YOUR_HIGH_ENTROPY_CALLER_TOKEN>"
}
}
}
}docker compose up -d