Skip to main content
Glama

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 von kdkavanagh/esphome-mcp bei und schreibt den Transport für das neue Protokoll neu. Details siehe DECISIONS.md.

Dashboard-Versionen. Der Device Builder wird aus esphome/device-builder in einem eigenen Release-Rhythmus ausgeliefert, daher ist seine server_version unabhä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 die docs/API.md und models/devices.py dieses Repos.

Upgrade von 2026.06.0? Auf ESPHome 2026.7 oder neuer meldete es jedes Gerät als unknown ohne 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

list_devices / list_device_names

Konfigurierte Geräte auflisten

check_device_update

Ist ein Firmware-Update verfügbar?

get_device_status

Online/Offline + Adresse

get_device_version

Installierte vs. aktuelle Version

get_device_configuration

YAML eines Geräts lesen

edit_device_configuration

YAML speichern (danach automatisch validieren)

validate_device_configuration

Vollständige ESPHome-Validierung, ohne Speichern

migrate_device_configuration

Alte YAML-Schlüssel für das installierte ESPHome umschreiben (standardmäßig Trockenlauf)

search_device_configurations

YAML aller Geräte nach einem String durchsuchen

get_device_logs

Aktuelle Gerätelogs streamen

troubleshoot_device

Live-Konnektivitätstest (DNS, mDNS, Ping)

decode_device_backtrace

Einen Crash-Backtrace in Quellcode-Stellen dekodieren

get_esphome_schema

Komponenten-Schema für eine Version

install_device_configuration

Kompilieren + OTA-Flashen (destruktiv)

update_device

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_configuration und update_device melden das als COMPILED, 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

ESPHOME_DASHBOARD_URL

ja

Basis-URL des Dashboards, z. B. https://esphome.example.com oder http://host:6052. REST- und WebSocket-URLs werden daraus abgeleitet.

ESPHOME_DASHBOARD_USERNAME

nein

Dashboard-Benutzer. Erforderlich, wenn das Dashboard requires_auth=true meldet – ohne ihn schlägt jeder Befehl mit not_authenticated fehl.

ESPHOME_DASHBOARD_PASSWORD

nein

Dashboard-Passwort.

LOG_LEVEL

nein

DEBUG/INFO/WARNING/ERROR (Standard INFO).

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:latest

MCP-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 live

Danksagungen

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.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
1hResponse time
4wRelease cycle
3Releases (12mo)
Commit activity

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

View all related MCP servers

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…

View all MCP Connectors

Latest Blog Posts

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