{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm_npm-hass-mcp","slug":"npm-hass-mcp","name":"hass-mcp","type":"mcp","url":"https://www.npmjs.com/package/hass-mcp","page_url":"https://unfragile.ai/npm-hass-mcp","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm_npm-hass-mcp__cap_0","uri":"capability://tool.use.integration.home.assistant.device.state.querying.via.mcp.protocol","name":"home assistant device state querying via mcp protocol","description":"Exposes Home Assistant entity state and metadata through MCP's standardized tool interface, translating REST API calls into structured JSON responses. The server implements MCP's tool schema to allow LLM clients to query device states (lights, switches, sensors, climate) without direct API knowledge, handling authentication via Home Assistant long-lived tokens and managing connection pooling to the Home Assistant instance.","intents":["Query the current state of a smart home device (is the living room light on?)","Retrieve sensor readings and environmental data from Home Assistant","List all available entities and their metadata for dynamic discovery","Get historical state information or attributes for a specific device"],"best_for":["LLM application developers building Home Assistant chatbots or voice agents","Teams integrating Home Assistant with Claude or other MCP-compatible LLMs","Home automation enthusiasts prototyping natural language control interfaces"],"limitations":["Read-only for state queries — does not support filtering or complex queries beyond entity ID lookup","Requires network connectivity to Home Assistant instance; no local caching of state history","MCP protocol overhead adds ~50-200ms per query depending on network latency to Home Assistant"],"requires":["Home Assistant instance (2023.12+) with REST API enabled","Long-lived access token from Home Assistant (generated in user settings)","Network connectivity from MCP server to Home Assistant HTTP/WebSocket endpoints","Node.js 16+ runtime"],"input_types":["entity_id (string, e.g., 'light.living_room')","optional attribute filters (string)"],"output_types":["JSON object with state, attributes, last_changed timestamp","Array of entity metadata for discovery queries"],"categories":["tool-use-integration","home-automation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-hass-mcp__cap_1","uri":"capability://tool.use.integration.home.assistant.device.control.via.mcp.tool.execution","name":"home assistant device control via mcp tool execution","description":"Implements MCP tools for executing Home Assistant service calls (turn_on, turn_off, set_temperature, etc.) with schema validation and error handling. The server translates LLM-generated tool calls into Home Assistant WebSocket service calls, managing request/response correlation and returning execution status back to the LLM with confirmation or error details.","intents":["Turn a smart light on or off based on natural language command","Set a thermostat to a specific temperature","Execute complex automations or scenes through a single service call","Control multiple devices in sequence with confirmation feedback"],"best_for":["Developers building voice assistants or chatbots for home automation","Non-technical users wanting to control smart homes via natural language through LLM interfaces","Home automation teams integrating Home Assistant with AI decision-making systems"],"limitations":["No built-in transaction support — partial failures in multi-device commands are not rolled back","Service call parameters must match Home Assistant's schema exactly; no automatic type coercion","WebSocket connection state is not persisted across MCP server restarts; requires reconnection","No rate limiting or command queuing — rapid successive calls may overwhelm Home Assistant"],"requires":["Home Assistant instance with WebSocket API enabled","Long-lived access token with service call permissions","Network connectivity to Home Assistant WebSocket endpoint (default port 8123)","Node.js 16+ with async/await support"],"input_types":["service domain (string, e.g., 'light', 'climate')","service name (string, e.g., 'turn_on', 'set_temperature')","entity_id (string)","service data (JSON object with domain-specific parameters)"],"output_types":["JSON response with success/failure status","Service call result data (e.g., new state after execution)","Error messages with Home Assistant error codes"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-hass-mcp__cap_2","uri":"capability://tool.use.integration.mcp.tool.schema.generation.from.home.assistant.service.definitions","name":"mcp tool schema generation from home assistant service definitions","description":"Dynamically introspects Home Assistant's available services and generates MCP-compliant tool schemas with parameter validation, descriptions, and required field constraints. The server queries Home Assistant's service registry on startup and maps service domains/names to MCP tool definitions, enabling LLMs to discover available actions without hardcoded tool lists.","intents":["Automatically expose all Home Assistant services as callable tools to an LLM","Generate parameter schemas so LLMs understand what arguments each service accepts","Support new Home Assistant services without code changes to the MCP server","Provide descriptions and examples for each service to guide LLM decision-making"],"best_for":["Developers building extensible Home Assistant LLM integrations","Teams wanting to support custom Home Assistant add-ons without MCP code updates","Home automation platforms that need dynamic service discovery"],"limitations":["Schema generation is one-time at server startup; new services added to Home Assistant require server restart","Complex nested service parameters may not translate perfectly to MCP schema constraints","No caching of schema definitions — each MCP client connection receives full schema introspection"],"requires":["Home Assistant instance with services API endpoint accessible","Long-lived access token with read permissions on service definitions","Node.js 16+ with JSON schema validation libraries"],"input_types":["Home Assistant service registry (queried via REST API)"],"output_types":["MCP tool definitions (JSON schema format)","Tool descriptions and parameter constraints","Required vs optional field specifications"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-hass-mcp__cap_3","uri":"capability://tool.use.integration.websocket.connection.management.with.automatic.reconnection","name":"websocket connection management with automatic reconnection","description":"Manages persistent WebSocket connections to Home Assistant with exponential backoff reconnection logic, connection state tracking, and event subscription handling. The server maintains a single authenticated WebSocket session, automatically detects disconnections, and re-establishes connections with jittered backoff to avoid thundering herd scenarios.","intents":["Maintain reliable communication with Home Assistant across network interruptions","Automatically recover from Home Assistant restarts without manual intervention","Handle multiple concurrent MCP client requests over a single WebSocket connection","Monitor connection health and report status to LLM clients"],"best_for":["Production deployments of Home Assistant LLM agents requiring high availability","Teams running MCP servers in unstable network environments","Developers building long-running chatbots or voice assistants"],"limitations":["No connection pooling — single WebSocket bottleneck for all concurrent requests","Exponential backoff may delay recovery during extended Home Assistant outages (max ~30s between attempts)","In-flight requests are lost on disconnection; no automatic request replay or queueing","Connection state is not persisted; reconnection requires re-authentication"],"requires":["Home Assistant instance with WebSocket API enabled","Long-lived access token","Node.js 16+ with EventEmitter support"],"input_types":["Home Assistant WebSocket URL","Authentication token"],"output_types":["Connection status events (connected, disconnected, reconnecting)","WebSocket message responses"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-hass-mcp__cap_4","uri":"capability://tool.use.integration.mcp.protocol.compliance.and.tool.calling.interface","name":"mcp protocol compliance and tool-calling interface","description":"Implements the Model Context Protocol (MCP) server specification, exposing Home Assistant capabilities through MCP's standardized tool-calling interface. The server handles MCP message framing, tool definition advertisement, and tool execution requests, allowing any MCP-compatible LLM client (Claude, etc.) to discover and invoke Home Assistant actions without custom integration code.","intents":["Enable Claude or other MCP-compatible LLMs to control Home Assistant natively","Provide a standard interface that works across different LLM providers","Allow LLM clients to discover available Home Assistant services automatically","Execute Home Assistant commands through the LLM's native tool-calling mechanism"],"best_for":["LLM application developers using Claude or other MCP-compatible models","Teams building multi-LLM applications that need a unified Home Assistant interface","Developers wanting to avoid custom API wrappers or prompt engineering for Home Assistant"],"limitations":["MCP protocol overhead adds ~50-100ms per tool call compared to direct REST API","Tool execution is synchronous — no streaming or long-running operation support","MCP server must be running as a separate process; no in-process library mode","Limited to LLM clients that support MCP (not all LLM providers support it yet)"],"requires":["MCP-compatible LLM client (Claude via Claude Desktop, etc.)","Node.js 16+ runtime","Home Assistant instance","Long-lived Home Assistant access token"],"input_types":["MCP protocol messages (JSON-RPC format)","Tool call requests with parameters"],"output_types":["MCP tool definitions (JSON schema)","Tool execution results (JSON)","Error responses (MCP error format)"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-hass-mcp__cap_5","uri":"capability://tool.use.integration.authentication.and.token.management.for.home.assistant.api.access","name":"authentication and token management for home assistant api access","description":"Handles Home Assistant authentication using long-lived access tokens, managing token lifecycle and API request signing. The server stores tokens securely (via environment variables or config files), includes tokens in all Home Assistant API requests (both REST and WebSocket), and validates token permissions before executing service calls.","intents":["Securely authenticate to Home Assistant without storing passwords","Manage API credentials for long-running MCP server processes","Validate that the token has permissions for requested operations","Support multiple Home Assistant instances with different tokens"],"best_for":["Production deployments requiring secure credential management","Teams running MCP servers in shared or cloud environments","Developers building multi-tenant Home Assistant control systems"],"limitations":["Tokens are stored in plaintext in environment variables or config files; no encryption at rest","No token rotation or expiration management — tokens must be manually refreshed in Home Assistant UI","Single token per MCP server instance — no per-user authentication or role-based access control","Token permissions are not validated before execution; Home Assistant API returns errors for unauthorized calls"],"requires":["Home Assistant long-lived access token (generated in Home Assistant UI)","Environment variable or config file to store token","Node.js 16+ with environment variable support"],"input_types":["Home Assistant access token (string)","Home Assistant instance URL"],"output_types":["Authenticated API requests","Authorization success/failure responses"],"categories":["tool-use-integration","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":28,"verified":false,"data_access_risk":"moderate","permissions":["Home Assistant instance (2023.12+) with REST API enabled","Long-lived access token from Home Assistant (generated in user settings)","Network connectivity from MCP server to Home Assistant HTTP/WebSocket endpoints","Node.js 16+ runtime","Home Assistant instance with WebSocket API enabled","Long-lived access token with service call permissions","Network connectivity to Home Assistant WebSocket endpoint (default port 8123)","Node.js 16+ with async/await support","Home Assistant instance with services API endpoint accessible","Long-lived access token with read permissions on service definitions"],"failure_modes":["Read-only for state queries — does not support filtering or complex queries beyond entity ID lookup","Requires network connectivity to Home Assistant instance; no local caching of state history","MCP protocol overhead adds ~50-200ms per query depending on network latency to Home Assistant","No built-in transaction support — partial failures in multi-device commands are not rolled back","Service call parameters must match Home Assistant's schema exactly; no automatic type coercion","WebSocket connection state is not persisted across MCP server restarts; requires reconnection","No rate limiting or command queuing — rapid successive calls may overwhelm Home Assistant","Schema generation is one-time at server startup; new services added to Home Assistant require server restart","Complex nested service parameters may not translate perfectly to MCP schema constraints","No caching of schema definitions — each MCP client connection receives full schema introspection","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.21965950729893952,"quality":0.22,"ecosystem":0.3,"match_graph":0.25,"freshness":0.6,"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-05-24T12:16:23.903Z","last_scraped_at":"2026-04-22T08:09:32.878Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":627,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=npm-hass-mcp","compare_url":"https://unfragile.ai/compare?artifact=npm-hass-mcp"}},"signature":"dhbuvKSCv5ovYfJbWYEaedBWwYSqDtLNhsT76lgz9ysXtFH78uUmTy5kDiJ9CCSMkwyM4ooRL+DuJckGWlV7Dw==","signedAt":"2026-06-21T03:11:14.135Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/npm-hass-mcp","artifact":"https://unfragile.ai/npm-hass-mcp","verify":"https://unfragile.ai/api/v1/verify?slug=npm-hass-mcp","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"}}