mcpField
H
Homey-Wan-Kenobi MCP

Homey-Wan-Kenobi MCP

ローカル
github.comその他117 週間前に更新

Homey-Wan-Kenobi MCP について

Homey-Wan-Kenobi MCPは、Homey Proを管理するセルフホスト可能なMCPサーバーです。デバイス制御やフロー作成に加え、エネルギー情報とZ-Wave/Zigbeeの診断に対応し、stdioとstreamable-HTTPを利用できます。

主な機能

  1. 01デバイスとゾーンの制御・管理
  2. 02フローの作成・編集・実行
  3. 03エネルギーレポートとセンサー履歴の確認
  4. 04Z-WaveとZigbeeネットワークの診断
  5. 05バックアップ・メモリ・ストレージの確認

活用シーン

  1. 01自然言語でHomey Proのデバイスを操作
  2. 02Homeyの自動化フローを新規作成・調整
  3. 03エネルギー使用量やセンサー履歴の調査
  4. 04無線メッシュネットワークや接続の問題を調査

MCP 対応

Homey Proのデバイス、フロー、エネルギー、診断機能をツールとプロンプトとしてMCPクライアントに公開します。stdioとstreamable-HTTPに対応し、セルフホストできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ringosystems-homey-wan-kenobi": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HOMEY_ADDRESS",
"-e",
"HOMEY_TOKEN",
"docker.io/ringosystems/homey-wan-kenobi:2.2.0"
],
"env": {
"HOMEY_ADDRESS": "<HOMEY_ADDRESS>",
"HOMEY_TOKEN": "<HOMEY_TOKEN>"
}
}
}
}
起動コマンドdocker run -i --rm -e HOMEY_ADDRESS -e HOMEY_TOKEN docker.io/ringosystems/homey-wan-kenobi:2.2.0
設定が必要な環境変数
HOMEY_ADDRESSBase URL of your Homey Pro local API, e.g. http://192.168.1.10
HOMEY_TOKENシークレットHomey local API key (my.homey.app > Settings > API keys)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocidocker.io/ringosystems/homey-wan-kenobi:2.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Homey-Wan-Kenobi MCP

CI Docker Pulls License: MIT

Homey Pro スマートホームシステムを、Model Context Protocol を通じて操作する MCP サーバーです。

名前は、自然言語による操作を実現する、あなたの家にとって唯一の希望である Obi-Wan Kenobi にちなんでいます。

デバイス操作、フロー作成、自動化、監視、トラブルシューティング、ネットワーク診断、セルフホスト可能なデプロイに対応する 60 のツールと 3 つのナレッジプロンプトを備えています。

Homey-Wan-Kenobi を選ぶ理由

Athom は公式の Homey MCP Server を提供しています。これは、Claude または ChatGPT の有料プランに追加し、Homey アカウントでサインインする、クラウド仲介型のリモートコネクターです。デバイスの状態確認と操作、デバイス名の変更と移動、Flow と Advanced Flow の作成、更新、開始、Moods の設定に対応しています。

このサーバーは 2 つの点で異なります。セルフホスト可能であるため、サードパーティの仲介サービスや有料 AI プランを必要とせず、stdio またはストリーミング可能な HTTP 経由で自分で実行できます。また、公式サーバーで説明されている機能には含まれていない、パワーユーザー向けの運用機能を追加しています。

以下の表は、2026 年 6 月時点で Athom が公開している説明に基づいています。Athom は正式なツール一覧を公開していないため、右側の不足機能は Athom の説明から推測したものであり、Athom が明言した内容ではありません。

機能公式 Homey MCP(mcp.athom.com)Homey-Wan-Kenobi
ホスティングクラウド仲介型のリモートコネクターセルフホスト可能、stdio または HTTP、仲介サービス不要
アクセスClaude/ChatGPT の有料コネクタープラン任意の MCP クライアント、プラン不要
デバイス、ゾーン、操作、名前変更、移動対応対応
Flow と Advanced Flow の作成対応対応
Moods対応対応
フローカードのスキーマ検出(ゼロからフローを作成)説明なし対応
エネルギー:現在の電力と日/週/月/年ごとのレポート説明なし対応
インサイト:センサーおよびメーターの履歴データ説明なし対応
対処方法を含む Z-Wave および Zigbee メッシュ診断説明なし対応
アプリのメモリーと使用状況の分析(削除候補)説明なし対応
インフラ運用:バックアップ、再起動、更新、メモリー、ストレージ説明なし対応
Homey Web API の直接パススルー説明なし対応
公開 MCP レジストリへの登録なしあり
実際の機能の深さ
  • 公式サーバーが説明していないネットワーク診断。 diagnose_zwave_network と diagnose_zigbee_network は、コントローラーの健全性を確認し、最終確認からの経過時間(バッテリー駆動でスリープする機器を考慮)に基づいて各ノードを評価し、送信失敗をグループ化して利用不可のデバイスと照合し、深刻度順に対処方法を返します。get_zwave_log では、ネットワークログの生データを確認できます。
  • エネルギーとインサイトの分析。 ゾーンやデバイスごとのリアルタイム消費電力、日・週・月・年ごとのエネルギーレポート、タイムスタンプ付きのセンサーおよびメーターの履歴データを利用できるため、「現在、何が電力を消費しているか」や「今週、寝室の温度はどのように推移したか」といった質問にモデルが回答できます。
  • アプリのメモリと使用状況の分析。 analyze_app_usage は、すべてのアプリについて RAM、デバイス数、フローからの参照を相互に照合し、安全に削除できる候補を特定して、削減量を推定します。読み取り専用で、アドバイスのみを提供します。
  • オートメーションを一から作成。 フローカード検出エンジン(list_flow_cards、get_flow_card)は、各カードの引数スキーマ全体を返します。さらに、標準フローとAdvanced Flowの完全なCRUD(削除を含む)に対応しており、AIがUUIDを使ってカードグラフ全体を作成・削除できます。
  • 1つのインターフェースからインフラストラクチャを操作。 バックアップ、再起動、アップデートの確認、メモリとストレージの使用状況、ドライバー、LEDリング、セッション、位置情報を扱えます。
  • 将来に備えた回避策。 homey_api_call を使うと、任意のHomey Web APIエンドポイントに直接アクセスできるため、ツールの更新を待たずに新しいファームウェア機能を利用できます。

堅牢化された非rootの node:22-alpine イメージ上で動作し、すべてのビルドとリリースはTrivyスキャンに合格する必要があります。また、Docker Hub、GHCR、公開MCP Registryで公開されています。全機能の一覧は、以下のツールリファレンスを参照してください。

公式サーバーが適している場合

このサーバーはローカルファーストでセルフホスト可能です。それが強みであると同時に、トレードオフでもあります。次のような場合は、公式のHomey MCPがより手軽な選択肢です。

  • セットアップ不要のマネージドホスティング。 URLを1つ追加して、Homeyアカウントでサインインするだけです。実行、公開、保守が必要なコンテナーはなく、ワンクリックで使えるChatGPTアプリもあります。
  • どこからでも安全にリモートアクセス。 Athomがクラウド経由で接続を仲介するため、LAN上で何も公開せずに外出先から利用できます。このサーバーのHTTPモードは、信頼できるローカルネットワークでの利用を想定しています。リモートで利用する場合は、ご自身でVPNまたは認証付きリバースプロキシをご用意ください。
  • すべてのHomeyモデルに対応。 公式エンドポイントはHomey Cloud、Pro、Pro mini、Self-Hosted Serverに接続でき、ローカルAPIのないクラウド専用の構成にも対応します。このサーバーは、ローカルAPIまたはAthomトークンでアクセスできるHomeyを対象としているため、Homey Proで最もよく機能します。
  • ファーストパーティのサポート。 Athomが保守し、ファームウェアに合わせて更新され、ClaudeおよびChatGPTアプリでの公式テストも実施されています。このプロジェクトは独立して運営されており、ベストエフォートで提供されています。

2つのサーバーは相互補完的です。手軽なリモート操作には公式コネクターを使い、詳細なローカル診断、エネルギー分析、インフラストラクチャの操作にはこのサーバーを使う方も多くいます。Athomは正式なツール一覧を公開していないため、公式サーバーには上記に記載されていない機能が含まれている可能性もあります。

クイックスタート

git clone https://github.com/Ringosystems/Homey-Wan-Kenobi-MCP.git
cd Homey-Wan-Kenobi-MCP
npm install
npm run build

Homeyを認証します。

npx homey login
npx homey select

MCPクライアントの設定(Kiro、Claude Desktop、Clineなど)に追加します。

{
  "mcpServers": {
    "homey": {
      "command": "node",
      "args": ["/path/to/Homey-Wan-Kenobi-MCP/dist/index.js"]
    }
  }
}

認証

このサーバーでは、2つの認証方法を利用できます。

**Homey CLI(推奨)**では、npx homey login と npx homey select を実行します。サーバーは、保存されているOAuthトークンを ~/.athom-cli/settings.json から自動的に読み込みます。

ローカルAPIキーは、my.homey.appで作成します。環境変数を設定してください。

export HOMEY_ADDRESS=http://192.168.1.x
export HOMEY_TOKEN=your-api-key

ローカルAPIキー方式は、セルフホスト環境でコンテナーを実行する場合に推奨されます。マウントされたCLI設定ファイルに依存しないためです。

セルフホスト(Docker / HTTP)

イメージは ringosystems/homey-wan-kenobi で公開されており(ghcr.io/ringosystems/homey-wan-kenobi にもミラーされています)、サーバーは io.github.Ringosystems/homey-wan-kenobi-mcp として MCP Registry に登録されています。node:22-alpine をベースに構築され、root 以外のユーザーとして実行されます。また、あらかじめ組み込まれたシークレットはありません。監査の詳細については、SECURITY.md を参照してください。

デフォルトでは stdio トランスポートを使用するため、MCP クライアントから直接起動できます。また、MCP_TRANSPORT=streamable-http を設定すると、長時間稼働する streamable-HTTP サービスを公開します(/mcp では supergateway 経由、ヘルスチェックは /healthz)。

最速:コマンド 1 つ(ビルド済みイメージ)

クローンもビルドも不要です。必要なものを 2 つ取得して起動します。

curl -fsSLO https://raw.githubusercontent.com/Ringosystems/Homey-Wan-Kenobi-MCP/main/docker-compose.deploy.yml
printf 'HOMEY_ADDRESS=http://192.168.1.x\nHOMEY_TOKEN=your-local-api-key\n' > .env
docker compose -f docker-compose.deploy.yml up -d

サービスは http://<host>:8000/mcp で利用できます(ヘルスチェックは /healthz)。Unraid では、代わりに URL からテンプレートを追加します。Docker、Add Container の順に選択し、https://raw.githubusercontent.com/Ringosystems/Homey-Wan-Kenobi-MCP/main/deploy/unraid/homey-wan-kenobi.xml を Template フィールドに貼り付けてください。イメージはマルチアーキテクチャ対応のため、x86 および ARM(Apple Silicon、Raspberry Pi)ホストで実行できます。

/mcp エンドポイントには認証機能が組み込まれていません。信頼できる LAN 内で使用するか、TLS と認証を追加するリバースプロキシの背後に配置してください。

MCP クライアントとして実行(stdio)
docker run -i --rm \
  -e HOMEY_ADDRESS=http://192.168.1.x \
  -e HOMEY_TOKEN=your-local-api-key \
  ringosystems/homey-wan-kenobi:latest
HTTP サービスとして実行
docker run -d -p 8000:8000 \
  -e MCP_TRANSPORT=streamable-http \
  -e HOMEY_ADDRESS=http://192.168.1.x \
  -e HOMEY_TOKEN=your-local-api-key \
  --restart unless-stopped \
  ringosystems/homey-wan-kenobi:latest
Docker Compose

docker-compose.yml と同じディレクトリにある .env ファイルを使って、Homey の認証情報を指定します。

cat > .env <<'EOF'
HOMEY_ADDRESS=http://192.168.1.x
HOMEY_TOKEN=your-local-api-key
EOF

# Pull the published image, or add --build to build locally instead
docker compose up -d

付属の docker-compose.yml は公開イメージを参照し(ローカルビルド用のフォールバックとして build: . を使用)、コンテナを強化する設定(読み取り専用のルートファイルシステム、Linux ケイパビリティの削除、no-new-privileges、メモリと PID の制限)を適用します。

services:
  homey-wan-kenobi:
    image: ringosystems/homey-wan-kenobi:latest
    build: .
    container_name: homey-wan-kenobi
    ports:
      - "8000:8000"
    environment:
      MCP_TRANSPORT: streamable-http
      HOMEY_ADDRESS: "${HOMEY_ADDRESS:-http://192.168.1.x}"
      HOMEY_TOKEN: "${HOMEY_TOKEN:-}"
    restart: unless-stopped
    read_only: true
    tmpfs:
      - /tmp
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    mem_limit: 256m
    pids_limit: 128
    healthcheck:
      test: ["CMD", "node", "-e", "fetch('http://localhost:8000/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 20s
ローカルでビルド
docker build -t ringosystems/homey-wan-kenobi .
docker run -d -p 8000:8000 \
  -e MCP_TRANSPORT=streamable-http \
  -e HOMEY_ADDRESS=http://192.168.1.x \
  -e HOMEY_TOKEN=your-local-api-key \
  --restart unless-stopped \
  ringosystems/homey-wan-kenobi
クライアントの接続

MCP クライアントを streamable-HTTP エンドポイントに接続します。

{
  "mcpServers": {
    "homey": {
      "type": "streamable-http",
      "url": "http://your-host:8000/mcp"
    }
  }
}

curl http://your-host:8000/healthz でヘルスチェックを確認できます。

ツール

デバイス
ツール説明
list_devicesデバイスを現在の機能値とともに一覧表示します。ゾーンまたはクラスで絞り込めます
get_deviceID を指定して、デバイスの詳細とすべての機能値を取得します
search_devices名前、クラス、または機能でデバイスを検索します
set_device_capabilityデバイスを操作します(onoff、dim、target_temperature、volume_set など)
デバイスとゾーンの管理
ツール説明
rename_deviceデバイスの名前を変更します
move_device_to_zoneデバイスを別のゾーン(部屋)に移動します
create_zone必要に応じて親ゾーンの下に、新しいゾーンを作成します
ゾーン
ツール説明
list_zones階層構造とともに、すべてのゾーン(部屋/エリア)を一覧表示します
フロー
ツール説明
list_flows有効/破損の状態とともに、シンプルフローとアドバンスドフローを一覧表示します
trigger_flowフローをすぐに実行します
set_flow_enabledフローを有効または無効にします
フローの作成
ツール説明
get_flowID を指定して、標準の WHEN/AND/THEN フロー定義を取得します
create_flowトリガー、条件、アクションから標準フローを作成します
update_flow標準フローのフィールドを更新します
delete_flow標準フローを完全に削除します
get_advanced_flowアドバンスドフローの定義(カード、引数、接続)を取得します
create_advanced_flowカードグラフからアドバンスドフローを作成します
update_advanced_flowアドバンスドフローを更新します(カードグラフを置き換えます)
delete_advanced_flowアドバンスドフローを完全に削除します
フローカードの検出
ツール説明
list_flow_cards部分文字列で絞り込んで、トリガー/条件/アクションカードを一覧表示します
get_flow_card1 つのフローカードの完全な定義と引数スキーマを取得します
ロジックとアプリ
ツール説明
list_variables現在の値とともにロジック変数を一覧表示します
set_variableロジック変数の値を設定します
list_appsバージョン、ステータス、入手元とともにインストール済みアプリを一覧表示します
restart_appHomey アプリを再起動します
enable_appアプリを有効または無効にします
uninstall_appアプリをアンインストールし、そのデバイスを削除します
インサイトとエネルギー
ツール説明
list_insights利用可能なインサイトログを一覧表示します
get_insight_entries指定した期間のセンサー/メーターの履歴データを取得します
get_energy_liveゾーンおよびデバイスごとのリアルタイム消費電力を取得します
get_energy_report日、週、月、年単位のエネルギーレポートを取得します
天気、在宅状況、位置情報
ツール説明
get_weatherHomey の位置情報に基づく現在の天気を取得します
get_weather_hourly1 時間ごとの天気予報を取得します
get_presenceすべてのユーザーの在宅/外出状況と起床/就寝状況を取得します
set_presence自分の在宅状況または睡眠状態を設定します
get_locationHomey に設定されている地理的位置情報を取得します
アラームとムード
ツール説明
list_alarmsすべてのアラームとタイマーを一覧表示します
set_alarmアラームを作成または更新します
delete_alarmアラームを削除します
list_moodsゾーンごとにムード(シーン)を一覧表示します
set_moodゾーンでムードを有効にします
通知
ツール説明
list_notifications最近の通知を 50 件一覧表示します
create_notificationHomey のタイムラインに通知を送信します
ネットワーク診断
ツール説明
diagnose_zigbee_networkZigbee メッシュの状態、ノードごとの最終検出時刻、問題と対処方法を確認します
diagnose_zwave_networkZ-Wave の状態、送信失敗、利用できないノード、対処方法を確認します
get_zwave_logトラブルシューティング用に、最近の Z-Wave ネットワークログを生データで取得します
アプリ使用状況の分析
ツール説明
analyze_app_usageアプリと RAM、デバイス、フローからの参照を照合し、削除候補を特定します(参考情報のみ、読み取り専用)
システムとインフラストラクチャ
ツール説明
get_system_infoシステム情報(バージョン、Wi-Fi、ホスト名、ハードウェア)を取得します
list_drivers利用可能なすべてのデバイスドライバーを一覧表示します
get_backup_statusバックアップ設定と最終バックアップ時刻を取得します
create_backup新しいバックアップをスケジュールします
get_ledringLED リングのスクリーンセーバーのオプションと現在の設定を取得します
set_ledringLED リングのスクリーンセーバーを設定します
get_updatesシステムの更新と更新設定を確認します
get_session現在の API セッション情報(ユーザー、ロール、スコープ)を取得します
reboot_homeyHomey Pro を再起動します
get_memory_infoアプリおよびコンポーネントごとのメモリ使用量を取得します
get_storage_infoストレージ使用量の内訳を取得します
set_system_nameHomey のシステム名を設定します
高度な機能
ツール説明
homey_api_call任意の Homey Web API エンドポイントを直接呼び出すための、低レベルの手段です

プロンプト

MCP プロンプト API から利用できる組み込みのナレッジプロンプト:

プロンプト説明
homey_best_practicesゾーンの設計、デバイスの命名、プロトコルのヒント、エネルギー管理、セキュリティ
homey_troubleshootingオフラインデバイス、Z-Wave/Zigbee の問題、フローのデバッグ、パフォーマンスの診断
homey_flow_patterns自動化パターン、命名規則、避けるべきアンチパターン

開発

npm run dev        # Run with tsx (no build step)
npm run build      # Compile TypeScript
npm run lint       # ESLint
npm run typecheck  # TypeScript strict check
npm start          # Run compiled version

技術スタック

  • TypeScript + Node.js (>=20)
  • homey-api v3、公式 Homey Web API クライアント
  • @modelcontextprotocol/sdk v1.29、MCP サーバー(ToolAnnotations を使用した registerTool)
  • パラメーター検証用の zod
  • セルフホスト可能なストリーミング HTTP トランスポート用の supergateway

セキュリティ

依存関係ツリー、ベースイメージ、コンテナー設定は、Trivy と npm audit で監査されています。公開イメージは、組み込みのシークレットを含まず、node:22-alpine 上で非 root ユーザーとして実行されます。また、本番環境の依存関係に含まれる重大または深刻なアドバイザリは 0 件です。監査の詳細、許容される残存リスク、スキャンの再現方法については、SECURITY.md をご覧ください。

ライセンス

MIT

リリース手順、初回セットアップ、Unraid Community Applications への申請については PUBLISHING.md に、主な変更点については CHANGELOG.md に記載されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。