/ Annuaire / Playground / Home Assistant MCP
● Communauté homeassistant-ai 🔑 Nécessite votre clé

Home Assistant MCP

par homeassistant-ai · homeassistant-ai/ha-mcp

Parlez à votre maison. 87 outils couvrent le contrôle des appareils, les automatisations, les tableaux de bord, l'énergie, l'historique — Claude devient votre expert Home Assistant.

ha-mcp encapsule les API REST et WebSocket de Home Assistant sous forme d'outils MCP. Au-delà d'allumer des lumières, il peut créer des automatisations, éditer des tableaux de bord, interroger l'historique/statistiques, gérer les add-ons HACS et explorer le registre d'entités — permettant à Claude à la fois de diagnostiquer et de remodeler votre maison connectée.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

ha-mcp.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ha-mcp": {
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ha-mcp": {
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ha-mcp": {
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ha-mcp": {
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ha-mcp",
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "ha-mcp": {
      "command": {
        "path": "uvx",
        "args": [
          "ha-mcp"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add ha-mcp -- uvx ha-mcp

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : Home Assistant MCP

Contrôler des appareils sans mémoriser les IDs d'entité

👤 Toute personne avec une installation Home Assistant bien peuplée ⏱ ~5 min beginner

Quand l'utiliser : Vous savez ce que vous voulez («baisser la cuisine à 30%») mais pas l'entity_id exact.

Prérequis
  • Token d'accès longue durée Home Assistant — Profil → Sécurité → Créer un token ; enregistrer comme variable d'env HA_TOKEN
  • HA_URL défini — Définir HA_URL=http://homeassistant.local:8123 (ou votre URL)
Déroulement
  1. Trouver l'entité
    Use ha-mcp. Find entities matching 'kitchen light'. Show entity_id, area, and current state.✓ Copié
    → 1–3 entités candidates avec état actuel
  2. Appliquer le changement
    Set kitchen ceiling lights to 30% brightness, warm white.✓ Copié
    → Appel de service réussi ; état confirmé

Résultat : Appareils contrôlés par intention, pas par mémorisation.

Pièges
  • Plusieurs entités correspondent — mauvaise entité basculée — Toujours confirmer la liste entity_id avant une action en masse ; utiliser les filtres de zone

Créer une automatisation complexe depuis une description en langage naturel

👤 Utilisateurs HA qui évitent le YAML ⏱ ~15 min intermediate

Quand l'utiliser : Vous voulez «si je quitte la maison, qu'il fait nuit et que la gamelle du chat est vide, envoyer une notification» — sans écrire de YAML.

Déroulement
  1. Décrire l'intention
    Use ha-mcp. List my person tracker, sun, and cat feeder entities so we can wire an automation.✓ Copié
    → Entités pertinentes avec schéma d'état
  2. Générer le YAML
    Create automation 'cat-feeder-sundown-alert' with that logic. Don't deploy yet — show me the YAML.✓ Copié
    → YAML d'automatisation HA valide dans le chat
  3. Déployer + tracer
    Deploy it. Then trigger it manually and show the trace so I can verify the conditions fired.✓ Copié
    → Automatisation dans l'UI ; la trace montre les branches attendues

Résultat : Automatisation fonctionnelle, sans édition manuelle de /config/automations.yaml.

Pièges
  • Automatisation déployée mais ne se déclenche jamais — faute de frappe dans le nom d'entité — Utiliser l'outil trace ; vérifier que l'entity_id correspond exactement

Investiguer un pic de consommation électrique via historique + statistiques

👤 Propriétaires de maison connectée avec tableau de bord énergie HA ⏱ ~25 min intermediate

Quand l'utiliser : Votre facture a augmenté et vous voulez savoir ce qui a changé.

Déroulement
  1. Récupérer les totaux
    Use ha-mcp. Compare total kWh per circuit for last 30 days vs the prior 30. Flag deltas >20%.✓ Copié
    → Tableau par circuit avec deltas mis en évidence
  2. Analyser le circuit problématique
    For the worst-offending circuit, plot hourly usage for the last 7 days and identify the new pattern.✓ Copié
    → Profil horaire + observation verbale de l'anomalie
  3. Identifier l'appareil responsable
    Which entity on that circuit changed behavior? Cross-reference automations that touch it.✓ Copié
    → Appareil spécifique + automatisation identifiés

Résultat : Réponse concrète «le chargeur VE a adopté un nouveau planning», pas une vague suspicion.

Pièges
  • Les statistiques ne valent que votre couverture de capteurs — Reconnaître les lacunes ; suggérer où ajouter de la supervision

Configurer un «mode vacances» touchant lumières, serrures, volets et notifications

👤 Sur le point de partir en voyage ⏱ ~30 min intermediate

Quand l'utiliser : Vous partez dans une heure et voulez simuler une présence + comportement en mode absence.

Déroulement
  1. Inventorier les entités concernées
    Use ha-mcp. List lights in living areas, all door locks, all blinds. Note which are HA-controllable.✓ Copié
    → Liste d'entités catégorisées avec indicateur de contrôlabilité
  2. Créer le script
    Create a script 'vacation_mode_on' that arms locks, randomizes evening lights 18:30–22:30, sets blinds to 50%, and pauses cleaning automations.✓ Copié
    → Script dans HA ; exécution manuelle réussie
  3. Ajouter un déclencheur
    Bind it to an input_boolean 'vacation_mode' so I can toggle from the dashboard.✓ Copié
    → Bascule sur le tableau de bord ; l'activer exécute le script

Résultat : Mode vacances en un clic ; vous partez avec le tableau de bord armé.

Pièges
  • Verrouillage automatique des serrures avec des personnes à l'intérieur — Ajouter une vérification de présence ; ne jamais verrouiller quand quelqu'un est à la maison

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

ha-mcp + filesystem

Sauvegarder automations.yaml + scripts.yaml dans git

Export all automations and scripts via ha-mcp, write to ./ha-config/, commit.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
search_entities query: str, area?, domain? Première étape dans presque chaque flux — trouver l'entity_id 1 appel API HA
call_service domain, service, target, data Appliquer tout changement d'appareil ou de scène 1 appel API
create_automation yaml_or_object Créer des automatisations par programmation 1 appel API
get_history entity_id, start, end Récupérer l'historique d'état pour analyse 1 appel API
get_statistics statistic_id, period (5min|hour|day|month) Données agrégées long terme (énergie, climat) 1 appel API
trace_automation automation_id, run_id? Déboguer pourquoi une automatisation s'est ou ne s'est pas déclenchée 1 appel API

Coût et limites

Coût d'exécution

Quota d'API
Pas de quota strict — l'API REST est locale
Tokens par appel
Variable ; le registre d'entités peut être très lourd si vous ne filtrez pas
Monétaire
Gratuit (open source)
Astuce
Toujours utiliser search_entities avec des filtres — les dumps complets du registre sont coûteux en tokens

Sécurité

Permissions, secrets, portée

Portées minimales : Long-Lived Access Token (portée HA complète)
Stockage des identifiants : Variable d'env HA_TOKEN
Sortie de données : Uniquement vers votre URL d'instance HA — idéalement sur réseau local
Ne jamais accorder : Token HA à tout LLM cloud en lequel vous n'avez pas confiance — cela contrôle l'accès physique (serrures, garage)

Dépannage

Erreurs courantes et correctifs

Impossible de se connecter à HA

Vérifier que HA_URL est accessible depuis l'endroit où le MCP s'exécute ; vérifier trusted_proxies si derrière un reverse proxy

Vérifier : curl $HA_URL/api/ -H 'Authorization: Bearer $HA_TOKEN'
401 Unauthorized

Token expiré ou révoqué — générer un nouveau token longue durée dans le profil

L'appel de service retourne 400

Signature de service incorrecte — utiliser le panneau des outils développeurs pour vérifier le schéma, puis réessayer

Automatisation déployée mais ne se déclenche pas

Utiliser trace_automation pour voir quelle condition a échoué ; cas courant : faute de frappe dans entity_id ou condition sun avec mauvais fuseau horaire

Alternatives

Home Assistant MCP vs autres

AlternativeQuand l'utiliserCompromis
Assistants vocaux natifs Home Assistant (Piper/Whisper)Vous voulez le contrôle vocal sans LLM cloud dans la chaîneMoins de flexibilité en langage naturel ; configuration plus lourde
ha-mcp-server (legacy/forks)Votre fork dispose de fonctionnalités absentes iciSurface réduite ; celui-ci a 87 outils et une maintenance active

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills