ホームアシスタント用モデルコンテキストプロトコルサーバー
サーバーは、MCP プロトコルを使用して、ローカル Home Assistant インスタンスへのアクセスを LLM アプリケーションと共有します。
Home Assistantインスタンスと言語学習モデル(LLM)間の強力なブリッジであり、モデルコンテキストプロトコル(MCP)を介してスマートホームデバイスの自然言語制御と監視を可能にします。このサーバーは、デバイス制御からシステム管理まで、Home Assistantエコシステム全体を管理するための包括的なAPIを提供します。
特徴
- 🎮デバイスコントロール:自然言語でHome Assistantデバイスをコントロール
- 🔄リアルタイム更新:サーバー送信イベント(SSE)を通じて即時更新を取得
- 🤖自動化管理:自動化を作成、更新、管理する
- 📊状態監視:デバイスの状態を追跡および照会する
- 🔐安全:トークンベースの認証とレート制限
- 📱モバイル対応: HTTP対応クライアントならどれでも動作します
SSEによるリアルタイム更新
サーバーには、Home Assistantインスタンスからのリアルタイム更新を提供する強力なServer-Sent Events(SSE)システムが搭載されています。これにより、以下のことが可能になります。
- 🔄あらゆるデバイスの状態変化を即座に把握
- 📡 自動化のトリガーと実行を監視する
- 🎯 特定のドメインまたはエンティティを購読する
- 📊 サービス呼び出しとスクリプト実行を追跡する
簡単な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がインストールされている
- アドオン管理のためのスーパーバイザーアクセス
インストール
基本設定
Docker のセットアップ (推奨)
このプロジェクトには、さまざまなプラットフォーム間での容易な展開と一貫した環境を実現する Docker サポートが含まれています。
- リポジトリをクローンします。
- 環境を構成する:Home Assistant の設定に合わせて
.env
ファイルを編集します。 - Docker Compose でビルドして実行します。
- **インストールの確認:**サーバーは
http://localhost:3000
で稼働しているはずです。ヘルスエンドポイントはhttp://localhost:3000/health
で確認できます。 - アプリケーションを更新します。
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+ GXP38 にアップデートする
- 接続の問題
- Home Assistantが動作していることを確認する
HASS_HOST
アクセス可能性を確認する- トークンの権限を検証する
- リアルタイム更新のためにWebSocket接続を確保する
- アドオン管理の問題
- スーパーバイザーのアクセスを確認する
- アドオンの互換性を確認する
- システムリソースを検証する
- HACS統合の問題
- HACSのインストールを確認する
- HACS統合ステータスを確認する
- リポジトリアクセスを検証する
- 自動化の問題
- エンティティの可用性を確認する
- トリガー条件を確認する
- サービスコールの検証
- 実行ログを監視する
プロジェクトのステータス
✅完了
- エンティティ、フロア、エリアへのアクセス
- デバイス制御(ライト、空調、カバー、スイッチ、連絡先)
- アドオン管理システム
- HACSによるパッケージ管理
- 高度な自動化構成
- 基本的な状態管理
- エラー処理と検証
- Dockerコンテナ化
- Jestテストのセットアップ
- TypeScript統合
- 環境変数管理
- ホームアシスタントAPI統合
- プロジェクトドキュメント
🚧進行中
- リアルタイム更新のためのWebSocket実装
- 強化されたセキュリティ機能
- ツール構成の最適化
- パフォーマンスの最適化
- リソースコンテキストの統合
- APIドキュメント生成
- マルチプラットフォームデスクトップ統合
- 高度なエラー回復
- カスタムプロンプトテスト
- macOSとの統合強化
- 型安全性の改善
- テスト範囲の拡大
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更を実装する
- 新しい機能のテストを追加する
- すべてのテストに合格することを確認する
- プルリクエストを送信する
リソース
ライセンス
MITライセンス - LICENSEファイルを参照
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Home Assistant データにアクセスし、デバイス (照明、スイッチ、サーモスタットなど) を制御します。
Related MCP Servers
- -securityAlicense-qualityExpose all Home Assistant voice intents through a Model Context Protocol Server allowing home control.Last updated -30PythonApache 2.0
- -securityFlicense-qualityEnables users to control Google Home smart plugs using the Smart Home API with OAuth2 authentication, offering real-time device state management and control operations.Last updated -1TypeScript
- AsecurityAlicenseAqualityEnables AI assistants to control SwitchBot devices, providing functionalities like device management, scene execution, and sensor information monitoring through the SwitchBot API.Last updated -3JavaScriptISC License
- AsecurityAlicenseAqualityA server that enables interaction with Home Assistant devices and automations through the Model Context Protocol, allowing users to monitor device states, control devices, trigger automations, and list entities.Last updated -429JavaScriptMIT License