スマートホームのAIアシスタントに、クラウドAPIではなく自分のPCで動くLLMを使いたい人が増えています。
Home AssistantにローカルLLMをMCP経由で接続すると、デバイス操作・オートメーション実行・エンティティ情報の取得をすべてローカルで処理できます。この記事では、実際に動作させた設定手順と、モデルごとの精度の違い、使う上での注意点をまとめます。
この記事でわかること
- MCP(Model Context Protocol)がHome Assistantでどう使われるか
- HA-MCPサーバーの設定方法(uvx + mcp.json)
- ローカルLLMの性能比較(DeepSeek / Gemma / Qwen)
- 安全のために無効化すべきツール
MCPとはなにか
MCP(Model Context Protocol)は、LLMアプリケーションが外部ツールやデータソースと連携するための標準プロトコルです。Anthropicが2024年に公開し、現在はClaude Desktop、LM Studio、Cursor、Zedなど多くのクライアントが対応しています。
従来のLLM統合では、Home Assistant側がAPIを呼び出してモデルに会話を投げる形が主流でした。MCPはこれを逆転させます。LLMクライアント(LM StudioやClaude Desktop)がMCPサーバーとして動作するHome Assistantに接続し、ツールとして操作を実行します。この構造により、LLM側を自由に差し替えられるのが利点です。
Home AssistantのMCP対応状況
Home Assistantは2025年後半から公式でMCPサーバー統合をサポートしています。
https://www.home-assistant.io/integrations/mcp_server/
設定は「Settings → Devices & services → Add Integration → Model Context Protocol Server」から追加できます。公式統合は /api/mcp エンドポイントでStreamable HTTPプロトコルを提供し、OAuthによる認証も対応しています。
ただし、クライアントがリモートサーバーに対応していない場合は、mcp-proxy のようなローカルゲートウェイが別途必要になります。また、公式統合のSSEサーバーとローカルのLM Studioを組み合わせようとすると、プロキシ設定まわりで問題が起きるケースもあります。
コミュニティ製の HA-MCPサーバー(ha-mcp)は、追加の統合やプロキシなしでLM Studioに直接接続できるため、ローカルLLM連携では安定して動作します。
設定手順
1. Home Assistantで長期アクセストークンを作成する
Home Assistantのプロフィール画面を開き、「Security」タブ → 「Long-lived access tokens」から「Create token」をクリックします。トークンは作成後に一度しか表示されないため、パスワードマネージャーにすぐ保存してください。
2. uvをインストールする
HA-MCPサーバーは uvx 経由で実行します。WindowsであればPowerShellで以下を実行します。
winget install astral-sh.uv
macOS / Linuxなら公式の uv インストールスクリプトを使います。
3. LM StudioのMCP設定ファイルを編集する
LM Studioの mcp.json に以下を追加します。HOMEASSISTANT_URL にはHome AssistantのローカルIPアドレス(例: http://192.168.1.100:8123)、HOMEASSISTANT_TOKEN には手順1で取得したトークンを入れます。
{
"mcpServers": {
"Home Assistant": {
"command": "uvx",
"args": [
"ha-mcp@latest"
],
"env": {
"HOMEASSISTANT_URL": "http://192.168.1.100:8123",
"HOMEASSISTANT_TOKEN": "your-long-lived-token"
}
}
}
}
ファイルを保存してLM Studioを再起動すると、統合セクションにHome AssistantのMCPツールが表示されます。
ローカルLLMの性能比較
Home Assistantとの連携では、MCPツールを確実に呼び出せるモデルの選定が重要です。実際にいくつかのモデルを試した結果をまとめます。
| モデル | パラメータ | 評価 |
|---|---|---|
| DeepSeek R1 Distil Qwen | 1.7B | MCPアクセスはできるがエンティティ名を幻覚。実用不可 |
| Gemma 3 | 4B | MCPツールの呼び出しに失敗することが多い |
| Qwen 3.5 | 9B | エンティティ情報の取得・オートメーション操作ともに安定 |
Qwen 3.5(9B)はVRAM消費が大きいものの、ダッシュボードのエンティティ一覧を正確に返せるレベルの精度があります。小さいモデルはMCPのツール定義を正しく解釈できずに失敗するケースが多く、Home Assistant連携には9B以上が現実的な選択肢です。
何ができるか
設定が完了すると、LM Studioから自然言語でHome Assistantを操作できます。
- カスタムダッシュボードのエンティティ一覧を取得して状態を報告させる
- 特定のデバイスのオン・オフをテキストで指示する
- オートメーションを手動でトリガーする
- HATCSのアドオン一覧を確認する
- スクリプトを修正する
MCPサーバーに公開できるエンティティはHome Assistantの「exposed entities」ページから制御できるため、LLMに見せたくないデバイスは除外しておけます。
リスクのあるツールは無効化する
HA-MCPサーバーには強い権限を持つツールが含まれます。バックアップの復元、HASSコアの再読み込み、サービスの更新、ファイルの書き込み、スクリプトのトリガーなどは、LLMが誤解釈したときの影響が大きい操作です。
これらはHA-MCPの設定で無効化するか、Home Assistantの「exposed entities」で公開範囲を絞ることで制限できます。スマートホームの中核システムをLLMに渡す以上、最小権限の原則で構成するのが無難です。
まとめ
Home AssistantはMCPサーバーとして公式・非公式の両方でローカルLLM連携が可能になっています。動作させるには9B以上のモデルが必要で、Qwen 3.5が現時点で安定した選択肢です。設定自体は mcp.json に数行追加するだけで完結しますが、LLMに渡す権限の絞り込みは事前にしっかり行ってください。