MCP server for Home Assistant providing file operations, YAML validation, backup inspection, and Home Assistant service integration
Server implements 7 file operations with basic async functionality. Tool naming is clear and verb-based (list_, read_, write_, create_, delete_, search_). Descriptions are present but minimal (avg 34-45 chars). Input schemas exist but lack richness, parameter descriptions are sparse, no enums for mutually exclusive options, no documented return schemas visible. Error handling exists at implementation level but lacks actionable recovery guidance in descriptions. Path validation is thorough (prevents directory traversal), but output schema documentation is absent from tool definitions. Per-tool average: 62/100.
Run a safe Home Assistant add-on action (start, stop, restart)
Call a whitelisted Home Assistant service after applying write and allowlist checks
Call a Home Assistant service with optional target and data
Check Home Assistant configuration for errors
Create a new directory
Delete a file or directory
Download a backup archive to a temporary location
Output schemas not documented. No tool description states what fields are returned (e.g., list_directory returns array of {name, path, type, size, modified} but this is invisible to LLMs). LLMs cannot plan downstream operations without knowing response structure.
Destructive tool (delete_path) lacks confirmation/dry-run support and has minimal description (44 chars). No guidance in description that this is irreversible or when to use. No mention that non-empty directories cannot be deleted until after failure.
Tool descriptions are below baseline quality. Average is 40-50 chars; baseline is 194 chars (p10=34, p90=392). Descriptions like 'List contents of a directory' and 'Read contents of a file' provide no context for WHEN to use vs similar tools or what format data is returned in.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 8 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Get information about a specific Home Assistant add-on
Get logs for a specific Home Assistant add-on
Get runtime stats for a specific Home Assistant add-on
List all installed Home Assistant add-ons
List contents of a directory
List backup metadata behind the dedicated security gate
Read contents of a file
Read file with filtering support for large files
Reload Home Assistant automations
Reload Home Assistant scripts
Reload Home Assistant template entities
Search backup archive files for patterns
Search for files containing a pattern
Turn a Home Assistant automation on or off
Validate Home Assistant automation YAML file
Validate YAML file syntax and structure
Write content to a file
Parameter descriptions are minimal or missing context. 'path' and 'content' lack guidance on format, constraints, or examples. No mention of max file size (10MB), no guidance on encoding, no regex patterns. LLMs cannot infer constraints from names alone.
Error messages in code are clear ('File too large...', 'Path not within allowed directories') but descriptions give no recovery hints. E.g., if read_file fails due to size, description should suggest read_file_filtered.
write_file and create_directory support read-only mode but this is not exposed in tool descriptions or parameter options. LLM has no way to know whether write operations will be rejected based on server configuration.
search_files max_results defaults to 100 and is not visible in description. Pagination/limiting is implemented but not documented. LLMs don't know that large result sets are capped.