mcp-homeassistant について
mcp-homeassistantは、Home AssistantのREST API操作をMCPサーバー経由で提供します。設定や状態の確認、サービス呼び出し、履歴やカレンダーへのアクセスに対応します。
主な機能
- 01APIステータスと設定の確認
- 02エンティティ状態の取得と変更
- 03サービス、イベント、コンポーネントの一覧
- 04サービス呼び出しとイベント発火
- 05テンプレートの描画と設定の検証
- 06履歴、ログ、カレンダーへのアクセス
活用シーン
- 01エンティティ状態と利用可能なサービスの確認
- 02Home Assistantサービスの呼び出し
- 03状態履歴やカレンダーイベントの確認
MCP 対応
MCPサーバーとしてHome Assistant REST API操作をツールで公開し、設定、状態、サービス、コンポーネントをリソースとして提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-homeassistant
Home Assistant 2026.4.1 REST API の機能を公開する MCP サーバーです。
mcp-name: io.github.daedalus/mcp-homeassistant
インストール
pip install mcp-homeassistant
設定
以下の環境変数を設定します。
HA_URL:Home Assistant の URL(デフォルト:http://localhost:8123)HA_TOKEN:長期アクセストークン(必須)
使用方法
export HA_URL="http://homeassistant:8123"
export HA_TOKEN="your_long_lived_access_token"
mcp-homeassistant
ツール
MCP サーバーは以下のツールを公開します。
get_api_status- API が稼働しているか確認しますget_config- HA の設定を取得しますget_components- 読み込み済みのコンポーネントを一覧表示しますget_events- イベントタイプとリスナー数を一覧表示しますget_services- ドメインごとに利用可能なサービスを一覧表示しますget_states- すべてのエンティティ状態を取得しますget_state- 特定のエンティティ状態を取得しますset_state- エンティティ状態を更新または作成しますdelete_state- エンティティ状態を削除しますfire_event- カスタムイベントを発火しますcall_service- Home Assistant サービスを呼び出しますrender_template- Jinja テンプレートをレンダリングしますget_history- 状態変更の履歴を取得しますget_logbook- ログブックのエントリを取得しますcheck_config- configuration.yaml を検証しますhandle_intent- インテントを処理しますget_error_log- エラーログを取得しますget_calendars- カレンダーエンティティを一覧表示しますget_calendar_events- カレンダーイベントを取得します
リソース
homeassistant://config- 現在の設定homeassistant://states- すべてのエンティティ状態homeassistant://services- 利用可能なサービスhomeassistant://components- 読み込み済みのコンポーネント
開発
git clone https://github.com/daedalus/mcp-homeassistant.git
cd mcp-homeassistant
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。