hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Allows control and monitoring of Home Assistant devices, states, and systems through natural language. Provides comprehensive API for managing the entire Home Assistant ecosystem, including device control, state monitoring, and system administration.
Enables package management through HACS (Home Assistant Community Store), allowing browsing, installing, and managing custom integrations, frontend themes, Python scripts, AppDaemon apps, and NetDaemon apps.
Servidor de protocolo de contexto de modelo para Home Assistant
El servidor utiliza el protocolo MCP para compartir el acceso a una instancia local de Home Assistant con una aplicación LLM.
Un potente puente entre su instancia de Home Assistant y los Modelos de Aprendizaje de Lenguaje (LLM), que permite el control y la monitorización del lenguaje natural de sus dispositivos domésticos inteligentes mediante el Protocolo de Contexto de Modelo (MCP). Este servidor proporciona una API integral para gestionar todo su ecosistema de Home Assistant, desde el control de dispositivos hasta la administración del sistema.
Características
- 🎮 Control de dispositivos : controla cualquier dispositivo Home Assistant mediante lenguaje natural
- 🔄 Actualizaciones en tiempo real : Obtenga actualizaciones instantáneas a través de eventos enviados por el servidor (SSE)
- 🤖 Gestión de automatización : crea, actualiza y gestiona automatizaciones
- 📊 Monitoreo de estado : rastrea y consulta los estados del dispositivo
- 🔐 Seguro : Autenticación basada en tokens y limitación de velocidad
- Compatible con dispositivos móviles : funciona con cualquier cliente compatible con HTTP
Actualizaciones en tiempo real con SSE
El servidor incluye un potente sistema de Eventos Enviados por el Servidor (SSE) que proporciona actualizaciones en tiempo real desde su instancia de Home Assistant. Esto le permite:
- 🔄 Obtenga cambios de estado instantáneos para cualquier dispositivo
- 📡 Supervisar los desencadenadores y ejecuciones de automatización
- 🎯 Suscríbete a dominios o entidades específicas
- 📊 Realizar un seguimiento de las llamadas de servicio y las ejecuciones de scripts
Ejemplo rápido de SSE
Consulte SSE_API.md para obtener la documentación completa del sistema SSE.
Tabla de contenido
- Características principales
- Prerrequisitos
- Instalación
- Configuración
- Desarrollo
- Referencia de API
- Integración del lenguaje natural
- Solución de problemas
- Estado del proyecto
- Contribuyendo
- Recursos
- Licencia
Características principales
Funcionalidad principal 🎮
- Control de dispositivos inteligentes
- 💡 Luces : Brillo, temperatura de color, color RGB
- 🌡️ Clima : Temperatura, modos HVAC, modos de ventilador, humedad
- 🚪 Cubiertas : Control de posición e inclinación
- 🔌 Interruptores : Control de encendido/apagado
- 🚨 Sensores y contactos : Monitoreo de estado
- 🎵 Reproductores multimedia : Control de reproducción, volumen, selección de fuente
- 🌪️ Ventiladores : Velocidad, oscilación, dirección
- 🔒 Cerraduras : Control de bloqueo/desbloqueo
- 🧹 Aspiradoras : Arrancar, parar, volver a la base
- 📹 Cámaras : Detección de movimiento, instantáneas
Gestión del sistema 🛠️
- Gestión de complementos
- Explorar los complementos disponibles
- Instalar/desinstalar complementos
- Iniciar/detener/reiniciar complementos
- Gestión de versiones
- Acceso a la configuración
- Gestión de paquetes (HACS)
- Integración con la tienda comunitaria de Home Assistant
- Admite múltiples tipos de paquetes:
- Integraciones personalizadas
- Temas de interfaz
- Scripts de Python
- Aplicaciones AppDaemon
- Aplicaciones NetDaemon
- Control de versiones y actualizaciones
- Gestión de repositorios
- Gestión de la automatización
- Crear y editar automatizaciones
- Opciones de configuración avanzadas:
- Múltiples tipos de disparadores
- Condiciones complejas
- Secuencias de acción
- Modos de ejecución
- Duplicar y modificar automatizaciones existentes
- Habilitar o deshabilitar reglas de automatización
- Activar la automatización manualmente
Características de la arquitectura 🏗️
- Organización inteligente
- Agrupación de dispositivos por área y piso
- Monitoreo y consulta del estado
- Conciencia del contexto inteligente
- Acceso a datos históricos
- Arquitectura robusta
- Manejo integral de errores
- Validación estatal
- Integración segura de API
- Seguridad de tipos de TypeScript
- Amplia cobertura de pruebas
Prerrequisitos
- Node.js 20.10.0 o superior
- Gestor de paquetes NPM
- Docker Compose para la contenedorización
- Ejecución de la instancia de Home Assistant
- Token de acceso de larga duración de Home Assistant ( Cómo obtener el token )
- HACS instalado para funciones de gestión de paquetes
- Acceso de supervisor para la gestión de complementos
Instalación
Instalación mediante herrería
Para instalar Home Assistant MCP Server para Claude Desktop automáticamente a través de Smithery :
Configuración básica
Configuración de Docker (recomendada)
El proyecto incluye soporte para Docker para una fácil implementación y entornos consistentes en diferentes plataformas.
- Clonar el repositorio:Copy
- Configurar el entorno:Edite el archivoCopy
.env
con la configuración de Home Assistant:Copy - Construya y ejecute con Docker Compose:Copy
- Verifique la instalación: El servidor debería estar ejecutándose en
http://localhost:3000
. Puede verificar el estado del punto final enhttp://localhost:3000/health
. - Actualizar la aplicación:Copy
Configuración de Docker
La configuración de Docker incluye:
- Construcción en varias etapas para un tamaño de imagen óptimo
- Controles de salud para la monitorización de contenedores
- Montaje de volumen para la configuración del entorno
- Reinicio automático del contenedor en caso de fallo
- Puerto 3000 expuesto para acceso a API
Variables de entorno de Docker Compose
Todas las variables de entorno se pueden configurar en el archivo .env
. Se admiten las siguientes variables:
HASS_HOST
: URL de su instancia de Home AssistantHASS_TOKEN
: Token de acceso de larga duración para Home AssistantHASS_SOCKET_URL
: URL de WebSocket para Home AssistantPORT
: Puerto del servidor (predeterminado: 3000)NODE_ENV
: Entorno (producción/desarrollo)DEBUG
: Habilitar el modo de depuración (verdadero/falso)
Configuración
Variables de entorno
Archivos de configuración
- Desarrollo : Copiar
.env.example
a.env.development
- Producción : Copiar
.env.example
a.env.production
- Prueba : Copiar
.env.example
a.env.test
Agregar a Claude Desktop (u otros clientes)
Para usar su nuevo servidor MCP de Home Assistant, puede agregar Claude Desktop como cliente. Agregue lo siguiente a la configuración. Tenga en cuenta que esto ejecutará el MCP dentro de Claude y no funciona con el método Docker.
Referencia de API
Control de dispositivos
Controles de entidad comunes
Control de luz
Gestión de complementos
Lista de complementos disponibles
Instalar complemento
Administrar el estado del complemento
Gestión de paquetes
Lista de paquetes HACS
Instalar paquete
Gestión de la automatización
Crear automatización
Automatización duplicada
Funciones principales
Gestión del Estado
Gestiona el estado actual del sistema.
Ejemplo de solicitud:
Actualizaciones de contexto
Actualiza el contexto actual con nueva información.
Ejemplo de solicitud:
Puntos finales de acción
Ejecutar acción
Ejecuta una acción especificada con los parámetros dados.
Ejemplo de solicitud:
Acciones por lotes
Ejecuta múltiples acciones en secuencia.
Ejemplo de solicitud:
Funciones de consulta
Obtener acciones disponibles
Devuelve una lista de todas las acciones disponibles.
Ejemplo de respuesta:
Consulta de contexto
Recupera información de contexto.
Ejemplo de respuesta:
Eventos de WebSocket
El servidor admite actualizaciones en tiempo real a través de conexiones WebSocket.
Eventos apoyados
state_change
: Se emite cuando cambia el estado del sistemacontext_update
: se emite cuando se actualiza el contextoaction_executed
: Se emite cuando se completa una acciónerror
: se emite cuando ocurre un error
Ejemplo de datos de evento:
Manejo de errores
Todos los puntos finales devuelven códigos de estado HTTP estándar:
- 200: Éxito
- 400: Solicitud incorrecta
- 401: No autorizado
- 403: Prohibido
- 404: No encontrado
- 500: Error interno del servidor
Formato de respuesta de error:
Limitación de velocidad
La API implementa una limitación de velocidad para evitar abusos:
- 100 solicitudes por minuto por IP para puntos finales regulares
- 1000 solicitudes por minuto por IP para conexiones WebSocket
Cuando se excede el límite de velocidad, el servidor devuelve:
Ejemplo de uso
Usando curl
Usando JavaScript
Desarrollo
Solución de problemas
Problemas comunes
- Versión de Node.js (
toSorted is not a function
)- Solución: Actualizar a Node.js 20.10.0+ GXP39
- Problemas de conexión
- Verificar que Home Assistant se esté ejecutando
- Comprobar la accesibilidad
HASS_HOST
- Validar permisos de token
- Asegúrese de la conexión WebSocket para actualizaciones en tiempo real
- Problemas de gestión de complementos
- Verificar el acceso del supervisor
- Comprobar la compatibilidad de los complementos
- Validar los recursos del sistema
- Problemas de integración de HACS
- Verificar la instalación de HACS
- Comprobar el estado de la integración de HACS
- Validar el acceso al repositorio
- Problemas de automatización
- Verificar la disponibilidad de la entidad
- Comprobar las condiciones de activación
- Validar llamadas de servicio
- Supervisar los registros de ejecución
Estado del proyecto
✅ Completo
- Acceso a entidades, pisos y áreas
- Control de dispositivos (luces, clima, cubiertas, interruptores, contactos)
- Sistema de gestión de complementos
- Gestión de paquetes a través de HACS
- Configuración de automatización avanzada
- Gestión básica del estado
- Manejo de errores y validación
- Contenedorización de Docker
- Configuración de prueba de Jest
- Integración con TypeScript
- Gestión de variables ambientales
- Integración de la API de Home Assistant
- Documentación del proyecto
🚧 En progreso
- Implementación de WebSocket para actualizaciones en tiempo real
- Funciones de seguridad mejoradas
- Optimización de la organización de herramientas
- Optimización del rendimiento
- Integración del contexto de recursos
- Generación de documentación de API
- Integración de escritorio multiplataforma
- Recuperación avanzada de errores
- Pruebas de indicaciones personalizadas
- Integración mejorada con macOS
- Mejoras en la seguridad de tipos
- Ampliación de la cobertura de pruebas
Contribuyendo
- Bifurcar el repositorio
- Crear una rama de características
- Implementa tus cambios
- Agregar pruebas para nuevas funcionalidades
- Asegúrese de que todas las pruebas pasen
- Enviar una solicitud de extracción
Recursos
- Documentación de MCP
- Documentos del Asistente del Hogar
- API REST de alta disponibilidad
- Documentación de HACS
- Documentación de TypeScript
Licencia
Licencia MIT - Ver archivo LICENCIA
This server cannot be installed
Permite una integración perfecta entre Home Assistant y los modelos de aprendizaje de idiomas (LLM), lo que permite la interacción en lenguaje natural para el control del hogar inteligente y la gestión de la automatización.
- Features
- Real-time Updates with SSE
- Table of Contents
- Key Features
- Prerequisites
- Installation
- Configuration
- API Reference
- Development
- Troubleshooting
- Project Status
- Contributing
- Resources
- License