Provides comprehensive control and monitoring of Home Assistant smart home devices, including reading entity states, controlling lights and switches, accessing sensor history, calling services, and generating YAML automations for smart home management.
🏠 Home Assistant MCP Server
A powerful Model Context Protocol (MCP) server for integrating Home Assistant with AI agents like Claude Desktop.
🍓 Raspberry Pi Ready! This server includes a standalone HTTP mode specifically designed for easy deployment on Raspberry Pi 3B+ alongside Home Assistant. The
install.sh
script provides automated installation optimized for Pi hardware.
✨ Features
🏠 Entity Management : Read the state of all your Home Assistant devices
🎮 Device Control : Turn on/off lights, switches, and more
📊 History Access : Access sensor and entity history data
🔐 Secure Authentication : Uses Home Assistant access tokens
🚀 High Performance : Asynchronous connections for optimal responsiveness
🛠️ Service Calls : Call any Home Assistant service
🤖 Smart Automations : Generate intelligent YAML automations
🌐 HTTP Server Mode
In addition to MCP protocol, this server can run as a standalone HTTP REST API server, perfect for:
🍓 Raspberry Pi deployment alongside Home Assistant
🔗 Web applications and custom integrations
🚀 Microservices architecture
📱 Mobile apps and third-party tools
🤖 AI agents that don't support MCP protocol directly
Why use HTTP Server mode?
Universal compatibility: Any programming language or tool can connect via HTTP
Direct deployment: Install directly on your Raspberry Pi running Home Assistant
No MCP client required: Works with any HTTP client (curl, Postman, web browsers)
REST API standard: Easy integration with existing systems and workflows
Standalone operation: Independent service that doesn't require MCP infrastructure
HTTP Endpoints
The HTTP server provides a complete REST API interface to Home Assistant:
GET /health
- Server health check and Home Assistant connectivity statusGET /api/entities
- List all entities (with optional domain filtering like?domain=light
)GET /api/entities/{entity_id}
- Get specific entity state and attributesPOST /api/services/call
- Call Home Assistant services (turn on/off devices, etc.)GET /api/history
- Get entity history data with time range filtering
Use Cases:
Web dashboards: Build custom web interfaces for Home Assistant
Mobile apps: Create native mobile applications with HTTP API
Automation scripts: Use any programming language to automate your home
Third-party integrations: Connect non-MCP services to Home Assistant
Development testing: Quick API testing with curl or Postman
Quick HTTP Server Start
Server runs on http://localhost:3002
by default and provides a complete REST API interface.
Example API calls:
🎯 HTTP vs MCP: When to use which?
Use HTTP Server when:
🍓 Installing directly on Raspberry Pi 3B+
🌐 Building web applications or mobile apps
🔧 Integrating with non-MCP tools and services
🚀 Need universal compatibility across programming languages
📊 Creating custom dashboards or monitoring systems
Use MCP Server when:
💻 Working with AI agents that support MCP (Claude Desktop, etc.)
🤖 Need structured tool-based interactions
🔄 Want automatic tool discovery and schema validation
📝 Prefer conversation-based device control
📁 Project Structure
🚀 Installation
Quick Start Options
🍓 Raspberry Pi Installation (Recommended)
Install directly on your Raspberry Pi 3B+ alongside Home Assistant:
🎯 Optimized for Raspberry Pi 3B+:
✅ HTTP Server Setup: Installs the standalone HTTP server for easy AI integration
✅ Interactive Configuration: Prompts for Home Assistant token and URL during installation
✅ Systemd Service: Auto-configures system service for automatic startup
✅ Security: Proper file permissions and service isolation
✅ Port 3002: HTTP REST API accessible from external machines
✅ Resource Optimized: Lightweight deployment suitable for Pi 3B+ hardware
✅ Debian Compatible: Tested on Raspberry Pi OS (Debian-based)
System Requirements:
Raspberry Pi 3B+ or newer
Raspberry Pi OS (Debian 11+ recommended)
Home Assistant running on the same Pi or network
Python 3.9+ (automatically installed if needed)
At least 512MB available RAM
💻 Desktop Installation
For development or remote installation:
Prerequisites
Python 3.8+
Home Assistant with API enabled
Home Assistant access token
Server Installation
Configuration
Create a
.env
file:
Get your Home Assistant token:
Go to Home Assistant > Profile > Long-lived access tokens
Create a new token
Copy it to the
.env
file
Claude Desktop Configuration
Add this to your Claude Desktop configuration (claude_desktop_config.json
):
📄 Complete configuration file available in
🤖 AI Service Configurations
Claude Desktop
Add this to your Claude Desktop configuration (claude_desktop_config.json
):
LM Studio
Configure MCP in LM Studio:
Open LM Studio
Go to Settings > MCP Servers
Add a new server:
Name:
homeassistant
Command:
homeassistant-mcp-server
Environment Variables:
Continue.dev (VS Code Extension)
Add to your Continue configuration (.continue/config.json
):
Cursor IDE
Add to Cursor's AI configuration:
Open Cursor IDE
Go to Settings > AI > MCP Servers
Add server configuration:
Cline (VS Code Extension)
Configure in Cline settings:
LM Studio
LM Studio peut utiliser le serveur via des fonctions HTTP personnalisées:
Option 1: HTTP Functions (Recommandé)
Importez le fichier
configs/lm-studio-functions.json
Utilisez le prompt système
configs/lm-studio-system-prompt.md
Assurez-vous que le serveur HTTP fonctionne:
http://192.168.1.22:3002/health
Configuration rapide:
Custom Integration
For other MCP-compatible services, use this standard format:
🔧 Configuration Notes:
Replace
your_token_here
with your actual Home Assistant tokenUpdate the URL if your Home Assistant runs on a different address
Some services may require the full path to the executable
Restart your AI service after adding the configuration
🧪 Testing and Validation
Test your installation with the provided scripts:
💬 Usage
Once configured, you can ask Claude:
"What lights are currently on?"
"Turn off all the living room lights"
"Show me the temperature from my sensors"
"What's the temperature history for today?"
"Create an automation to turn on lights at sunset"
"Generate an alert when energy consumption exceeds 700 kWh"
🛠️ Available Tools
The MCP server exposes 8 tools to interact with Home Assistant:
📋 Entity Management
get_entities
: List all entities with domain filteringget_entity_state
: Get detailed state of an entityget_history
: Entity history over a given period
🎮 Device Control
call_service
: Call a service to control devicesget_services
: List all available services
🤖 Automations (New!)
create_automation
: Generate ready-to-use YAML automationslist_automations
: List all active automationstoggle_automation
: Enable/disable an automation
💡 Automation Examples
⚡ Energy Monitoring
🌅 Automatic Lighting
📅 Scheduled Notifications
📚 Documentation
Quick Start Guide - Fast installation and configuration
Architecture - Detailed technical documentation
Tests - Test scripts guide
Examples - Examples and configurations
🔧 Development
License
MIT
Version française
Un serveur Model Context Protocol (MCP) puissant pour intégrer Home Assistant avec des agents IA comme Claude Desktop.
✨ Fonctionnalités
🏠 Lecture d'entités : Consultez l'état de tous vos appareils Home Assistant
🎮 Contrôle d'appareils : Allumer/éteindre lumières, commutateurs, etc.
📊 Historique : Accédez à l'historique des capteurs et entités
🔐 Authentification sécurisée : Utilise les tokens d'accès Home Assistant
🚀 Performance : Connexions asynchrones pour une réactivité optimale
🛠️ Services : Appelez n'importe quel service Home Assistant
🤖 Automatisations : Générez des automatisations YAML intelligentes
🌐 Mode Serveur HTTP
En plus du protocole MCP, ce serveur peut fonctionner comme un serveur HTTP REST API autonome, parfait pour :
🍓 Déploiement Raspberry Pi aux côtés de Home Assistant
🔗 Applications web et intégrations personnalisées
🚀 Architecture microservices
📱 Applications mobiles et outils tiers
🤖 Agents IA qui ne supportent pas directement le protocole MCP
Pourquoi utiliser le mode Serveur HTTP ?
Compatibilité universelle : N'importe quel langage ou outil peut se connecter via HTTP
Déploiement direct : Installation directe sur votre Raspberry Pi 3B+ avec Home Assistant
Pas de client MCP requis : Fonctionne avec n'importe quel client HTTP (curl, Postman, navigateurs)
Standard REST API : Intégration facile avec systèmes et workflows existants
Fonctionnement autonome : Service indépendant ne nécessitant pas d'infrastructure MCP
📁 Structure du Projet
🚀 Installation
Options de Démarrage Rapide
🍓 Installation Raspberry Pi (Recommandée)
Installez directement sur votre Raspberry Pi 3B+ avec Home Assistant :
🎯 Optimisé pour Raspberry Pi 3B+ :
✅ Configuration Serveur HTTP : Installe le serveur HTTP autonome pour intégration IA facile
✅ Configuration Interactive : Demande le token et URL Home Assistant pendant l'installation
✅ Service Systemd : Configure automatiquement le service système pour démarrage automatique
✅ Sécurité : Permissions de fichiers appropriées et isolation du service
✅ Port 3002 : API REST HTTP accessible depuis des machines externes
✅ Optimisé Ressources : Déploiement léger adapté au matériel Pi 3B+
✅ Compatible Debian : Testé sur Raspberry Pi OS (basé Debian)
Configuration Système Requise :
Raspberry Pi 3B+ ou plus récent
Raspberry Pi OS (Debian 11+ recommandé)
Home Assistant fonctionnant sur le même Pi ou réseau
Python 3.9+ (installé automatiquement si nécessaire)
Au moins 512MB de RAM disponible
💻 Installation Bureau
Pour le développement ou l'installation à distance :
Prérequis
Python 3.8+
Home Assistant avec API activée
Token d'accès Home Assistant
Installation du serveur
Configuration
Créez un fichier
.env
:
Obtenez votre token Home Assistant :
Allez dans Home Assistant > Profil > Tokens d'accès à long terme
Créez un nouveau token
Copiez-le dans le fichier
.env
Configuration Claude Desktop
Ajoutez ceci à votre configuration Claude Desktop (claude_desktop_config.json
) :
📄 Fichier de configuration complet disponible dans
🤖 Configurations des Services d'IA
Claude Desktop
Ajoutez ceci à votre configuration Claude Desktop (claude_desktop_config.json
) :
LM Studio
Configurez MCP dans LM Studio :
Ouvrez LM Studio
Allez dans Paramètres > Serveurs MCP
Ajoutez un nouveau serveur :
Nom :
homeassistant
Commande :
homeassistant-mcp-server
Variables d'environnement :
Continue.dev (Extension VS Code)
Ajoutez à votre configuration Continue (.continue/config.json
) :
Cursor IDE
Ajoutez à la configuration AI de Cursor :
Ouvrez Cursor IDE
Allez dans Paramètres > IA > Serveurs MCP
Ajoutez la configuration du serveur :
Cline (Extension VS Code)
Configurez dans les paramètres Cline :
OpenWebUI
Pour l'intégration MCP OpenWebUI :
Installez le plugin MCP
Configurez le serveur dans les paramètres :
Intégration Personnalisée
Pour d'autres services compatibles MCP, utilisez ce format standard :
🔧 Notes de Configuration :
Remplacez
votre_token_ici
par votre vrai token Home AssistantMettez à jour l'URL si votre Home Assistant fonctionne sur une autre adresse
Certains services peuvent nécessiter le chemin complet vers l'exécutable
Redémarrez votre service IA après avoir ajouté la configuration
🧪 Tests et Validation
Testez votre installation avec les scripts fournis :
💬 Utilisation
Une fois configuré, vous pouvez demander à Claude :
"Quelles sont mes lumières allumées ?"
"Éteins toutes les lumières du salon"
"Montre-moi la température de mes capteurs"
"Quel est l'historique de mon capteur de température aujourd'hui ?"
"Crée une automatisation pour allumer les lumières au coucher du soleil"
"Génère une alerte quand ma consommation énergétique dépasse 700 kWh"
🛠️ Outils disponibles
Le serveur MCP expose 8 outils pour interagir avec Home Assistant :
📋 Gestion des entités
get_entities
: Liste toutes les entités avec filtrage par domaineget_entity_state
: Récupère l'état détaillé d'une entitéget_history
: Historique d'une entité sur une période donnée
🎮 Contrôle des appareils
call_service
: Appelle un service pour contrôler des appareilsget_services
: Liste tous les services disponibles
🤖 Automatisations (Nouveau !)
create_automation
: Génère des automatisations YAML prêtes à utiliserlist_automations
: Liste toutes les automatisations activestoggle_automation
: Active/désactive une automatisation
💡 Exemples d'automatisations
⚡ Surveillance énergétique
🌅 Éclairage automatique
📅 Notifications programmées
📚 Documentation
Guide de démarrage rapide - Installation et configuration rapide
Architecture - Documentation technique détaillée
Tests - Guide des scripts de test
Exemples - Exemples et configurations
🔧 Développement
Licence
MIT
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Enables AI agents to control and monitor Home Assistant smart home devices through natural language interactions. Supports device control, entity state monitoring, history access, and automation generation with both MCP protocol and standalone HTTP REST API modes.