>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Python

LLMエージェントでUniFiネットワークとカメラを管理する

UniFi MCP — AI agents for your UniFi infrastructure

UniFi Controllerでファイアウォールを設定したり、UniFi Protectでカメラの特定のクリップを検索したりしたことがある人なら、その面倒くささが分かるだろう。Webインターフェースを開き、メニューをクリックし、適切なVLANやクライアントMACアドレスを探す。スクリプトで自動化することも可能だが、UbiquitiのAPIは所々で独特で、バージョンごとに変更がある。

unifi-mcpプロジェクトは異なるアプローチを採用している。Model Context Protocol(MCP)を使用した一連のサーバーで、Claude Code、Codex、OpenClawなどのAIアシスタントをUniFiコントローラに接続する。

プロジェクトの中身

リポジトリはPythonとTypeScriptのモノレポとして構成されており、Ubiquiti製品エリアをカバーする3つの主要モジュールに分けられている:

  1. Network — ネットワーク機器を管理するモジュール。VLAN、ファイアウォール、クライアント、Wi-Fiネットワーク、デバイス向けの186のツールを備えている。
  2. Protect — ビデオ監視ツール。イベントの検索、モーション検知の分析、カメラ操作向けの61の関数を含む。
  3. Access — アクセス制御管理。ドア、認証情報、アクセスログ向けの36の関数を含む。

さらに、MCPプロトコルをサポートしていないクライアント向けのREST/GraphQLサーバーが別途用意されており、Cloudflare Workers経由でローカルネットワークとリモートエージェントを接続するCloud Relayシステムも含まれている。

セキュリティと致命的なエラーからの保護

言語モデルにホームネットワークやオフィスネットワークのファイアウォールへの直接アクセスを許可することは、大胆な判断だ。unifi-mcpの開発者は、何か壊すリスクを減らすために2つの安全メカニズムを組み込んでいる。

最初のメカニズムは、プレビュー確認方式だ。設定変更はまずプレビューを返し、AIエージェントはコントローラに送信する正確なJSONまたはルールリストを表示して、明示的な確認を待つ。

2番目の要素は機密データの自動編集だ。デフォルトでは、すべてのWi-Fiパスワード、VPNキー、SNMPコミュニティ、トークンがツール応答から削除され、***REDACTED***に置き換えられる。モデルはコンテキスト内でシークレットを見ることはなく、ログに誤って「漏洩」することもない。ただし、信頼できるローカル管理スクリプトを実行している場合は、環境変数介してマスクを無効にすることができる。

実践的なシナリオ

インターフェースを手動で検索する代わりに、自然言語でエージェントにクエリを書くことができる。

ネットワークモジュールの場合:

  • 「ゲストVLANのすべてのクライアント、信号強度、トラフィック量を表示」
  • 「ファイアウォールルールを監査し、重複や競合するポリシーを検出」
  • 「IoTデバイスのインターネットアクセスを深夜0時から午前6時までブロックするルールを作成」

セキュリティシステムの場合:

  • 「今週の入り口での車両認識イベントをすべて検索」
  • 「タイムスタンプを照合:午前2時に正面玄関でバッジタップしたのは誰で、その時刻に近くでモーションを記録したカメラはどれか」

ちなみに、頻繁なタスク向けにはリポジトリにエージェント向けの組み込みスキルがすでに含まれている。例えば、Firewall Auditorは16のネットワークセキュリティチェックを実行し、修復の推奨事項と共に100点満点のスコアを出力する。

技術的な仕組み

このプロジェクトは、最近のMCPプロトコルの改訂版 активно uses features from recent MCP protocol revisions. Since a tool with 186 functions can fill an LLM's context window before the conversation even starts, lazy discovery is implemented here. Initially, the server only passes search meta-tools to the assistant, and specific endpoints are loaded on demand.

ローカル環境でサーバーを起動するには、uvxで単一のコマンドを実行する:

uvx unifi-network-mcp@latest
uvx unifi-protect-mcp@latest
uvx unifi-access-mcp@latest

設定は環境変数を通じて渡される。接続にはUniFiコントローラ上的ローカル管理者アカウントが必要だ。注:二要素認証やUbiquiti SSOのアカウントは動作しない——MCPが機能するには別途ローカルサービスユーザーを作成する必要がある。

Claude Desktop用の設定例:

{
  "mcpServers": {
    "unifi-network": {
      "command": "uvx",
      "args": ["unifi-network-mcp@latest"],
      "env": {
        "UNIFI_HOST": "192.168.1.1",
        "UNIFI_USERNAME": "mcp-service-account",
        "UNIFI_PASSWORD": "your-safe-password"
      }
    }
  }
}

試してみる価値はあるか

このプロジェクトは、同クラスとしては成熟しているように見える:GitHubで588スター、アクティブなコミット、Python 3.13+サポート。システム管理者、Home Assistant愛好家、Ubiquiti上で自動化を構築している人々に役立つだろう。

家にアクセスポイント1つだけなら、MCPサーバーを設定する意味はない。しかし、ファイアウォール、カメラ、アクセス制御を含む複雑なインフラストラクチャでは、ダッシュボードを手動で検索する代わりにエージェントに質問できる機能は、大幅な時間節約になる。

関連プロジェクト