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.
Home Assistant용 모델 컨텍스트 프로토콜 서버
서버는 MCP 프로토콜을 사용하여 로컬 Home Assistant 인스턴스에 대한 액세스를 LLM 애플리케이션과 공유합니다.
Home Assistant 인스턴스와 언어 학습 모델(LLM)을 연결하는 강력한 브리지로, 모델 컨텍스트 프로토콜(MCP)을 통해 스마트 홈 기기의 자연어 제어 및 모니터링을 지원합니다. 이 서버는 기기 제어부터 시스템 관리까지 전체 Home Assistant 생태계를 관리할 수 있는 포괄적인 API를 제공합니다.
특징
- 🎮 기기 제어 : 자연어를 통해 모든 Home Assistant 기기를 제어하세요
- 🔄 실시간 업데이트 : SSE(Server-Sent Events)를 통해 즉각적인 업데이트를 받으세요.
- 🤖 자동화 관리 : 자동화를 생성, 업데이트 및 관리합니다.
- 📊 상태 모니터링 : 장치 상태 추적 및 쿼리
- 🔐 보안 : 토큰 기반 인증 및 속도 제한
- 📱 모바일 지원 : HTTP 지원 클라이언트와 함께 작동합니다.
SSE를 통한 실시간 업데이트
이 서버에는 Home Assistant 인스턴스에서 실시간 업데이트를 제공하는 강력한 SSE(Server-Sent Events) 시스템이 포함되어 있습니다. 이를 통해 다음과 같은 작업을 수행할 수 있습니다.
- 🔄 모든 기기에서 즉각적인 상태 변경을 받으세요
- 📡 자동화 트리거 및 실행 모니터링
- 🎯 특정 도메인이나 엔터티 구독
- 📊 서비스 호출 및 스크립트 실행 추적
빠른 SSE 예제
지엑스피1
SSE 시스템에 대한 전체 문서는 SSE_API.md를 참조하세요.
목차
주요 특징
핵심 기능 🎮
- 스마트 기기 제어
- 💡 조명 : 밝기, 색온도, RGB 색상
- 🌡️ 기후 : 온도, HVAC 모드, 팬 모드, 습도
- 🚪 커버 : 위치 및 기울기 제어
- 🔌 스위치 : 켜기/끄기 제어
- 🚨 센서 및 접점 : 상태 모니터링
- 🎵 미디어 플레이어 : 재생 제어, 볼륨, 소스 선택
- 🌪️ 팬 : 속도, 진동, 방향
- 🔒 잠금 : 잠금/잠금 해제 제어
- 🧹 진공 : 시작, 중지, 베이스로 복귀
- 📹 카메라 : 동작 감지, 스냅샷
시스템 관리 🛠️
- 애드온 관리
- 사용 가능한 애드온 찾아보기
- 애드온 설치/제거
- 애드온 시작/중지/재시작
- 버전 관리
- 구성 액세스
- 패키지 관리(HACS)
- Home Assistant 커뮤니티 스토어와 통합
- 다양한 패키지 유형 지원:
- 사용자 정의 통합
- 프런트엔드 테마
- 파이썬 스크립트
- AppDaemon 앱
- NetDaemon 앱
- 버전 제어 및 업데이트
- 저장소 관리
- 자동화 관리
- 자동화 생성 및 편집
- 고급 구성 옵션:
- 다양한 트리거 유형
- 복잡한 조건
- 액션 시퀀스
- 실행 모드
- 기존 자동화를 복제하고 수정합니다.
- 자동화 규칙 활성화/비활성화
- 자동화를 수동으로 트리거합니다
건축 특징 🏗️
- 지능형 조직
- 지역 및 층 기반 장치 그룹화
- 상태 모니터링 및 쿼리
- 스마트한 상황 인식
- 과거 데이터 접근
- 견고한 아키텍처
- 포괄적인 오류 처리
- 상태 검증
- 안전한 API 통합
- TypeScript 유형 안전성
- 광범위한 테스트 범위
필수 조건
- Node.js 20.10.0 이상
- NPM 패키지 관리자
- 컨테이너화를 위한 Docker Compose
- Home Assistant 인스턴스 실행 중
- Home Assistant 장기 액세스 토큰( 토큰을 얻는 방법 )
- 패키지 관리 기능을 위해 HACS가 설치됨
- 추가 기능 관리를 위한 감독자 액세스
설치
Smithery를 통해 설치
Smithery를 통해 Claude Desktop용 Home Assistant MCP Server를 자동으로 설치하려면:
기본 설정
Docker 설정(권장)
이 프로젝트에는 다양한 플랫폼에서 쉬운 배포와 일관된 환경을 제공하는 Docker 지원이 포함됩니다.
- 저장소를 복제합니다.Copy
- 환경 구성:Home Assistant 구성으로Copy
.env
파일을 편집합니다.Copy - Docker Compose로 빌드하고 실행하세요.Copy
- 설치 확인: 이제 서버가
http://localhost:3000
에서 실행 중이어야 합니다.http://localhost:3000/health
에서 상태 엔드포인트를 확인할 수 있습니다. - 애플리케이션을 업데이트하세요:Copy
Docker 구성
Docker 설정에는 다음이 포함됩니다.
- 최적의 이미지 크기를 위한 다단계 빌드
- 컨테이너 모니터링을 위한 상태 점검
- 환경 구성을 위한 볼륨 마운팅
- 실패 시 컨테이너 자동 재시작
- API 액세스를 위해 노출된 포트 3000
Docker Compose 환경 변수
모든 환경 변수는 .env
파일에서 구성할 수 있습니다. 지원되는 변수는 다음과 같습니다.
HASS_HOST
: Home Assistant 인스턴스 URLHASS_TOKEN
: Home Assistant용 장기 액세스 토큰HASS_SOCKET_URL
: Home Assistant용 WebSocket URLPORT
: 서버 포트(기본값: 3000)NODE_ENV
: 환경(프로덕션/개발)DEBUG
: 디버그 모드 활성화(true/false)
구성
환경 변수
구성 파일
- 개발 :
.env.example``.env.development
로 복사합니다. - 프로덕션 :
.env.example``.env.production
으로 복사합니다. - 테스트 :
.env.example``.env.test
로 복사합니다.
Claude Desktop(또는 다른 클라이언트)에 추가
새 Home Assistant MCP 서버를 사용하려면 Claude Desktop을 클라이언트로 추가하세요. 구성에 다음을 추가하세요. 이렇게 하면 Claude 내에서 MCP가 실행되며 Docker 방식에서는 작동하지 않습니다.
API 참조
장치 제어
공통 엔터티 컨트롤
조명 제어
애드온 관리
사용 가능한 추가 기능 목록
애드온 설치
추가 기능 상태 관리
패키지 관리
HACS 패키지 목록
패키지 설치
자동화 관리
자동화 만들기
복제 자동화
핵심 기능
국가 관리
시스템의 현재 상태를 관리합니다.
요청 예시:
컨텍스트 업데이트
현재 상황을 새로운 정보로 업데이트합니다.
요청 예시:
작업 엔드포인트
작업 실행
주어진 매개변수로 지정된 작업을 실행합니다.
요청 예시:
일괄 작업
여러 작업을 순서대로 실행합니다.
요청 예시:
쿼리 함수
사용 가능한 작업 가져오기
사용 가능한 모든 작업 목록을 반환합니다.
응답 예시:
컨텍스트 쿼리
컨텍스트 정보를 검색합니다.
응답 예시:
웹소켓 이벤트
서버는 WebSocket 연결을 통해 실시간 업데이트를 지원합니다.
지원되는 이벤트
state_change
: 시스템 상태가 변경될 때 발생합니다.context_update
: 컨텍스트가 업데이트될 때 발생합니다.action_executed
: 작업이 완료될 때 발생합니다.error
: 오류가 발생할 때 발생합니다.
이벤트 데이터 예시:
오류 처리
모든 엔드포인트는 표준 HTTP 상태 코드를 반환합니다.
- 200: 성공
- 400: 잘못된 요청
- 401: 승인되지 않음
- 403: 금지됨
- 404: 찾을 수 없음
- 500: 내부 서버 오류
오류 응답 형식:
속도 제한
API는 남용을 방지하기 위해 속도 제한을 구현합니다.
- 일반 엔드포인트의 경우 IP당 분당 100개 요청
- WebSocket 연결에 대해 IP당 분당 1000개 요청
속도 제한을 초과하면 서버는 다음을 반환합니다.
사용 예
컬을 사용하여
JavaScript 사용
개발
문제 해결
일반적인 문제
- Node.js 버전 (
toSorted is not a function
)- 해결 방법: Node.js 20.10.0+ GXP39로 업데이트
- 연결 문제
- Home Assistant가 실행 중인지 확인하세요
HASS_HOST
접근성 확인- 토큰 권한 검증
- 실시간 업데이트를 위해 WebSocket 연결을 확보하세요
- 애드온 관리 문제
- 감독자 액세스 확인
- 애드온 호환성 확인
- 시스템 리소스 검증
- HACS 통합 문제
- HACS 설치 확인
- HACS 통합 상태 확인
- 저장소 액세스 검증
- 자동화 문제
- 엔터티 가용성 확인
- 트리거 조건 확인
- 서비스 호출 검증
- 실행 로그 모니터링
프로젝트 상태
✅ 완료
- 엔티티, 층 및 영역 액세스
- 장치 제어(조명, 기후, 커버, 스위치, 접점)
- 애드온 관리 시스템
- HACS를 통한 패키지 관리
- 고급 자동화 구성
- 기본 상태 관리
- 오류 처리 및 검증
- Docker 컨테이너화
- Jest 테스트 설정
- TypeScript 통합
- 환경 변수 관리
- 홈 어시스턴트 API 통합
- 프로젝트 문서
🚧 진행 중
- 실시간 업데이트를 위한 WebSocket 구현
- 강화된 보안 기능
- 도구 구성 최적화
- 성능 최적화
- 리소스 컨텍스트 통합
- API 문서 생성
- 다중 플랫폼 데스크톱 통합
- 고급 오류 복구
- 맞춤형 프롬프트 테스트
- 향상된 macOS 통합
- 유형 안전 개선
- 테스트 커버리지 확장
기여하다
- 저장소를 포크하세요
- 기능 브랜치 생성
- 변경 사항을 구현하세요
- 새로운 기능에 대한 테스트 추가
- 모든 테스트가 통과되었는지 확인하세요
- 풀 리퀘스트 제출
자원
특허
MIT 라이선스 - LICENSE 파일 참조
This server cannot be installed
Home Assistant와 언어 학습 모델(LLM) 간의 원활한 통합을 지원하여 스마트 홈 제어 및 자동화 관리를 위한 자연어 상호 작용이 가능합니다.
- Features
- Real-time Updates with SSE
- Table of Contents
- Key Features
- Prerequisites
- Installation
- Configuration
- API Reference
- Development
- Troubleshooting
- Project Status
- Contributing
- Resources
- License