スマートホームの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に渡す権限の絞り込みは事前にしっかり行ってください。