A specialized MCP server for Home Assistant device control and monitoring with remote HTTP access, dual-factor authentication, and Redis caching support
The server defines 6 tools with reasonable descriptions and mostly complete schemas. All tools have clear verb-noun naming (get_*, clear_*) and detailed descriptions following a structured format (Returns, Use Cases, Related Tools). However, input schemas are minimal or missing for 4/6 tools, parameter descriptions lack formal constraints (enums, ranges), and several tools expose implementation details (Redis cache metrics) that should be abstracted. The descriptions are above the minimum but longer than optimal for LLM token efficiency. Error handling and recovery guidance are present in the code but not documented in tool descriptions. No tool annotations (readOnlyHint/destructiveHint) are used despite their clear applicability.
Clear cache entries by pattern or all cache data. ## Parameters • pattern: Pattern to match keys (e.g., "ha:*", "ha:states:*"). If not provided, clears ALL cache. ## Use Cases • Clear stale data • Force refresh of cached data • Debug caching issues ## Related Tools • Use `get_cache_stats` to view cache metrics • Use `get_cache_info` for Redis server info ⚠️ **Warning**: Clearing all cache may impact performance temporarily
Get Redis server information and cache configuration. ## Returns • Redis version • Memory usage • Connected clients • Keyspace info • Configuration details ## Use Cases • Monitor cache health • Check Redis server status • View cache configuration ## Related Tools
Get Redis cache statistics and performance metrics. ## Returns • Hit/miss rates • Average response times • Error counts • Total requests • Uptime ## Use Cases • Monitor cache performance • Debug caching issues • Optimize cache configuration ## Related Tools • Use `clear_cache` to clear cache entries • Use `get_cache_info` for Redis server info
Get the current date and time in the configured timezone. ## Returns • Current date (YYYY-MM-DD format) • Current time (HH:MM:SS format) • Current datetime (ISO 8601 format) • Configured timezone name • UTC offset • Day of week • Unix timestamp ## Use Cases • Reference current date/time for device control and automation • Understand timezone context for scheduling • Schedule automations relative to current time ## Related Tools • Use Home Assistant automation tools with time-based triggers • Use `get_server_config` to see configured timezone ⚠️ **Note**: The timezone is configured via the TIMEZONE environment variable (default: UTC)
Input schemas missing for 4/6 tools (get_server_status, get_server_config, get_current_datetime, get_cache_stats, get_cache_info). Only clear_cache has a defined schema.
clear_cache parameter 'pattern' has a description but no enum constraint. The description lists examples ('ha:*', 'ha:states:*') as unstructured text rather than formal constraints. LLMs may pass invalid patterns. Should document valid pattern syntax or provide enums for common patterns.
Tool descriptions expose cache implementation details (Redis, keyspace, memory usage, connected clients). Cache is an internal optimization detail. Descriptions should abstract this as 'cache system' and omit Redis-specific metadata. Users care about performance impact, not Redis version.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Get the current server configuration (non-sensitive values only). ## Returns • Debug mode status • Service configuration status • SSL verification settings • Timezone configuration ## Use Cases • Check configuration • Verify settings • Debug issues ## Related Tools • Use `get_server_status` for service health ⚠️ **Note**: Sensitive values like API keys are not exposed
Get the current status of the Home Assistant service. ## Returns • Service status for Home Assistant integration • Connection type and status • Overall server version ## Use Cases • Health check • Service monitoring • Troubleshooting connections ## Related Tools • Use `get_server_config` for configuration details
No tool annotations used. clear_cache is clearly destructive (clears all data if pattern is omitted), but has no destructiveHint annotation. get_server_status and others are read-only but lack readOnlyHint. Annotations enable LLM safety and caching optimizations.
Descriptions are 300-400+ characters on average, above the 200-char guideline (baseline p90=392, but optimized tools target 50-200 for LLM efficiency). Descriptions are well-structured but verbose. Condense to increase token efficiency.
clear_cache description warns of performance impact ('may impact performance temporarily') but does not categorize the error or provide recovery guidance. Should clarify: is the operation retryable? Should the user confirm? What is the rollback process?
Output schemas are not documented in tool definitions. Descriptions mention what is returned (e.g., 'Hit/miss rates', 'Redis version', 'Service status') but do not show the actual JSON structure or field types. LLMs cannot plan downstream calls without knowing response shape.