ESPHome MCP
ESPHome MCP
Ein MCP-Server für das ESPHome 2026.6+ „Device Builder" Dashboard. Er ermöglicht einem MCP-Client (Claude usw.), Geräte aufzulisten, Geräte-YAML zu lesen/bearbeiten/validieren, Logs zu streamen und Firmware zu kompilieren/flashen – und spricht dabei das neue WebSocket-Kommandoprotokoll des Dashboards.
Warum dieser Fork existiert. ESPHome 2026.6 hat die alte HTTP-API des Dashboards durch ein einziges WebSocket-Kommandoprotokoll ersetzt. Die vorhandenen MCP-Server (
kdkavanagh/esphome-mcp,b2un0/esphome-mcp,jrigling/esphome-mcp-integration) sprechen alle das alte Protokoll, daher liefern Konfig-Lesen/Bearbeiten/Validieren gegen einen 2026.6-Server Müll. Dieses Projekt behält die saubere Tool-Schicht vonkdkavanagh/esphome-mcpbei und schreibt den Transport für das neue Protokoll neu. Details sieheDECISIONS.md.
Dashboard-Versionen. Der Device Builder wird aus
esphome/device-builderin einem eigenen Release-Rhythmus ausgeliefert, daher ist seineserver_versionunabhängig von der ESPHome-Version – 2026.8.0 enthält Device Builder 1.12.x, 2026.7.3 enthält 1.7.0. Dieser Server ist gegen das 1.12.x-Protokoll geschrieben und fällt auf die Pre-1.5.0-Geräteform zurück, wo sie abweichen. Seine Protokollreferenz sind diedocs/API.mdundmodels/devices.pydieses Repos.
Upgrade von 2026.06.0? Auf ESPHome 2026.7 oder neuer meldete es jedes Gerät als
unknownohne installierte Version und konnte eine erfolgreiche Installation für Firmware melden, die es nie geflasht hat. Beides ist in 2026.08.0 behoben – siehe Changelog.
Werkzeuge
Tool | Was es tut |
| Konfigurierte Geräte auflisten |
| Ist ein Firmware-Update verfügbar? |
| Online/Offline + Adresse |
| Installierte vs. aktuelle Version |
| YAML eines Geräts lesen |
| YAML speichern (danach automatisch validieren) |
| Vollständige ESPHome-Validierung, ohne Speichern |
| Alte YAML-Schlüssel für das installierte ESPHome umschreiben (standardmäßig Trockenlauf) |
| YAML aller Geräte nach einem String durchsuchen |
| Aktuelle Gerätelogs streamen |
| Live-Konnektivitätstest (DNS, mDNS, Ping) |
| Einen Crash-Backtrace in Quellcode-Stellen dekodieren |
| Komponenten-Schema für eine Version |
| Kompilieren + OTA-Flashen (destruktiv) |
| Neu kompilieren + OTA-Flashen auf den neuesten Stand (destruktiv) |
Offline-Geräte. Wenn ein Gerät offline ist, kompiliert das Dashboard die Firmware und rüstet sie so, dass sie beim nächsten Check-in des Geräts geflasht wird.
install_device_configurationundupdate_devicemelden das alsCOMPILED, FLASH DEFERRED– nicht als Erfolg.
Related MCP server: websocat-mcp
Konfiguration
Die Konfiguration erfolgt über Umgebungsvariablen (12-Faktor). Kopieren Sie .env.example in .env:
Variable | Erforderlich | Beschreibung |
| ja | Basis-URL des Dashboards, z. B. |
| nein | Dashboard-Benutzer. Erforderlich, wenn das Dashboard |
| nein | Dashboard-Passwort. |
| nein |
|
Mit Docker ausführen
cp .env.example .env # then edit ESPHOME_DASHBOARD_URL
docker compose up -d --build
docker compose ps # STATUS should become "healthy"Der Server lauscht auf :8080 und stellt MCP über Streamable HTTP unter http://<host>:8080/mcp bereit. Der Container-HEALTHCHECK führt einen vollständigen MCP-Handshake durch und ruft list_device_names auf, sodass er nur dann als gesund meldet, wenn das Dashboard tatsächlich erreichbar ist.
Sobald das Registry-Image veröffentlicht ist, pinnen Sie es in compose.yaml:
image: ghcr.io/loryanstrant/esphome-mcp:latestMCP-Client verbinden
Richten Sie Ihren Client auf den Streamable-HTTP-Endpunkt:
{
"mcpServers": {
"esphome": { "type": "http", "url": "http://<host>:8080/mcp" }
}
}Für einen Stdio-Client führen Sie esphome-mcp (anstelle des Web-Einstiegspunkts) mit denselben Umgebungsvariablen aus.
Entwickeln
make install-dev # venv + deps
make check # lint + format-check + typecheck + test
# live tests against a real 2026.6 dashboard:
ESPHOME_DASHBOARD_URL=https://esphome.example.com .venv/bin/pytest -m liveDanksagungen
Dieses Projekt baut auf der Arbeit anderer auf (alle MIT-lizenziert):
kdkavanagh/esphome-mcp — der ursprüngliche ESPHome-MCP-Server. Dieser Fork behält seine FastMCP-Tool-Schicht, Schema-Behandlung, Paketierung und CI fast wörtlich bei; die Transport-Neufassung ist die Hauptänderung hier.
b2un0/esphome-mcp — für die Veröffentlichung eines vorgebauten Images und das Aufdecken der Healthcheck-/Konfig-Tool-Fehler, die diese Arbeit motiviert haben.
jrigling/esphome-mcp-integration — eine Home-Assistant-Integration, die beim Abbilden des ESPHome-Dashboard-Protokolls herangezogen wurde.
Das neue 2026.6-WebSocket-Protokoll wurde aus dem Frontend des ESPHome Device Builders per Reverse Engineering gewonnen und gegen ein Live-2026.6-Dashboard verifiziert.
Lizenz
MIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for full Home Assistant control, enabling AI agents to manage dashboards, automations, files, apps, entities, and more via REST API, WebSocket, and SSH.66116MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for WebSocket operations, enabling connect, send, receive, and manage WebSocket connections and servers.MIT
- FlicenseNot gradedqualityDmaintenanceEnables monitoring and management of tasks via WebSocket events and authorization requests through MCP tools.
- FlicenseNot gradedqualityBmaintenanceEnables control of external Home Assistant devices via an MCP control layer and frontend system page.
Related MCP Connectors
MCP server wrapping the Tesla Fleet API and TeslaMate API
Remote MCP server for RunComfy Serverless API (ComfyUI): deployments and async inference.
A TypeScript MCP server for Home Assistant, enabling programmatic management of entities, automati…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/loryanstrant/ESPHome-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server