/ Directorio / Playground / Home Assistant MCP
● Comunidad homeassistant-ai 🔑 Requiere tu clave

Home Assistant MCP

por homeassistant-ai · homeassistant-ai/ha-mcp

Habla con tu casa. 87 herramientas cubren control de dispositivos, automatizaciones, dashboards, energía e historial — Claude se convierte en tu experto en Home Assistant.

ha-mcp envuelve las APIs REST y WebSocket de Home Assistant como herramientas MCP. Más allá de encender luces, puede crear automatizaciones, editar dashboards, consultar historial/estadísticas, gestionar add-ons de HACS y explorar el registro de entidades — permitiendo a Claude tanto diagnosticar como reconfigurar tu hogar inteligente.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

ha-mcp.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ha-mcp": {
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ha-mcp": {
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ha-mcp": {
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ha-mcp": {
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ha-mcp",
      "command": "uvx",
      "args": [
        "ha-mcp"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "ha-mcp": {
      "command": {
        "path": "uvx",
        "args": [
          "ha-mcp"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add ha-mcp -- uvx ha-mcp

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: Home Assistant MCP

Controlar dispositivos sin recordar los entity_ids

👤 Cualquiera con una instalación de Home Assistant poblada ⏱ ~5 min beginner

Cuándo usarlo: Sabes lo que quieres («atenúa la cocina al 30%») pero no el entity_id exacto.

Requisitos previos
  • Token de acceso de larga duración de Home Assistant — Perfil → Seguridad → Crear token; guárdalo como variable de entorno HA_TOKEN
  • HA_URL configurado — Set HA_URL=http://homeassistant.local:8123 (o tu URL)
Flujo
  1. Encontrar la entidad
    Use ha-mcp. Find entities matching 'kitchen light'. Show entity_id, area, and current state.✓ Copiado
    → 1–3 entidades candidatas con estado actual
  2. Aplicar el cambio
    Set kitchen ceiling lights to 30% brightness, warm white.✓ Copiado
    → Llamada al servicio exitosa; estado confirmado

Resultado: Dispositivos controlados por intención, no por memorización.

Errores comunes
  • Varias entidades coinciden — se activa la incorrecta — Confirma siempre la lista de entity_ids antes de acciones masivas; usa filtros de área

Crear una automatización compleja a partir de una especificación en lenguaje natural

👤 Usuarios de HA que evitan el YAML ⏱ ~15 min intermediate

Cuándo usarlo: Quieres «si salgo de casa después del atardecer y el comedero del gato está vacío, envíame una notificación» — y no quieres escribir YAML.

Flujo
  1. Describir la intención
    Use ha-mcp. List my person tracker, sun, and cat feeder entities so we can wire an automation.✓ Copiado
    → Entidades relevantes con esquema de estados
  2. Generar el YAML
    Create automation 'cat-feeder-sundown-alert' with that logic. Don't deploy yet — show me the YAML.✓ Copiado
    → YAML de automatización válido de HA en el chat
  3. Desplegar y trazar
    Deploy it. Then trigger it manually and show the trace so I can verify the conditions fired.✓ Copiado
    → Automatización en la UI; la traza muestra las ramas esperadas

Resultado: Automatización funcionando, sin edición manual de /config/automations.yaml.

Errores comunes
  • La automatización se desplegó pero nunca se dispara — typo en el nombre de entidad — Usa la herramienta trace; verifica que el entity_id coincide exactamente

Investigar un pico de energía usando historial y estadísticas

👤 Propietarios de hogares inteligentes con dashboard de Energía de HA ⏱ ~25 min intermediate

Cuándo usarlo: Tu factura subió y quieres saber qué cambió.

Flujo
  1. Obtener totales
    Use ha-mcp. Compare total kWh per circuit for last 30 days vs the prior 30. Flag deltas >20%.✓ Copiado
    → Tabla por circuito con diferencias resaltadas
  2. Profundizar en el peor
    For the worst-offending circuit, plot hourly usage for the last 7 days and identify the new pattern.✓ Copiado
    → Perfil horario + observación verbal de la anomalía
  3. Encontrar el dispositivo culpable
    Which entity on that circuit changed behavior? Cross-reference automations that touch it.✓ Copiado
    → Dispositivo específico + automatización identificada

Resultado: Respuesta concreta del tipo «el cargador del VE ejecutó un nuevo horario», no una sospecha vaga.

Errores comunes
  • Las estadísticas son tan buenas como la cobertura de sensores — Reconoce las lagunas; sugiere dónde añadir monitoreo

Configurar un «modo vacaciones» que afecte luces, cerraduras, persianas y notificaciones

👤 A punto de salir de viaje ⏱ ~30 min intermediate

Cuándo usarlo: Te vas en una hora y quieres simulación de presencia + comportamiento de modo ausente.

Flujo
  1. Inventariar entidades afectadas
    Use ha-mcp. List lights in living areas, all door locks, all blinds. Note which are HA-controllable.✓ Copiado
    → Lista de entidades categorizada con indicador de controlabilidad
  2. Crear el script
    Create a script 'vacation_mode_on' that arms locks, randomizes evening lights 18:30–22:30, sets blinds to 50%, and pauses cleaning automations.✓ Copiado
    → Script en HA; ejecución manual exitosa
  3. Añadir un disparador
    Bind it to an input_boolean 'vacation_mode' so I can toggle from the dashboard.✓ Copiado
    → Toggle en el dashboard; activarlo ejecuta el script

Resultado: Modo vacaciones con un clic; te vas con el dashboard activado.

Errores comunes
  • Bloquear automáticamente con personas dentro — Añade una comprobación de presencia de personas; nunca bloquear cuando alguien está en casa

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

ha-mcp + filesystem

Respaldar automations.yaml + scripts.yaml en git

Export all automations and scripts via ha-mcp, write to ./ha-config/, commit.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
search_entities query: str, area?, domain? Primer paso en casi cualquier flujo — encontrar el entity_id 1 HA API call
call_service domain, service, target, data Aplicar cualquier cambio en dispositivo o escena 1 API call
create_automation yaml_or_object Crear automatizaciones mediante programación 1 API call
get_history entity_id, start, end Obtener historial de estados para análisis 1 API call
get_statistics statistic_id, period (5min|hour|day|month) Datos agregados a largo plazo (energía, clima) 1 API call
trace_automation automation_id, run_id? Depurar por qué una automatización se disparó o no 1 API call

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Sin cuota fija — la API REST es local
Tokens por llamada
Variable; el registro de entidades puede ser enorme si no filtras
Monetario
Gratuito (código abierto)
Consejo
Usa siempre search_entities con filtros — los volcados completos del registro son costosos en tokens

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: Long-Lived Access Token (full HA scope)
Almacenamiento de credenciales: Variable de entorno HA_TOKEN
Salida de datos: Solo a la URL de tu instancia de HA — idealmente mantenlo en la red local
No conceder nunca: El token de HA a ningún LLM en la nube en el que no confíes — esto controla acceso físico (cerraduras, garaje)

Resolución de problemas

Errores comunes y soluciones

No se puede conectar a HA

Verifica que HA_URL es accesible desde donde ejecutas el MCP; comprueba trusted_proxies si está detrás de un proxy inverso

Verificar: curl $HA_URL/api/ -H 'Authorization: Bearer $HA_TOKEN'
401 Unauthorized

Token caducado o revocado — genera un nuevo token de larga duración en el perfil

La llamada al servicio devuelve 400

La firma del servicio no coincide — usa el panel de herramientas de desarrollo para verificar el esquema y reintenta

La automatización se desplegó pero no se dispara

Usa trace_automation para ver qué condición falló; casos comunes: typo en entity_id o condición de sol con zona horaria incorrecta

Alternativas

Home Assistant MCP vs otros

AlternativaCuándo usarlaContrapartida
Home Assistant native voice assistants (Piper/Whisper)Quieres control por voz sin un LLM en la nube en el flujoMenos flexibilidad en lenguaje natural; más configuración
ha-mcp-server (legacy/forks)Tu fork tiene funciones que este no tieneSuperficie menor; este tiene 87 herramientas y mantenimiento activo

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills