Token-efficient CLI wrapping the Home Assistant MCP server, plus a stdio vision proxy.
Critical failures across all dimensions. Tool definitions exist in src/inventory.js but lack visible input schemas, parameter descriptions, and output documentation. Descriptions are minimal (10-30 chars), far below the 50-200 char baseline for LLM-optimized tools. No parameter type definitions visible. No error handling guidance. No idempotency or confirmation patterns for destructive operations (delete_*, restore_config_backup, restart_ha). The server exposes 72 tools but provides almost no structured metadata to guide LLM selection or parameter binding.
Backup config files
Batch edit config files
Get the state of multiple entities
Call a Home Assistant service
Check configuration validity
Clean up config backups
Create an automation
No input schemas visible in source code. All 72 tools lack documented parameter types, constraints, and descriptions. Cannot verify schema compliance.
Descriptions are trivial (10-30 chars). Examples: 'Get the state of an entity' (28 chars), 'Call a Home Assistant service' (29 chars). Baseline is 50-200 chars. LLMs cannot distinguish tools or understand when to use them.
Destructive operations (delete_*, restore_config_backup, restart_ha, batch_edit_config_files) lack confirmation or dry-run patterns. Agents can irreversibly delete automations, dashboards, config files, or restart the entire system without safeguards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Create a calendar event
Create a dashboard
Create a helper
Create a recurring calendar event
Create a scene
Create a script
Delete an automation
Delete calendar events
Delete a config file
Delete a dashboard
Delete dashboard configuration
Delete a helper
Delete a scene
Delete a script
Describe a service
Fire an event in Home Assistant
Get automation configuration
Get camera image
Get configuration
Get config file contents
Get dashboard configuration
Get details of a device
Get domain statistics
Get error log
Get helper configuration
Get entity history
Get image file
Get logbook entries
Get scene configuration
Get script configuration
Get the state of an entity
Get statistics
Get system status
Create a KNX entity
Delete a KNX entity
Get KNX base data
Get KNX entities
Get recent KNX telegrams
Update a KNX entity
List all areas
List all automations
List calendar events
List all config backups
List all config files
List all dashboards
List all devices
List all entities
List all helpers
List all integrations
List all labels
List all scenes
List all scripts
List all services
Patch dashboard configuration using RFC 6902 JSON Patch
Render a Jinja2 template
Restart Home Assistant
Restore a config backup
Save a config file
Save dashboard configuration
Search for entities
Update an automation
Update a dashboard
Update a helper
Update a scene
Update a script
No error handling guidance. Tools return errors but do not tell LLMs what to do next (retry, ask user, lookup alternative). No recovery paths documented.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does get_state return {state, attributes, last_changed}? Does list_entities return paginated results?). Breaks tool chaining.