EDIT : 05/03/2026 - rajout skills homeassistant
EDIT : 07/03/2026 - Modification homassistant MCP avec filtrage des outils intégré + rajout de capacités de raisonnement
EDIT : 13/03/2026 - Modification du MCP HA et de son filtrage / réécriture en streamable HTTP.
Un petit tuto rapide pour qui veut s’installer un bot léger type openclaw pour interagir avec homeassistant.
L’idée est de s’affranchir de la définition de toutes les commandes d’interaction télégram en se reposant sur un LLM qui va interagir avec HA directement en langage naturel.
L’autre intérêt que j’y vois est de permettre, via le LLM et une connexion web, d’aller chercher des événements externes à HA pour déclencher des automatisations (utilisation des skills par exemple)
Le système est assez puissant pour aller créer / modifier des scripts / autom. Il faut être très vigilant et/ou limiter les capacités du bot pour éviter les bétises.
Introduction
Le système repose sur :
ATTENTION : Par défaut le serveur MCP dispose de droits très élevés sur votre HA, ce qui peut créer d’énormes dégâts.
Je vous conseille vivement de passer par un intermédiaire de type MetaMCP ou LiteLLM qui permet de filtrer les droits et limiter les actions a de la lecture seule dans un premier temps.
EDIT 07/03/2026 : Pour éviter toute fausse manoeuvre j’ai modifié l’appel au MCP Homeassistant pour inclure un filtrage par defaut, ne laissant a disposition que des commandes de lecture
Prérequis
On va faire au plus simple :
- Un linux avec un environnement python + astral uv + node.js pour une installation propre, idéalement dans un container isolé ou dans une VM.
- un Token longue durée pour l’identification sur HA : Votre user / Sécurité / Jetons d’accès longue durée / Créer => notez le et conservez le
- Un bot Telegram avec son TOKEN
Toutes l’installation documentee ci-après tourne dans une VM isolée, afin de limiter les risques au maximum. C’est ce qui explique aussi que tout tourne en root sans autre précaution, car tout reste cloisonné dans un système isolé du reste
Mise en oeuvre
Ollama
C’est très simple, il suffit de l’installer avec le script de la doc :
curl -fsSL https://ollama.com/install.sh | sh
le logiciel va s’installer tout seul, vous pouvez verifier son fonctionnement :
root@litellm:/opt# ollama -v
ollama version is 0.17.4
on va profiter du fait que ollama met à dispo des modèles en ligne assez évolués gratuitement (dans une certaine limite de requêtes).
J’utilise kimi-k2.5 qui donne de très bons résultats et permet d’utiliser des « tools », des fonctionnalités fourniées par des serveurs mcp.
Il suffit de lancer :
ollama run kimi-k2.5:cloud
et ollama va vous demander de vous connecter, puis télécharger les « manifest » qui permettent une interaction avec le modèle en ligne.
Vous pouvez tester immédiatement le modele dans le terminal.
Par défaut, Ollama sert les modèles sur l’interface http://127.0.0.1:11434/v1 ou http://localhost:11434/v1
C’est prêt de ce côté.
Nanobot
C’est encore plus simple il suffit de l’installer avec uv :
uv tool install nanobot-ai
on peut verifier que le binaire est bien installé avec which. Dans mon cas je suis isolé dans un container débian, ça atterit bien dans le .local/bin de l’user root.
root@litellm:/opt# which nanobot
/root/.local/bin/nanobot
une fois que c’est fait on peut configurer le bot :
nanobot onboard
et ça va vous créer les fichiers de configuration dans un sous-dossier .nanobot votre dossier user :
root@litellm:~/.nanobot# ls
config.json cron history workspace
root@litellm:~/.nanobot# pwd
/root/.nanobot
Le fichier important à ce stade est le fichier config.json qu’on va éditer :
Les points à modifier sont :
Dans la section « agents » :
"model": "kimi-k2.5:cloud",
Dans la section « telegram » :
"enabled": true,
"token": "Le TOKEN de votre BOT",
"allowFrom": [
"votre propre ID sans le @"
],
Il est impératif de spécifier dans le ``allowFrom" qui est autorisé à parler au bot, pour limiter les possibilités d’attaque.
Votre ID est dans votre profil @IDIDIDIDIDIDIDIDIDIDIDIDIDIDIDID :

Dans la section « providers » :
"vllm": {
"apiKey": "ollama",
"apiBase": "http://localhost:11434/v1",
"extraHeaders": null
il n’y a pas de provider « ollama » préconfiguré, on utilise l’entrée vllm qui fournit le couplage nécessaire.
Dans la section « tools » :
"restrictToWorkspace": true,
pour empêcher le bot d’exécuter des choses hors de son espace de travail.
Voilà, c’est fini pour le moment, on peut lancer le couplage avec telegram pour tester :
nanobot gateway
si tout est correctement paramétré, nanobot va se connecter à telegram et vous pourrez dialoguer directement avec lui a travers votre bot telegram.
Utiliser ollama est ici un parti pris car il met a dispo des modèles performants avec des token gratuits. On peut bien évidemment mettre le provider et le modèle qu’on souhaite, il faut juste que le modèle supporte les « tools » pour pouvoir appeler les serveurs mcp
Homeassistant MCP
Le serveur MCP est une interface qui va permettre au LLM d’interagir avec homeassistant en créant des « tools » qui seront exploitables par le modèle.
ATTENTION : je vous alerte a nouveau sur le fait que le serveur MCP utilisé ici dispose de droits très étendus sur HA et peut provoquer des dégâts irréversibles. Il existe d’autres serveurs MCP pour homeassistant, dont un officiel, qui dispose de beaucoup moins de droits mais du coup qui permet de faire moins de choses.
Pour limiter les risques j’ai introduit un filtrage des outils disponibles, qui restreient le nombre d’outils usilisables par le bot, en le limitant a des fonctions de lecture seule.
Pour ce faire on va indiquer au bot comment se connecter au serveur MCP et utiliser ces outils.
On va utiliser ici le serveur MCP Homeassistaant NON OFFICIEL
Pour être carré sur le fonctionnement du MCP et le maintenir persistant (si on souhaite le solliciter par un autre LLM par exemple), on va le faire tourner “HTTP STREAMABLE”, comme un serveur dédié :
Pour se faire il faut définir les variables d’environnement et lancer le serveur :
export HOMEASSISTANT_URL=http:://IP:PORT
export HOMEASSISTANT_TOKEN=votre_token_HA
uvx --from ha-mcp@latest ha-mcp-web
ça va lancer un serveeur qui tourne sur http://IP:8086/mcp et qui ecoute les connexions des LLM. Idealement il vous faudra lancer ces commandes en service systemd pour que ça tourne en taches de fond.
A la fin du fichier config.json, dans la section « tools » il y a une ligne inutilisée : "mcpServers": {}. On va la modifier en lui injectant le serveur mcp chargé par uv :
"ha-strict": {
"command": "npx",
"args": [
"-y",
"@respawn-app/tool-filter-mcp",
"--upstream",
"http://localhost:8086/mcp",
"--deny",
"ha_bulk_control,ha_config_set_automation,ha_config_remove_automation,ha_config_set_script,ha_config_remove_script,ha_config_set_helper,ha_config_remove_helper,ha_config_set_dashboard,ha_config_delete_dashboard,ha_config_set_area,ha_config_remove_area,ha_config_set_floor,ha_config_remove_floor,ha_config_set_label,ha_config_remove_label,ha_manage_entity_labels,ha_set_zone,ha_remove_zone,ha_config_set_group,ha_config_remove_group,ha_config_remove_calendar_event,ha_config_set_calendar_event,ha_remove_todo_item,ha_import_blueprint,ha_remove_device,ha_rename_entity,ha_restart,ha_reload_core,ha_backup_create,ha_backup_restore,ha_eval_template"
]
}
La liste complète des outils est disponible sur le github. Vérifiez bien ce que que vous autorisez, vous pouvez en ajouter d’autres dans la liste
on redémarre le bot nanobot gateway et normalement il va vous ister la totalité des outils dont il dispose.
Le chainage est en gros le suivant : Telegram <=> bot <=> Ollama <=> MCP <=> HA
A partir de maintenant il faut être très prudent dans vos requètes, faire une sauvegarde de votre installation.
Skills
Pour compléter les tools mis à disposition par le serveur MCP, on va lui adjoindre une « skill » complémentaire dédiée.
L’opération est assez simple, il faut recupérer l’intégralité du dossier :
https://github.com/homeassistant-ai/skills/tree/main/skills/home-assistant-best-practices
et le positionner dans le workspace de votre bot, dans mon cas /root/.nanobot/workspace/skills
Une fois les fichiers et sous-dossiers copiés, on redemarre le bot avec nanobot gateway et il suffit de lui demander d’intégrer la skill pour qu’il la prenne en compte :
Ajout de capacités de raisonnement
De la même façon que l’accès à HA est géré par un serveur MCP, l’ajout de capacités de raisonnement est aussi gérée par un serveur MCP dédié.
Il suffit de la rajouter dans la configuration du bot, avant ou après le MCP pour Homeassistant :
"mcpServers": {
"sequential-thinking": {
"command": "uvx",
"args": [
"--from",
"sequential-thinking[all] @ git+https://github.com/arben-adm/mcp-sequential-thinking",
"mcp-sequential-thinking"
]
},
"ha-strict": {
"command": "npx",
"args": [
"-y",
"@respawn-app/tool-filter-mcp",
"--upstream",
"http://localhost:8086/mcp",
"--deny",
"ha_bulk_control,ha_config_set_automation,ha_config_remove_automation,ha_config_set_script,ha_config_remove_script,ha_config_set_helper,ha_config_remove_helper,ha_config_set_dashboard,ha_config_delete_dashboard,ha_config_set_area,ha_config_remove_area,ha_config_set_floor,ha_config_remove_floor,ha_config_set_label,ha_config_remove_label,ha_manage_entity_labels,ha_set_zone,ha_remove_zone,ha_config_set_group,ha_config_remove_group,ha_config_remove_calendar_event,ha_config_set_calendar_event,ha_remove_todo_item,ha_import_blueprint,ha_remove_device,ha_rename_entity,ha_restart,ha_reload_core,ha_backup_create,ha_backup_restore,ha_eval_template"
]
}
Il suffit de demander au d’integrer les outils pour construire un raisonnement :
Perspectives / compléments
Pour rendre le système persistant, et exploitable il faudra par la suite :
- Définir un service systemd qui relance le bot comme une tâche d’arrière plan
- jouer avec les réglages fins du nanobot qui se font via les fichiers
*.mdpresents dans le dossierworkspace - Ajouter d’autres serveurs MCP et skills pour compléter les outils disponibles
- gérer la mémoire a long terme pour permettre au bot d’apprendre de ses erreurs



