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.
ホームアシスタント用モデルコンテキストプロトコルサーバー
サーバーは、MCP プロトコルを使用して、ローカル Home Assistant インスタンスへのアクセスを LLM アプリケーションと共有します。
Home Assistantインスタンスと言語学習モデル(LLM)間の強力なブリッジであり、モデルコンテキストプロトコル(MCP)を介してスマートホームデバイスの自然言語制御と監視を可能にします。このサーバーは、デバイス制御からシステム管理まで、Home Assistantエコシステム全体を管理するための包括的なAPIを提供します。
特徴
- 🎮デバイスコントロール:自然言語でHome Assistantデバイスをコントロール
- 🔄リアルタイム更新:サーバー送信イベント(SSE)を通じて即時更新を取得
- 🤖自動化管理:自動化を作成、更新、管理する
- 📊状態監視:デバイスの状態を追跡および照会する
- 🔐安全:トークンベースの認証とレート制限
- 📱モバイル対応: HTTP対応クライアントならどれでも動作します
SSEによるリアルタイム更新
サーバーには強力なServer-Sent Events(SSE)システムが搭載されており、Home Assistantインスタンスからのリアルタイム更新情報を提供します。これにより、以下のことが可能になります。
- 🔄あらゆるデバイスの状態変化を即座に把握
- 📡 自動化のトリガーと実行を監視する
- 🎯 特定のドメインまたはエンティティを購読する
- 📊 サービス呼び出しとスクリプト実行を追跡する
簡単なSSEの例
SSE システムの完全なドキュメントについては、 SSE_API.md を参照してください。
目次
主な特徴
コア機能 🎮
- スマートデバイスコントロール
- 💡ライト:明るさ、色温度、RGBカラー
- 🌡️気候: 温度、HVAC モード、ファン モード、湿度
- 🚪カバー:位置と傾きのコントロール
- 🔌スイッチ:オン/オフ制御
- 🚨センサーと接点:状態監視
- 🎵メディアプレーヤー:再生コントロール、音量、ソース選択
- 🌪️ファン:速度、振動、方向
- 🔒ロック:ロック/ロック解除の制御
- 🧹掃除機:スタート、停止、ベースに戻る
- 📹カメラ:動き検知、スナップショット
システム管理 🛠️
- アドオン管理
- 利用可能なアドオンを参照する
- アドオンのインストール/アンインストール
- アドオンの開始/停止/再起動
- バージョン管理
- 構成アクセス
- パッケージ管理(HACS)
- Home Assistantコミュニティストアとの統合
- 複数のパッケージ タイプをサポート:
- カスタム統合
- フロントエンドテーマ
- Pythonスクリプト
- 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イベント
サーバーは、WebSocket 接続を介したリアルタイム更新をサポートします。
サポートされているイベント
state_change
: システムの状態が変化したときに発行されますcontext_update
: コンテキストが更新されたときに発行されますaction_executed
: アクションが完了したときに発行されますerror
: エラーが発生したときに発行されます
イベントデータの例:
エラー処理
すべてのエンドポイントは標準の HTTP ステータス コードを返します。
- 200: 成功
- 400: 不正なリクエスト
- 401: 権限がありません
- 403: 禁止
- 404: 見つかりません
- 500: 内部サーバーエラー
エラー応答形式:
レート制限
API は不正使用を防ぐためにレート制限を実装しています。
- 通常のエンドポイントの場合、IPごとに1分あたり100リクエスト
- WebSocket 接続の場合、IP ごとに 1 分あたり 1000 件のリクエスト
レート制限を超えると、サーバーは次を返します:
使用例
curlの使用
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