ESPHome MCP
ESPHome MCP
ESPHome 2026.6+ "Device Builder" ダッシュボード向けの MCP サーバーです。MCP クライアント(Claude など)から、デバイスの一覧表示、デバイス YAML の読み取り・編集・検証、ログのストリーミング、ファームウェアのコンパイル/フラッシュが行えます。ダッシュボードの新しい WebSocket コマンドプロトコルに対応しています。
このフォークが存在する理由。 ESPHome 2026.6 は、ダッシュボードの従来の HTTP API を単一の WebSocket コマンドプロトコルに置き換えました。既存の MCP サーバー(
kdkavanagh/esphome-mcp、b2un0/esphome-mcp、jrigling/esphome-mcp-integration)はすべて旧プロトコルを使用しているため、2026.6 サーバーに対して設定の読み取り/編集/検証を行うと無意味な結果が返ります。このプロジェクトはkdkavanagh/esphome-mcpのクリーンなツール層をほぼそのまま維持し、新しいプロトコル用にトランスポートを書き直したものです。詳細はDECISIONS.mdを参照してください。
ダッシュボードのバージョンについて。 Device Builder は
esphome/device-builderから独自のリリースサイクルで提供されるため、そのserver_versionは ESPHome のバージョンとは独立しています。2026.8.0 には Device Builder 1.12.x が、2026.7.3 には 1.7.0 が含まれます。このサーバーは 1.12.x プロトコルを対象に書かれており、両者に差異がある場合は 1.5.0 より前のデバイス形状にフォールバックします。プロトコルのリファレンスは、そのリポジトリのdocs/API.mdとmodels/devices.pyです。
2026.06.0 からアップグレードしますか? ESPHome 2026.7 以降では、すべてのデバイスがデプロイ済みバージョンなしの
unknownとして報告され、実際にはフラッシュしていないファームウェアのインストールが成功したと報告されることがありました。どちらも 2026.08.0 で修正されています。変更ログ を参照してください。
ツール
ツール | 説明 |
| 設定済みデバイスの一覧を取得 |
| ファームウェアの更新が利用可能か確認 |
| オンライン/オフライン + アドレス |
| デプロイ済みバージョンと現在のバージョン |
| デバイスの YAML を読み取り |
| YAML を保存(その後自動検証) |
| 保存なしで ESPHome の完全な検証を実行 |
| インストール済み ESPHome 向けにレガシー YAML キーを書き換え(デフォルトはドライラン) |
| すべてのデバイスの YAML から文字列を検索 |
| 最近のデバイスログをストリーミング |
| ライブ接続プローブ(DNS、mDNS、ping) |
| クラッシュのバックトレースをソースの場所にデコード |
| バージョンに対応するコンポーネントスキーマ |
| コンパイル + OTA フラッシュ(破壊的) |
| 再コンパイル + 最新版への OTA フラッシュ(破壊的) |
オフラインデバイスについて。 デバイスがオフラインの場合、ダッシュボードはファームウェアをコンパイルし、デバイスが次にチェックインしたときにフラッシュされるよう準備します。
install_device_configurationとupdate_deviceはこれを成功ではなくCOMPILED, FLASH DEFERREDとして報告します。
Related MCP server: Home Assistant MCP Control
設定
設定は環境変数(12-factor)で行います。.env.example を .env にコピーしてください:
変数 | 必須 | 説明 |
| はい | ダッシュボードのベース URL(例: |
| いいえ | ダッシュボードのユーザー。ダッシュボードが |
| いいえ | ダッシュボードのパスワード。 |
| いいえ |
|
Docker で実行する
cp .env.example .env # then edit ESPHOME_DASHBOARD_URL
docker compose up -d --build
docker compose ps # STATUS should become "healthy"サーバーは :8080 で待ち受け、http://<host>:8080/mcp で Streamable HTTP 経由の MCP を提供します。コンテナの HEALTHCHECK は完全な MCP ハンドシェイクを実行して list_device_names を呼び出すため、ダッシュボードに実際に到達できる場合にのみ healthy と報告します。
レジストリイメージが公開されたら、compose.yaml で固定してください:
image: ghcr.io/loryanstrant/esphome-mcp:latestMCP クライアントを接続する
クライアントを Streamable HTTP エンドポイントに向けてください:
{
"mcpServers": {
"esphome": { "type": "http", "url": "http://<host>:8080/mcp" }
}
}stdio クライアントの場合は、同じ環境変数で(Web エントリポイントの代わりに)esphome-mcp を実行します。
開発
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クレジット
このプロジェクトは、他の人々の成果(すべて MIT ライセンス)の上に成り立っています:
kdkavanagh/esphome-mcp — 元の ESPHome MCP サーバー。このフォークは、その FastMCP ツール層、スキーマ処理、パッケージング、CI をほぼそのまま維持しています。主な変更点はトランスポートの書き直しです。
b2un0/esphome-mcp — プリビルドイメージを公開し、この作業の動機となったヘルスチェック/設定ツールの不具合を明らかにしてくれたことに対して。
jrigling/esphome-mcp-integration — ESPHome ダッシュボードプロトコルのマッピング中に参照した Home Assistant インテグレーション。
新しい 2026.6 WebSocket プロトコルは、ESPHome Device Builder のフロントエンドからリバースエンジニアリングされ、実際の 2026.6 ダッシュボードに対して検証されました。
ライセンス
MIT。
This server cannot be deployed
Maintenance
Related MCP Connectors
Official MCP for Bambu print farms, AMS, queue. Prefer over SimplyPrint/OctoPrint.
MCP server wrapping the Tesla Fleet API and TeslaMate API
A TypeScript MCP server for Home Assistant, enabling programmatic management of entities, automati…
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server for full Home Assistant control, enabling AI agents to manage dashboards, automations, files, apps, entities, and more via REST API, WebSocket, and SSH.6696 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables control of external Home Assistant devices via an MCP control layer and frontend system page.-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to manage ESPHome devices by listing, inspecting, editing, validating, compiling, and flashing firmware over-the-air via the ESPHome WebSocket API.17MIT
- FlicenseNot gradedqualityAmaintenanceEnables secure remote control of Home Assistant and Life Dashboard/DSH via MCP, supporting entity state queries, whitelisted entity/scene control, lifecycle overview reading, DSH workspace summaries, and follow-up sending.1-