Home Assistant MCP Server について
LLM から Home Assistant のスマートホームエンティティを照会・操作できる MCP サーバーです。状態、サービス、履歴、デバイスのツールを提供し、トークン認証とテスト用のモックデータモードに対応します。
主な機能
- 01Home Assistant エンティティの照会と操作
- 02状態・サービス・履歴のツール
- 03デバイスと設定の照会
- 04長期アクセストークン認証
- 05stdio と SSE のトランスポート
- 06モックデータのデモモード
活用シーン
- 01スマートホームのエンティティ状態の確認
- 02照明の操作やサービスの呼び出し
- 03エンティティ履歴とエラーログの確認
- 04Home Assistant に接続せずにテスト
MCP 対応
Home Assistant の照会・操作機能を、MCP 対応クライアント向けのツールとして公開します。ローカルプロセス用の stdio と、リモートクライアント用の SSE に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Home Assistant MCP サーバー
Home Assistant と連携するための Model Context Protocol(MCP) サーバーです。LLM がスマートホームを制御したり、情報を照会したりできます。
機能
- 自然言語を使って Home Assistant のエンティティを照会、制御できます
- MCP 互換クライアント(Claude Desktop など)で利用できます
- 状態管理、サービス呼び出し、履歴などのツールを提供します
- Home Assistant の長期アクセストークンを使用した安全な認証に対応しています
- 複数のトランスポート方式に対応しています(ローカルプロセス用の stdio、リモートクライアント用の SSE)
- Home Assistant を利用できない場合に、テストやデモで使えるモックデータモードがあります
インストール
# Install globally using bun
bun install -g home-assistant-mcp-server
# Or install from source
git clone https://github.com/oleander/home-assistant-mcp-server.git
cd home-assistant-mcp-server
bun install
bun run build
bun link
設定
現在のディレクトリに、次の変数を記述した .env ファイルを作成します。
# Required configurations
HASS_URL=http://your-home-assistant:8123 # URL to your Home Assistant instance
HASS_TOKEN=your_long_lived_access_token # Long-lived access token for authentication
# Optional configurations
PORT=3000 # Port for the HTTP server (default: 3000)
HASS_MOCK=false # Enable mock data mode when Home Assistant is unavailable (default: false)
環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
HASS_URL | はい | - | Home Assistant インスタンスの URL(例:http://homeassistant.local:8123) |
HASS_TOKEN | はい | - | Home Assistant の認証に使用する長期アクセストークン |
PORT | いいえ | 3000 | HTTP/SSE トランスポートを使用する場合の HTTP サーバーのポート番号 |
HASS_MOCK | いいえ | false | "true" に設定すると、Home Assistant に接続せずにテストできるモックデータモードが有効になります |
長期アクセストークンを取得する手順は次のとおりです。
- Home Assistant インスタンスにログインします
- プロフィールをクリックします(左下)
- 「Long-Lived Access Tokens」までスクロールします
- 分かりやすい名前を付けて新しいトークンを作成します
- トークンの値をコピーします(再表示できません)
使用方法
スタンドアロンサーバーとして実行する
# Standard mode (requires a running Home Assistant instance)
home-assistant-mcp-server # Start with HTTP/SSE transport
home-assistant-mcp-server --stdio # Start with stdio transport for direct process communication
# Demo mode (with mock data when Home Assistant is unavailable)
home-assistant-mcp-server --mock # Start with HTTP/SSE transport and mock data
home-assistant-mcp-server --stdio --mock # Start with stdio transport and mock data
Claude Desktop との連携
Claude Desktop で使用するには、次の手順に従います。
-
Claude Desktop の設定ファイルを編集します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
サーバー設定を追加します。
{
"mcpServers": {
"homeassistant": {
"command": "home-assistant-mcp-server"
"env": {
"HASS_URL": "http://your-home-assistant:8123",
"HASS_TOKEN": "your_token_here",
"HASS_MOCK": "true"
}
}
}
}
Home Assistant が稼働している場合は、--mock フラグを削除し、HASS_MOCK を false に設定するだけです。
- Claude Desktop を再起動します
利用可能なツール
このサーバーは、Home Assistant と連携するための複数のツールを公開します。
states- エンティティの状態を照会しますlights- ライトの一覧を表示しますlight- ライトを制御しますservice- Home Assistant のサービスを呼び出しますhistory- エンティティの履歴データを取得しますservices- 利用可能なサービスを一覧表示しますconfig- Home Assistant の設定を取得しますdomains- 利用可能なドメインを一覧表示しますerror_log- Home Assistant のエラーログを取得しますdevices- Home Assistant 内のすべてのデバイスを取得します
詳しい使用例については、docs/hass-mcp.md を参照してください。
セキュリティ
このサーバーを使用するには、フルアクセス権を持つ Home Assistant アクセストークンが必要です。次のセキュリティに関する推奨事項を検討してください。
- 信頼できるネットワーク上でのみサーバーを実行してください
- サーバーをリモートから公開する場合は HTTPS を使用してください
.envファイルを安全に保管し、ソース管理にコミットしないでください- 可能な場合は、権限を制限したトークンの使用を検討してください
ライセンス
このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細については LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。