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
Related MCP server: Google Home MCP Server
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
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
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:
git clone https://github.com/jango-blockchained/homeassistant-mcp.git cd homeassistant-mcpConfigurar el entorno:
cp .env.example .envEdite el archivo
.envcon la configuración de Home Assistant:# Home Assistant Configuration HASS_HOST=http://homeassistant.local:8123 HASS_TOKEN=your_home_assistant_token HASS_SOCKET_URL=ws://homeassistant.local:8123/api/websocket # Server Configuration PORT=3000 NODE_ENV=production DEBUG=falseConstruya y ejecute con Docker Compose:
# Build and start the containers docker compose up -d # View logs docker compose logs -f # Stop the service docker compose downVerifique 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:
# Pull the latest changes git pull # Rebuild and restart the containers docker compose up -d --build
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.examplea.env.developmentProducción : Copiar
.env.examplea.env.productionPrueba : Copiar
.env.examplea.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 (
Solución: Actualizar a Node.js 20.10.0+ GXP38
Problemas de conexión
Verificar que Home Assistant se esté ejecutando
Comprobar la accesibilidad
HASS_HOSTValidar 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
Licencia
Licencia MIT - Ver archivo LICENCIA
Appeared in Searches
- A server for controlling smart home lights
- An MCP for managing lifestyle, coordinating daily routines, exercise, and study tasks
- Searching for information about license types or information starting with 'f'
- A server for finding information about guitars
- Software or solutions for managing a fleet of computers