{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"home-assistant-mcp-server","slug":"home-assistant-mcp-server","name":"Home Assistant MCP Server","type":"mcp","url":"https://github.com/tevonsb/homeassistant-mcp","page_url":"https://unfragile.ai/home-assistant-mcp-server","categories":["mcp-servers"],"tags":["home-assistant","smart-home","iot","community"],"pricing":{"model":"free","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"home-assistant-mcp-server__cap_0","uri":"capability://tool.use.integration.mcp.standardized.smart.home.device.control.via.natural.language","name":"mcp-standardized smart home device control via natural language","description":"Translates natural language requests from LLMs into Home Assistant service calls through the Model Context Protocol (MCP) interface. The server exposes a tool registry that LLMs can discover and invoke, with each tool mapping to Home Assistant entity services (lights, climate, switches, covers, locks, vacuums, media players, fans). Requests flow through Express/LiteMCP servers, pass through token-based security validation middleware, and route to Home Assistant REST API endpoints with long-lived access tokens.","intents":["Enable Claude or GPT to control smart home devices using natural language without custom integrations","Build LLM agents that can autonomously manage home automation through standardized MCP protocol","Expose Home Assistant capabilities to language models with discoverable tool schemas"],"best_for":["AI application developers building LLM-powered smart home assistants","Home Assistant power users integrating with Claude/GPT via MCP clients","Teams deploying multi-device home automation with LLM orchestration"],"limitations":["Requires Home Assistant instance with network accessibility and long-lived token generation","Tool discovery and invocation latency depends on Home Assistant API response times (typically 100-500ms per command)","No built-in command queuing or retry logic — failed commands fail immediately without automatic retry","Security relies on token-based authentication; token compromise exposes full Home Assistant control"],"requires":["Home Assistant 2023.1 or later with REST API enabled","Long-lived access token generated in Home Assistant UI","Network connectivity between MCP server and Home Assistant instance","Node.js 16+ for running the MCP server","MCP client (Claude Desktop, custom integration, or compatible LLM application)"],"input_types":["natural language strings (from LLM tool calls)","structured JSON tool parameters (entity_id, service, service_data)","MCP tool invocation requests with schema validation"],"output_types":["JSON service call responses from Home Assistant","structured state updates (entity state, attributes)","error messages with Home Assistant API error codes"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_1","uri":"capability://memory.knowledge.real.time.smart.home.state.streaming.via.server.sent.events","name":"real-time smart home state streaming via server-sent events","description":"Establishes persistent Server-Sent Events (SSE) connections that stream Home Assistant state changes to connected clients in real-time. The server maintains WebSocket connections to Home Assistant, listens for state_changed events, and broadcasts updates to all subscribed SSE clients with entity_id, old_state, new_state, and timestamp metadata. This enables LLM agents to maintain current awareness of home state without polling.","intents":["Keep LLM agents informed of real-time device state changes without polling Home Assistant","Build reactive automation workflows that respond immediately to sensor updates or device state transitions","Monitor home state for anomalies or trigger conditions in real-time"],"best_for":["LLM agents requiring low-latency state awareness for decision-making","Real-time monitoring dashboards or notification systems","Reactive automation workflows triggered by state changes"],"limitations":["SSE connections are unidirectional (server-to-client only) — requires separate channel for commands","No built-in message buffering — clients connecting after events miss historical state changes","Scales linearly with number of connected clients; high client counts may impact server memory","Network interruptions require client-side reconnection logic; no automatic recovery"],"requires":["Home Assistant WebSocket API access with valid long-lived token","HTTP/1.1 or HTTP/2 client supporting SSE (EventSource API in browsers, SSE libraries in Node.js)","Network connectivity with support for persistent connections (some proxies/firewalls may block)"],"input_types":["Home Assistant WebSocket state_changed events","SSE client subscription requests"],"output_types":["Server-Sent Events stream with JSON payloads containing entity_id, old_state, new_state, timestamp"],"categories":["memory-knowledge","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_10","uri":"capability://tool.use.integration.entity.type.specific.control.with.service.parameter.mapping","name":"entity type-specific control with service parameter mapping","description":"Implements entity type-specific control logic that maps generic control requests to Home Assistant service calls with appropriate parameters. For example, light control maps brightness/color requests to light.turn_on service with brightness/rgb_color parameters; climate control maps temperature requests to climate.set_temperature service. Each entity type (light, climate, switch, cover, lock, vacuum, media_player, fan) has dedicated control logic that validates parameters and constructs correct service calls. This abstraction hides Home Assistant service complexity from LLMs.","intents":["Control diverse device types through unified LLM interface without exposing Home Assistant service complexity","Validate control parameters before sending to Home Assistant (e.g., brightness 0-255, temperature ranges)","Map natural language control requests to correct Home Assistant services"],"best_for":["LLM agents controlling heterogeneous device types without service-level knowledge","Simplified control interfaces that abstract Home Assistant complexity","Parameter validation before Home Assistant API calls"],"limitations":["Entity type-specific logic must be manually maintained as Home Assistant services evolve","Custom entities or non-standard service parameters not supported","Parameter validation is basic; complex constraints (e.g., color temperature ranges by device) not fully supported","No support for entity-specific features (e.g., some lights support XY color, others RGB)"],"requires":["Home Assistant entity with standard service definitions","Entity type classification (light, climate, switch, etc.)"],"input_types":["entity_id and control parameters (brightness, temperature, position, etc.)","natural language control requests"],"output_types":["Home Assistant service call results","parameter validation errors"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_2","uri":"capability://data.processing.analysis.context.aware.entity.state.querying.with.structured.response.formatting","name":"context-aware entity state querying with structured response formatting","description":"Provides endpoints to query current state of Home Assistant entities (devices, sensors, automations) and returns structured JSON responses with entity_id, state, attributes, and last_updated metadata. The server maintains a cached view of all Home Assistant entities and supports filtering by entity type (light, climate, switch, sensor, etc.). Responses are formatted to be LLM-friendly with human-readable state values and attribute descriptions.","intents":["Query current state of specific devices or all entities of a type before making control decisions","Provide LLM agents with structured context about home configuration and current conditions","Build state-aware automation logic that checks conditions before executing actions"],"best_for":["LLM agents needing to understand current home state before making decisions","Conditional automation workflows that require state inspection","Context injection for LLM prompts with current device status"],"limitations":["Responses reflect cached state; real-time accuracy depends on Home Assistant update frequency","No built-in filtering by device area, zone, or custom attributes — requires client-side post-processing","Large home configurations (100+ entities) may return verbose responses; no pagination support","Attribute structure varies by entity type; LLMs must handle heterogeneous response schemas"],"requires":["Home Assistant instance with REST API enabled","Valid long-lived access token with read permissions","Network connectivity to Home Assistant"],"input_types":["entity_id string (e.g., 'light.living_room')","entity type filter (e.g., 'light', 'climate', 'sensor')","optional attribute filters"],"output_types":["JSON object with entity_id, state, attributes, last_updated","JSON array of entities matching filter criteria","structured state descriptions for LLM consumption"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_3","uri":"capability://automation.workflow.automation.and.scene.management.with.complex.configuration.support","name":"automation and scene management with complex configuration support","description":"Enables creation, modification, triggering, and management of Home Assistant automations and scenes through MCP tools. Supports complex automation configurations including triggers (time, state, event), conditions (templates, state checks), and actions (service calls, scene activation). The server translates LLM requests into Home Assistant automation YAML/JSON and manages automation lifecycle (enable/disable/trigger). Scenes can be created from current state snapshots or manually configured.","intents":["Allow LLM agents to create new automations based on natural language descriptions","Enable dynamic automation management without manual YAML editing","Trigger automations on-demand or create scene snapshots from current state"],"best_for":["Advanced Home Assistant users building complex automations through LLM agents","Dynamic home automation systems that adapt rules based on usage patterns","Scene management and home state snapshots for multi-step workflows"],"limitations":["Complex trigger/condition logic may require manual YAML refinement; LLM-generated automations may need validation","No built-in conflict detection — overlapping automations may cause unexpected behavior","Automation persistence depends on Home Assistant configuration storage; no version control or rollback","Scene creation captures only entity states; complex derived states or calculations not supported"],"requires":["Home Assistant 2023.1+ with automation and scene support","Write permissions on Home Assistant configuration","Long-lived access token with automation/scene management scope"],"input_types":["natural language automation descriptions","structured automation configuration (trigger, condition, action objects)","scene creation requests with entity state snapshots"],"output_types":["automation_id of created/modified automation","scene_id of created scene","automation state (enabled/disabled)","trigger/execution results"],"categories":["automation-workflow","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_4","uri":"capability://automation.workflow.add.on.and.package.lifecycle.management.with.hacs.integration","name":"add-on and package lifecycle management with hacs integration","description":"Provides tools to browse, install, uninstall, start, stop, and configure Home Assistant add-ons and custom integrations through Home Assistant Community Store (HACS). The server exposes add-on discovery endpoints, installation status tracking, and configuration management. Supports both official Home Assistant add-ons and community-maintained packages. Configuration changes trigger add-on restarts and validate settings before application.","intents":["Enable LLM agents to discover and install add-ons based on user requirements","Automate add-on lifecycle management (install, update, configure, restart)","Manage custom integrations and community packages without manual UI interaction"],"best_for":["Home Assistant administrators automating add-on deployment and configuration","LLM agents provisioning new capabilities based on user requests","Infrastructure-as-code workflows for Home Assistant configuration management"],"limitations":["Add-on installation requires Home Assistant Supervisor (not available in core-only installations)","Configuration validation depends on add-on schema; invalid configs fail at runtime","No built-in dependency resolution — installing incompatible add-ons may cause conflicts","HACS integration requires manual HACS setup and GitHub authentication in Home Assistant"],"requires":["Home Assistant with Supervisor (not core-only installation)","HACS installed and configured in Home Assistant","Long-lived access token with add-on management permissions","Network access to Home Assistant Community Store (GitHub)"],"input_types":["add-on repository name or identifier","configuration JSON/YAML for add-on settings","installation/uninstallation requests"],"output_types":["add-on discovery results with metadata","installation status and progress","configuration validation results","add-on state (running, stopped, error)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_5","uri":"capability://safety.moderation.token.based.security.validation.and.request.authentication","name":"token-based security validation and request authentication","description":"Implements security middleware that validates long-lived access tokens on all incoming requests before routing to Home Assistant. Tokens are validated against Home Assistant's token store, and requests without valid tokens are rejected with 401 Unauthorized responses. The middleware applies to all endpoints (device control, state queries, automation management) and prevents unauthorized access to Home Assistant. Token validation happens synchronously before request processing.","intents":["Prevent unauthorized access to Home Assistant through the MCP server","Ensure only authenticated LLM clients can control smart home devices","Maintain security boundary between public MCP endpoints and private Home Assistant instance"],"best_for":["Production Home Assistant deployments exposed to untrusted networks","Multi-user environments where access control is critical","Security-conscious teams deploying LLM agents with smart home access"],"limitations":["Token compromise grants full Home Assistant access; no fine-grained permission scoping","No rate limiting or brute-force protection built-in; requires external WAF/proxy","Tokens stored in plaintext in Home Assistant; no encryption at rest","No token expiration or rotation mechanism; long-lived tokens persist indefinitely"],"requires":["Home Assistant instance with token generation capability","Long-lived access token generated through Home Assistant UI","Token passed in Authorization header or query parameter"],"input_types":["HTTP Authorization header with Bearer token","query parameter with token value"],"output_types":["401 Unauthorized for invalid/missing tokens","request proceeds to handler for valid tokens"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_6","uri":"capability://tool.use.integration.tool.registry.and.schema.based.function.discovery.for.llms","name":"tool registry and schema-based function discovery for llms","description":"Maintains a registry of all available MCP tools (device control, state queries, automation management, add-on management) with JSON Schema definitions for parameters and return types. The tool registry is exposed through MCP protocol endpoints, enabling LLMs to discover available tools, understand parameter requirements, and validate tool invocations against schemas. Each tool includes description, parameter schema, and example usage. LLMs use this registry to determine which tools to invoke for user requests.","intents":["Enable LLMs to discover available smart home control capabilities without hardcoding tool names","Provide parameter validation and type information for tool invocations","Support dynamic tool discovery as new Home Assistant entities are added"],"best_for":["LLM applications using MCP protocol for tool discovery","Multi-tenant systems where available tools vary by user/configuration","Extensible home automation systems that add entities dynamically"],"limitations":["Tool registry is static at server startup; adding new Home Assistant entities requires server restart","Schema validation is basic; complex parameter constraints not fully expressible in JSON Schema","No tool versioning or deprecation support; breaking changes require client updates","Registry size grows with number of entities; large homes may have verbose tool lists"],"requires":["MCP client supporting tool discovery (Claude, custom LLM application)","Home Assistant instance with entities to expose as tools"],"input_types":["MCP tool discovery requests"],"output_types":["JSON array of tool definitions with name, description, inputSchema, outputSchema"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_7","uri":"capability://tool.use.integration.multi.transport.server.support.express.and.litemcp","name":"multi-transport server support (express and litemcp)","description":"Implements dual server transports for MCP protocol support: Express.js for HTTP/REST endpoints and LiteMCP for lightweight MCP-specific protocol handling. Both transports share the same underlying tool implementations and Home Assistant integration layer. Express handles traditional HTTP requests and SSE connections, while LiteMCP provides optimized MCP protocol support. Clients can choose transport based on their requirements (HTTP compatibility vs MCP protocol optimization).","intents":["Support both HTTP-based and MCP protocol-based client integrations","Enable lightweight deployments using LiteMCP for resource-constrained environments","Provide flexibility for clients with different transport requirements"],"best_for":["Deployments requiring both HTTP and MCP protocol support","Resource-constrained environments where LiteMCP reduces overhead","Organizations with mixed client ecosystems (HTTP and MCP)"],"limitations":["Dual transport implementation increases codebase complexity and maintenance burden","Feature parity between transports must be manually maintained","LiteMCP transport may have different performance characteristics than Express","Debugging and troubleshooting requires understanding both transport implementations"],"requires":["Node.js 16+ for Express server","LiteMCP library for MCP protocol support","Configuration to enable/disable each transport"],"input_types":["HTTP requests (Express)","MCP protocol messages (LiteMCP)"],"output_types":["HTTP responses (Express)","MCP protocol responses (LiteMCP)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_8","uri":"capability://tool.use.integration.stateless.request.routing.with.home.assistant.api.delegation","name":"stateless request routing with home assistant api delegation","description":"Routes all device control, state query, and automation management requests to Home Assistant REST API endpoints using long-lived access tokens. The MCP server acts as a stateless proxy that translates tool invocations into Home Assistant service calls, maintaining no persistent state about devices or automations. Each request is independently validated, routed to the appropriate Home Assistant endpoint, and responses are returned to the client. This architecture enables horizontal scaling and simplifies deployment.","intents":["Delegate all smart home operations to Home Assistant without duplicating state management","Enable stateless MCP server deployment for horizontal scaling","Maintain single source of truth (Home Assistant) for all home state"],"best_for":["Scalable deployments requiring multiple MCP server instances","Organizations with existing Home Assistant infrastructure","Stateless microservice architectures"],"limitations":["Latency overhead from request routing through Home Assistant API (100-500ms typical)","No local caching of state; every query hits Home Assistant","Cascading failures if Home Assistant becomes unavailable","No request deduplication; identical concurrent requests hit Home Assistant multiple times"],"requires":["Home Assistant instance with REST API enabled","Network connectivity between MCP server and Home Assistant","Long-lived access token with appropriate permissions"],"input_types":["MCP tool invocation requests"],"output_types":["Home Assistant API responses (service call results, state updates)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__cap_9","uri":"capability://memory.knowledge.websocket.based.event.subscription.to.home.assistant.state.changes","name":"websocket-based event subscription to home assistant state changes","description":"Establishes persistent WebSocket connections to Home Assistant and subscribes to state_changed events. The server maintains these connections internally and uses them to power SSE streaming and real-time state awareness. WebSocket subscriptions are established using Home Assistant's WebSocket API with long-lived tokens. The server handles connection lifecycle (reconnection on failure, heartbeat/ping-pong), event filtering, and broadcasts updates to connected SSE clients.","intents":["Maintain real-time awareness of Home Assistant state changes for LLM agents","Power SSE streaming without polling Home Assistant REST API","Enable reactive automation triggers based on state change events"],"best_for":["Real-time monitoring and reactive automation systems","LLM agents requiring low-latency state awareness","Event-driven home automation workflows"],"limitations":["WebSocket connections require persistent network; mobile/unstable networks may cause frequent reconnections","No built-in event buffering; events occurring during disconnection are lost","Event filtering happens server-side; no client-side filtering to reduce bandwidth","Reconnection logic adds complexity; connection failures may cause temporary state inconsistency"],"requires":["Home Assistant WebSocket API enabled","Long-lived access token with event subscription permissions","Network support for persistent WebSocket connections"],"input_types":["Home Assistant state_changed WebSocket events"],"output_types":["state_changed event objects with entity_id, old_state, new_state"],"categories":["memory-knowledge","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"home-assistant-mcp-server__headline","uri":"capability://tool.use.integration.mcp.server.for.home.assistant.smart.home.integration","name":"mcp server for home assistant smart home integration","description":"A community-driven Model Context Protocol (MCP) server that enables seamless interaction between Language Learning Models and Home Assistant for natural language control of smart home devices.","intents":["best MCP server for Home Assistant","MCP server for smart home automation","community MCP server for IoT devices","how to integrate LLMs with Home Assistant","MCP solutions for home automation","best tools for controlling smart home devices"],"best_for":["developers looking to integrate LLMs with smart home systems"],"limitations":[],"requires":[],"input_types":[],"output_types":[],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":60,"verified":false,"data_access_risk":"high","permissions":["Home Assistant 2023.1 or later with REST API enabled","Long-lived access token generated in Home Assistant UI","Network connectivity between MCP server and Home Assistant instance","Node.js 16+ for running the MCP server","MCP client (Claude Desktop, custom integration, or compatible LLM application)","Home Assistant WebSocket API access with valid long-lived token","HTTP/1.1 or HTTP/2 client supporting SSE (EventSource API in browsers, SSE libraries in Node.js)","Network connectivity with support for persistent connections (some proxies/firewalls may block)","Home Assistant entity with standard service definitions","Entity type classification (light, climate, switch, etc.)"],"failure_modes":["Requires Home Assistant instance with network accessibility and long-lived token generation","Tool discovery and invocation latency depends on Home Assistant API response times (typically 100-500ms per command)","No built-in command queuing or retry logic — failed commands fail immediately without automatic retry","Security relies on token-based authentication; token compromise exposes full Home Assistant control","SSE connections are unidirectional (server-to-client only) — requires separate channel for commands","No built-in message buffering — clients connecting after events miss historical state changes","Scales linearly with number of connected clients; high client counts may impact server memory","Network interruptions require client-side reconnection logic; no automatic recovery","Entity type-specific logic must be manually maintained as Home Assistant services evolve","Custom entities or non-standard service parameters not supported","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.7,"quality":0.9,"ecosystem":0.52,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:04.692Z","last_scraped_at":null,"last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=home-assistant-mcp-server","compare_url":"https://unfragile.ai/compare?artifact=home-assistant-mcp-server"}},"signature":"ugfn7Ccy+qpvFwqnPKVlEsGexRVL17ed4VJ75jxHiGr6RJ+flJ+DLjxG0Ubdk2RAD2uclXVeau++JuQVR9rhBA==","signedAt":"2026-06-21T18:49:35.460Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/home-assistant-mcp-server","artifact":"https://unfragile.ai/home-assistant-mcp-server","verify":"https://unfragile.ai/api/v1/verify?slug=home-assistant-mcp-server","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}