Skip to main content
Glama

Home Assistant MCP Server

by cronus42
MIT License
1
README_NEW_FEATURES.md8.18 kB
# Home Assistant MCP Server - New High Priority Features This document describes the newly implemented high-priority features for the Home Assistant MCP (Model Context Protocol) server, significantly expanding its capabilities. ## 📋 Overview We've successfully implemented **27 new tools** across **6 major feature categories**, bringing the total to **60 available tools** for comprehensive Home Assistant management. ## 🚀 New Feature Categories ### 1. Area/Device Management (5 tools) Manage Home Assistant areas and devices programmatically: - **`get_areas`** - List all areas/zones in Home Assistant - **`create_area`** - Create new areas with optional aliases - **`update_area`** - Modify existing area names and aliases - **`delete_area`** - Remove areas from the system - **`get_entities_by_area`** - Get all entities assigned to a specific area **Use Cases:** - Organize smart home devices by room/location - Bulk manage entities within specific areas - Create dynamic area-based automations ### 2. Device Management (3 tools) Control and configure Home Assistant devices: - **`get_devices`** - List all registered devices - **`get_device`** - Get detailed information about a specific device - **`update_device`** - Modify device settings (name, area assignment, enable/disable) **Use Cases:** - Device inventory and organization - Troubleshoot device connectivity issues - Manage device assignments to areas ### 3. System Management (6 tools) Monitor and control the Home Assistant system: - **`restart_homeassistant`** - Restart the Home Assistant core - **`stop_homeassistant`** - Stop the Home Assistant system - **`check_config_valid`** - Validate configuration before applying changes - **`get_system_health`** - Check system health and component status - **`get_supervisor_info`** - Get Home Assistant supervisor information (if available) - **`get_system_info`** - Get host and system information **Use Cases:** - System maintenance and monitoring - Configuration validation before changes - Health monitoring and diagnostics ### 4. Integration Management (6 tools) Manage Home Assistant integrations: - **`get_integrations`** - List all configured integrations - **`reload_integration`** - Reload specific integration - **`disable_integration`** - Disable an integration - **`enable_integration`** - Enable a disabled integration - **`delete_integration`** - Remove an integration - **`get_integration_info`** - Get detailed integration information **Use Cases:** - Integration troubleshooting and maintenance - Dynamic integration management - Monitor integration status and configuration ### 5. Notification Services (3 tools) Send and manage notifications: - **`send_notification`** - Send notifications via various services - **`get_notification_services`** - List available notification services - **`dismiss_notification`** - Dismiss persistent notifications **Use Cases:** - Alert systems and monitoring - User notifications for automation events - Notification service management ### 6. Entity Registry Management (4 tools) Manage the Home Assistant entity registry: - **`get_entity_registry`** - Get registry information for all entities - **`update_entity_registry`** - Update entity configuration (name, area, status) - **`enable_entity`** - Enable a disabled entity - **`disable_entity`** - Disable an entity **Use Cases:** - Entity organization and management - Bulk entity operations - Entity troubleshooting and configuration ## ✅ Testing Results All new features have been thoroughly tested: ### Test Suite Results - **Tool Definitions Test**: ✅ 27/27 tools properly defined (100%) - **Schema Validation Test**: ✅ All 60 tools have valid schemas (100%) - **Tool Handler Integration Test**: ✅ 13/13 core handlers working (100%) ### Test Commands ```bash # Test tool definitions and schemas python test_mcp_tools.py # Test tool handlers with mocking python test_tool_handlers.py # Test with real Home Assistant (requires HA_TOKEN) python test_new_features.py ``` ## 🔧 Setup and Configuration ### Prerequisites 1. Home Assistant instance running and accessible 2. Long-lived access token from Home Assistant 3. MCP client that supports the Home Assistant MCP server ### Environment Variables ```bash export HA_TOKEN="your_long_lived_access_token" export HA_URL="http://your-homeassistant:8123" # Optional, defaults to http://homeassistant.local:8123 ``` ### Getting a Home Assistant Token 1. Go to Home Assistant → Profile → Security 2. Create a "Long-Lived Access Token" 3. Copy the token and set it as `HA_TOKEN` environment variable ## 📚 API Coverage The MCP server now covers the following Home Assistant REST API endpoints: | Category | API Endpoints Covered | |----------|----------------------| | **Core** | `/api/states`, `/api/services`, `/api/config`, `/api/events` | | **Areas** | `/api/config/area_registry` (GET, POST, DELETE) | | **Devices** | `/api/config/device_registry` (GET, POST) | | **System** | `/api/config/core/check_config`, `/api/system_health/info` | | **Integrations** | `/api/config/config_entries` (GET, POST, DELETE) | | **Registry** | `/api/config/entity_registry` (GET, POST) | | **Services** | All service domains via `/api/services/{domain}/{service}` | ## 🎯 Usage Examples ### Area Management ```python # List all areas areas = await client.get_areas() # Create a new area area = await client.create_area("Office", aliases=["workspace", "study"]) # Get entities in an area entities = await client.get_entities_by_area("living_room") ``` ### System Monitoring ```python # Check system health health = await client.get_system_health() # Validate configuration config_check = await client.check_config_valid() # Get system information sys_info = await client.get_system_info() ``` ### Notification Management ```python # Send a notification await client.send_notification( message="Security alert: Front door opened", title="Security Alert", target="mobile_app_phone" ) # List available services services = await client.get_notification_services() ``` ## 🔄 Integration Patterns ### With Automation Systems - Monitor system health and trigger maintenance automations - Automatically organize new devices by area - Send notifications for system events ### With Monitoring Tools - Track integration status and failures - Monitor device connectivity and health - Alert on configuration validation failures ### With Management Dashboards - Display real-time system status - Manage device and area organization - Provide integration management interface ## 🚦 Error Handling All new tools include comprehensive error handling: - **Invalid Parameters**: Clear validation error messages - **Home Assistant Connectivity**: Connection timeout and retry logic - **Permission Issues**: Token validation and permission error reporting - **API Limitations**: Graceful fallbacks for unavailable endpoints ## 📈 Performance Considerations - **Caching**: Entity and device registry information can be cached - **Rate Limiting**: Built-in SSE rate limiting (1000 requests/minute) - **Batch Operations**: Use bulk operations where possible - **Fallback Handling**: Graceful degradation for unavailable services ## 🔮 Future Enhancements Potential areas for future expansion: - **Backup/Restore Management**: Configuration backup and restore tools - **Add-on Management**: Manage Home Assistant add-ons - **User Management**: User account and permission management - **Energy Management**: Energy monitoring and reporting tools - **Advanced Diagnostics**: Network and performance diagnostics ## 🤝 Contributing When adding new features: 1. Add the client method to `HomeAssistantClient` 2. Add the tool definition to `handle_list_tools()` 3. Add the tool handler to `handle_call_tool()` 4. Add test cases to the test suites 5. Update documentation ## 📞 Support For issues and questions: - Check test results with provided test scripts - Verify Home Assistant API documentation for endpoint availability - Ensure proper token permissions for required operations - Review logs for detailed error information

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cronus42/homeassistant-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server