Dirigera Mcp Iot Device Control Server について
IKEA Dirigera のスマートホーム機器を管理する MCP サーバーです。照明、コンセント、環境センサーの状態確認と操作ができ、ローカルとリモートの接続方式に対応します。
主な機能
- 01センサー値の取得
- 02コンセントと照明の状態確認
- 03機器の電源切り替え
- 04照明の明るさと色の調整
- 05標準入出力とリモート転送
- 06任意の JWT 認証
活用シーン
- 01温度、湿度、空気質の確認
- 02コンセントの電力と照明状態の確認
- 03名前を指定した照明やコンセントの操作
- 04対応照明の明るさや色の変更
MCP 対応
センサー、コンセント、照明の状態取得と、電源や照明設定を操作するツールを MCP クライアントに提供します。標準入出力、streamable HTTP、SSE に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Dirigera MCP サーバー
IKEA Dirigera スマートホームデバイス(コンセント、ライト、環境センサー)を制御する MCP サーバーです。
FastMCP と dirigera Python ライブラリを使用して構築されています。
前提条件
- Python 3.11+
- uv パッケージマネージャー
- ローカルネットワーク上の IKEA Dirigera ハブ
セットアップ
1. 依存関係をインストールする
uv sync
2. Dirigera トークンを取得する
Dirigera ハブで認証するには JWT トークンが必要です。付属のヘルパーを使用します。
uv run gen_token.py 192.168.1.200
ハブに認証チャレンジが送信されます。プロンプトが表示されたら、Dirigera ハブのアクションボタンを押してください。トークンが出力されます。
3. 設定する
サンプル設定をコピーして、値を入力します。
cp config.example.toml config.toml
[dirigera]
host = "192.168.1.200"
token = "your-dirigera-token-here"
サーバーはデフォルトで ../config.toml(1つ上のディレクトリ)を検索します。--config-path で変更できます。
uv run dirigeramcp.py --config-path ./config.toml
サーバーの実行
ローカル(stdio)— Claude Desktop、Claude Code、MCP CLI 向け
uv run dirigeramcp.py
リモート(streamable-http)— リモートクライアント向け推奨
uv run dirigeramcp.py --transport streamable-http --host 0.0.0.0 --port 8000
サーバーは http://<your-ip>:8000/mcp で利用できます。
リモート(SSE)— レガシー
uv run dirigeramcp.py --transport sse --host 0.0.0.0 --port 8000
サーバーは http://<your-ip>:8000/sse で利用できます。
JWT 認証を使用する場合
リモートトランスポートでは、JWT 認証を有効にできます。
uv run dirigeramcp.py --transport streamable-http --host 0.0.0.0 --auth
--auth を指定して初回実行したとき、設定に [auth] セクションがない場合は、サーバーがシークレットを自動生成して保存します。config.toml で手動設定することもできます。
[auth]
jwt_secret = "your-hex-secret"
api_key = "your-hex-api-key"
expiry_hours = 24
JWT トークンを取得するには、トークンエンドポイントに POST します。
curl -X POST http://localhost:8000/auth/token \
-H "Content-Type: application/json" \
-d '{"api_key": "your-api-key"}'
有効期限が近いトークンを更新するには、次のようにします。
curl -X POST http://localhost:8000/auth/refresh \
-H "Authorization: Bearer <your-jwt-token>"
利用可能なツール
| ツール | 説明 | パラメーター |
|---|---|---|
get_environment_sensors | 温度、湿度、PM2.5、VOC、CO2 を含むセンサーの一覧 | -- |
get_outlets | 電力、電圧、電流を含むコンセントの一覧 | -- |
get_lights | 明るさ、色温度、色相、彩度、オン/オフ状態を含むライトの一覧 | -- |
set_onoff | 名前を指定してコンセントまたはライトをオン/オフにする | name、is_on |
set_light_level | ライトの明るさを設定する | name、light_level(int) |
set_light_color | ライトの色を設定する(対応している場合) | name、color_saturation(0.0-1.0)、color_hue(0-360) |
MCP Inspector でのテスト
npx @modelcontextprotocol/inspector uv --directory . run dirigeramcp.py
Claude Desktop の設定
次の内容を Claude Desktop の claude_desktop_config.json に追加します。
{
"mcpServers": {
"dirigera": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-agents/dirigera/fastmcp",
"run",
"dirigeramcp.py"
]
}
}
}
コマンドラインオプション
--config-path Path to config TOML file (default: ../config.toml)
--host Host to bind to (default: 127.0.0.1, use 0.0.0.0 for remote)
--port Port to bind to (default: 8000)
--transport stdio | sse | streamable-http (default: stdio)
--auth Enable JWT authentication (remote transports only)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。