Model Context Protocol Server for Home Assistant
Server has 13 tools with schemas and descriptions present, but quality is inconsistent. Most tool descriptions are adequate (50-150 chars), but parameter descriptions are sparse or missing context. Critical gaps: no output schemas documented, no error handling guidance, no idempotency hints for destructive operations, and several tools combine multiple concerns (e.g., get_automations does list/toggle/trigger). Parameter naming lacks consistency (e.g., 'action' enum vs explicit verb names). No tool annotations (readOnlyHint, destructiveHint). Schemas are present but lack validation constraints (min/max for numbers, patterns for strings). This is a typical community server with functional but not production-grade definitions.
Call a Home Assistant service
Control Home Assistant devices and services
List Home Assistant add-ons or manage add-on installation
List automations or control automation execution
Get historical state data for entities
Manage Home Assistant packages (integrations, plugins, themes, etc.)
List available scenes or activate a specific scene
Multiple tools combine unrelated actions via 'action' enum (get_automations: list/toggle/trigger; get_scenes: list/activate; get_addons: list/info/install/uninstall/start/stop/restart). This violates single-responsibility principle and forces LLMs to reason about which enum value to pass instead of calling a verb-named tool.
No output schemas documented. Tools return data but LLMs cannot plan downstream calls or extract required fields. E.g., list_devices returns devices but structure is undocumented, does it include device_id, entity_id, or both? Required for tool chaining.
Destructive operations (control, call_service, manage_automation_config, get_addons with install/uninstall) lack error handling guidance and confirmation patterns. No dry-run option or recovery instructions if operation fails.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Get Server-Sent Events statistics and connection information
Get current state of all entities or a specific entity
List all available Home Assistant devices
Create, update, delete, or duplicate automation configurations
Send a notification via Home Assistant
Subscribe to Home Assistant events via Server-Sent Events
Parameter descriptions lack actionable constraints. E.g., 'brightness' (0-255) and 'position' (0-100) lack min/max in schema; 'command' enum is large but no guidance on which commands apply to which entity types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without parsing descriptions. subscribe_events is stateful but not marked; control is destructive but not annotated.