AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

ESPHome MCP

mcp-loryanstrant-esphome-mcp · by loryanstrant

A MCP server for ESPHome that supports the new Device Builder functionality released in build 2026.6

No reviews yet
0 installs
55 views
0.0% view→install

Install

$ agentstack add mcp-loryanstrant-esphome-mcp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-loryanstrant-esphome-mcp)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of ESPHome MCP? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

ESPHome MCP

An MCP server for the ESPHome 2026.6+ "Device Builder" dashboard. It lets an MCP client (Claude, etc.) list devices, read/edit/validate device YAML, stream logs, and compile/flash firmware — speaking the dashboard's new WebSocket command protocol.

> Why this fork exists. ESPHome 2026.6 replaced the dashboard's legacy HTTP API > with a single WebSocket command protocol. The existing MCP servers > (kdkavanagh/esphome-mcp, > b2un0/esphome-mcp, > jrigling/esphome-mcp-integration) > all speak the old protocol, so config read/edit/validate return garbage against a 2026.6 > server. This project keeps the clean tool layer from kdkavanagh/esphome-mcp and rewrites > the transport for the new protocol. See [DECISIONS.md](DECISIONS.md) for the details.

Tools

| Tool | What it does | | --- | --- | | list_devices / list_device_names | Inventory configured devices | | check_device_update | Is a firmware update available? | | get_device_status | Online/offline + address | | get_device_version | Deployed vs current version | | get_device_configuration | Read a device's YAML | | edit_device_configuration | Save YAML (then auto-validate) | | validate_device_configuration | Full ESPHome validation, no save | | get_device_logs | Stream recent device logs | | get_esphome_schema | Component schema for a version | | install_device_configuration | Compile + OTA flash (destructive) | | update_device | Recompile + OTA flash to latest (destructive) |

Configuration

Config is via environment variables (12-factor). Copy [.env.example](.env.example) to .env:

| Variable | Required | Description | | --- | --- | --- | | ESPHOME_DASHBOARD_URL | yes | Dashboard base URL, e.g. https://esphome.example.com or http://host:6052. REST and WebSocket URLs are derived from it. | | ESPHOME_DASHBOARD_USERNAME | no | Basic Auth user (only if the dashboard reports requires_auth=true). | | ESPHOME_DASHBOARD_PASSWORD | no | Basic Auth password. | | LOG_LEVEL | no | DEBUG/INFO/WARNING/ERROR (default INFO). |

Run with Docker

cp .env.example .env       # then edit ESPHOME_DASHBOARD_URL
docker compose up -d --build
docker compose ps          # STATUS should become "healthy"

The server listens on :8080 and serves MCP over Streamable HTTP at http://:8080/mcp. The container HEALTHCHECK performs a full MCP handshake and calls list_device_names, so it only reports healthy when the dashboard is actually reachable.

Once the registry image is published, pin it in compose.yaml:

image: ghcr.io/loryanstrant/esphome-mcp:latest

Connect an MCP client

Point your client at the Streamable HTTP endpoint:

{
  "mcpServers": {
    "esphome": { "type": "http", "url": "http://:8080/mcp" }
  }
}

For a stdio client, run esphome-mcp (instead of the web entrypoint) with the same env.

Develop

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

Credits

This project stands on the work of others (all MIT-licensed):

ESPHome MCP server. This fork keeps its FastMCP tool layer, schema handling, packaging and CI almost verbatim; the transport rewrite is the main change here.

image and surfacing the healthcheck / config-tool breakage that motivated this work.

— a Home Assistant integration referenced while mapping the ESPHome dashboard protocol.

The new 2026.6 WebSocket protocol was reverse-engineered from the ESPHome Device Builder front-end and verified against a live 2026.6 dashboard.

License

[MIT](LICENSE).

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.