ESPHome MCP
ESPHome MCP
Un servidor MCP para el panel ESPHome 2026.6+ "Device Builder". Permite que un cliente MCP (Claude, etc.) liste dispositivos, lea/edite/valide el YAML de los dispositivos, transmita registros y compile/grabe firmware, usando el nuevo protocolo de comandos WebSocket del panel.
Por qué existe este fork. ESPHome 2026.6 reemplazó la API HTTP heredada del panel por un único protocolo de comandos WebSocket. Los servidores MCP existentes (
kdkavanagh/esphome-mcp,b2un0/esphome-mcp,jrigling/esphome-mcp-integration) hablan todos el protocolo antiguo, por lo que leer/editar/validar la configuración devuelve basura contra un servidor 2026.6. Este proyecto conserva la capa de herramientas limpia dekdkavanagh/esphome-mcpy reescribe el transporte para el nuevo protocolo. ConsultaDECISIONS.mdpara los detalles.
Versiones del panel. Device Builder se distribuye desde
esphome/device-buildercon su propio ritmo de lanzamiento, por lo que suserver_versiones independiente de la versión de ESPHome: 2026.8.0 incluye Device Builder 1.12.x, 2026.7.3 incluye 1.7.0. Este servidor está escrito para el protocolo 1.12.x y recurre a la forma de dispositivo anterior a la 1.5.0 cuando difieren. Su referencia de protocolo sondocs/API.mdymodels/devices.pyde ese repositorio.
¿Actualizando desde 2026.06.0? En ESPHome 2026.7 o superior informaba de todos los dispositivos como
unknownsin versión desplegada, y podía informar de una instalación correcta para firmware que nunca grabó. Ambos están corregidos en 2026.08.0 — consulta el registro de cambios.
Herramientas
Herramienta | Qué hace |
| Inventariar los dispositivos configurados |
| ¿Hay una actualización de firmware disponible? |
| En línea/desconectado + dirección |
| Versión desplegada vs. actual |
| Leer el YAML de un dispositivo |
| Guardar YAML (y luego validar automáticamente) |
| Validación completa de ESPHome, sin guardar |
| Reescribir claves YAML heredadas para el ESPHome instalado (prueba en seco por defecto) |
| Buscar una cadena en el YAML de todos los dispositivos |
| Transmitir registros recientes del dispositivo |
| Sonda de conectividad en directo (DNS, mDNS, ping) |
| Decodificar un backtrace de fallo en ubicaciones de código fuente |
| Esquema de componentes para una versión |
| Compilar + grabar por OTA (destructivo) |
| Recompilar + grabar por OTA a la última versión (destructivo) |
Dispositivos sin conexión. Si un dispositivo está sin conexión, el panel compila el firmware y lo prepara para grabarlo en la próxima conexión del dispositivo.
install_device_configurationyupdate_devicelo informan comoCOMPILED, FLASH DEFERRED, no como éxito.
Related MCP server: websocat-mcp
Configuración
La configuración se realiza mediante variables de entorno (12 factores). Copia .env.example a .env:
Variable | Obligatoria | Descripción |
| sí | URL base del panel, p. ej. |
| no | Usuario del panel. Obligatorio si el panel informa de |
| no | Contraseña del panel. |
| no |
|
Ejecutar con Docker
cp .env.example .env # then edit ESPHOME_DASHBOARD_URL
docker compose up -d --build
docker compose ps # STATUS should become "healthy"El servidor escucha en :8080 y sirve MCP a través de Streamable HTTP en http://<host>:8080/mcp. El HEALTHCHECK del contenedor realiza un handshake MCP completo y llama a list_device_names, por lo que solo informa de estado saludable cuando el panel es realmente accesible.
Una vez publicada la imagen del registro, fíjala en compose.yaml:
image: ghcr.io/loryanstrant/esphome-mcp:latestConectar un cliente MCP
Apunta tu cliente al endpoint de Streamable HTTP:
{
"mcpServers": {
"esphome": { "type": "http", "url": "http://<host>:8080/mcp" }
}
}Para un cliente stdio, ejecuta esphome-mcp (en lugar del punto de entrada web) con el mismo entorno.
Desarrollo
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 liveCréditos
Este proyecto se apoya en el trabajo de otros (todos con licencia MIT):
kdkavanagh/esphome-mcp — el servidor MCP original de ESPHome. Este fork conserva su capa de herramientas FastMCP, el manejo de esquemas, el empaquetado y la CI casi palabra por palabra; la reescritura del transporte es el cambio principal aquí.
b2un0/esphome-mcp — por publicar una imagen precompilada y sacar a la luz la rotura del healthcheck / las herramientas de configuración que motivó este trabajo.
jrigling/esphome-mcp-integration — una integración de Home Assistant consultada al mapear el protocolo del panel de ESPHome.
El nuevo protocolo WebSocket 2026.6 se obtuvo mediante ingeniería inversa del front-end de ESPHome Device Builder y se verificó contra un panel 2026.6 en directo.
Licencia
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