UniFi MCP Server
UniFi MCP Server
mcp-name: io.github.mikeholownych/unifi-mcp
Claude などの AI アシスタントに UniFi Network および Protect のインフラストラクチャ管理・分析機能へのアクセスを提供する MCP (Model Context Protocol) サーバーです。
クレジット: このプロジェクトは gbassaragh/Unifi-mcp のフォークとして始まり、その後完全に独立したプロジェクトへと発展しました。素晴らしい出発点を提供してくれた @gbassaragh に感謝します。
アップストリームからの改善点
ローカルセッション認証ルーティングの修正 —
UNIFI_MODE=localでは、リクエストが従来のコントローラー API(/proxy/network)を Cookie + CSRF セッション認証で正しく使用するようになりました。アップストリームはモードに関係なく常に Integration API 経由でルーティングしていました。モード対応のベース URL 解決 —
api_base_urlは、無条件に Integration API エンドポイントを返すのではなく、設定された認証モードを尊重するようになりました。テストスイートの拡充 — 設定、ネットワーククライアントの動作、サーバーツール登録、Protect 連携をカバーする 57 件の成功テスト。
Related MCP server: UniFi MCP Server
機能
UniFi Network
デバイス管理: UniFi デバイス(AP、スイッチ、ルーター)の一覧表示、再起動、位置特定、アップグレード
クライアント管理: 接続中クライアントの監視、ブロック/ブロック解除、トラフィック統計の表示
サイト管理: サイトの健全性、ネットワーク設定、VLAN、ワイヤレス設定の表示
統計と監視: イベント、アラーム、スピードテスト、DPI 統計
AI を活用したインサイト: ネットワーク分析、最適化の推奨事項、トラブルシューティング
UniFi Protect
カメラ管理: カメラの一覧表示、ステータス表示、ライブスナップショットの取得
システム監視: NVR ステータス、カメラの健全性サマリー
アクセサリ: ライト、センサー、チャイム、ビューアーの管理
ライブビュー: 設定済みカメラビュー構成へのアクセス
マルチデバイスサポート
複数の UniFi デバイス(ゲートウェイ、NVR など)を設定可能
名前で特定のデバイスを指定可能 — すべてのネットワークおよび Protect ツールはオプションの
deviceパラメーターを受け付けますデバイスごとの API キー: 設定済みの各デバイスは独自のキーで認証します
デバイスをまたいだ Network サービスと Protect サービスの混在
認証モード
モード | 認証 | 最適な用途 |
| Integration API キー | 推奨されるデフォルト。広範な読み取りアクセス |
| ユーザー名/パスワードセッション | 全機能アクセス: ファイアウォールルール、WLAN 設定、サイト設定、イベント、アラーム、DPI |
| api.ui.com キー | リモート/クラウド管理コントローラー |
API キーを使用する場合(Integration API)、コントローラー機能の一部はレガシーセッション認証(UNIFI_MODE=local)でのみ利用できます。ネットワークイベント、アラーム、DPI 統計、スピードテスト、WLAN 設定、ファイアウォールルール、ポートプロファイル、ルーティングテーブルです。これらの機能のツールは、黙って失敗するのではなく、有効にする方法を説明する明確なエラーを返します。インサイトツールはグレースフルに機能を縮小し、データの制限を報告します。
ローカルアカウントに関する注意: MFA で保護された SSO/Ubiquiti アカウント管理者はセッションログインを完了できません。
UNIFI_MODE=localを使用するには、コンソールで ローカル管理者(ローカルアクセスのみに制限)を作成してください。
エージェントスキル
バンドルされているスキル(skills/ 内)は、このサーバー向けに実証済みのワークフローをエージェントに教えます。コントローラー固有の落とし穴(Network 10 で削除されたエンドポイント、ゾーンペアルール、WPA3 移行)も含みます。
完全なドキュメント: 使用ガイド、期待される結果、トラブルシューティング、新機能のリクエスト方法については SKILLS.md を参照してください。
クイックリファレンス
スキル | 種類 | 目的 |
| 読み取り専用 | サイト全体の監査: デバイス、クライアント、WiFi 状態、ファイアウォール、構造化レポート |
| 読み取り専用 | 動作不良デバイスの診断: RF、ローミング、ブロック、IP レイヤー |
| 書き込み時要承認 | チャネルプラン、幅、WPA3 移行、バンドステアリング — 承認必須 |
| 書き込み時要承認 | デバイスに予約 IP とスコープ付きゾーンファイアウォールアクセスを付与 |
| 読み取り専用トリアージ | "インターネットが死んだ!" — 平易な言葉での障害診断、ISP エスカレーションスクリプト |
| 読み取り専用 | "私の WiFi に誰がいる?" — わかりやすいデバイス一覧、ランダム化 MAC を考慮した不正侵入者チェック |
| 書き込み時要承認 | 新しいガジェットをオンラインにする: ペアリングの落とし穴(2.4GHz/WPA3)、命名、IP 予約 |
| 読み取り専用 | "サイトが読み込まれないが ping は通る" — 名前解決と接続性の切り分け、強制内部 DNS パターン |
| 読み取り専用+ | VLAN 間で AirPrint/Cast が使えない — mDNS リフレクション、IGMP/IPTV の注意点 |
| 書き込み時要承認 | セルフホストサービスの公開(ヘアピン NAT、CGNAT 検出、ゾーンポリシーのペアリングを含む) |
| 書き込み時要承認 | WireGuard/Teleport のセットアップ + 障害対応ラダー(ハンドシェイク/MTU/ゾーンポリシー) |
| 書き込み時要承認 | 段階的なファームウェア更新: スナップショット、カナリア、検証、スタックデバイス対応ラダー |
| 読み取り専用 | 離れた部屋の WiFi が遅い: ワイヤレスアップリンク/ホップ診断、有線バックホールのガイダンス |
| 読み取り専用+ | 脅威アラート: 誤検知と実際の脅威の判別、抑制、IPS スループットコスト |
| 書き込み時要承認 | バックアップの内容、移行の経験則、移行前スナップショット |
| ドキュメント作成 | 永続的なラベル付きトポロジー(ゾーン/VLAN/依存関係)で、他のすべてのスキルを強化 |
スキルの仕組み
問題を自然な言葉で説明するだけで、エージェントがリクエストに合ったスキルを選び、そのワークフローに従います。
"インターネットが落ちた" →
unifi-internet-downが WAN、モデム、ゲートウェイを診断"私の WiFi に誰がいる?" →
unifi-whos-homeがデバイスを一覧表示し、不明なデバイスにフラグを立てます"ネットワークを監査して" →
unifi-network-auditが完全な健全性レポートを生成"新しいテレビをセットアップして" →
unifi-setup-new-deviceが WiFi ペアリングを案内
書き込み時要承認スキル(上記にマークあり)はネットワークを変更します。変更を適用する前には必ず承認を求めます。
非技術者向けスキルは専門用語を避け、すべての技術用語をわかりやすい言葉に置き換え、破壊的な操作の前には確認を求めます。
インストール(プロジェクト単位): .claude/skills/ にコピーします:
git clone https://github.com/mikeholownych/unifi-mcp.git
mkdir -p .claude/skills && cp -r unifi-mcp/skills/* .claude/skills/完全な使用ガイド、期待される結果、トラブルシューティング、新機能のリクエスト方法については SKILLS.md を参照してください。
スキルは MCP ツールをプレーン名(get_firewall_policies など)で参照します。MCP クライアントが自動的にプレフィックスを付与します。
対応ハードウェア
UniFi Dream Machine (UDM、UDM-Pro、UDM-SE)
UniFi Cloud Gateway (UCG-Ultra、UCG-Fiber)
UniFi Network Video Recorder (UNVR、UNVR-Pro)
UniFi Network Application (セルフホスト)
従来型 Cloud Key (Gen1、Gen2、Gen2+)
インストール
uv を使用する(推奨)
# Clone the repository
git clone https://github.com/mikeholownych/unifi-mcp.git
cd unifi-mcp
# Install dependencies
uv syncpip を使用する
pip install -e .設定
プロジェクトルートに .env ファイルを作成してください(または環境変数を設定)。すべてのオプションについては .env.example を参照してください。
マルチデバイス構成(推奨)
異なるサービスを持つ複数の UniFi デバイスを構成します:
UNIFI_DEVICES='[
{
"name": "main-gateway",
"url": "https://192.168.1.1",
"api_key": "your-gateway-api-key",
"services": ["network"],
"site": "default"
},
{
"name": "nvr",
"url": "https://192.168.1.2",
"api_key": "your-nvr-api-key",
"services": ["network", "protect"],
"site": "default"
}
]'
UNIFI_VERIFY_SSL=falseデバイス構成フィールド:
フィールド | 説明 | デフォルト |
| デバイスを指定するための表示名 | (必須) |
| UniFi デバイスのベース URL | (必須) |
| UniFi OS Control Plane の API キー | (必須) |
| 配列: |
|
| ネットワーク操作のサイト名 |
|
| SSL 証明書を検証する |
|
| Protect イベント用のユーザー名(オプション) |
|
| Protect イベント用のパスワード(オプション) |
|
注: username フィールドと password フィールドは、Protect イベントツール(モーションイベント、スマート検出)でのみ必要です。基本的なカメラ操作は API キーだけで動作します。
API キーを作成するには:
UniFi コントローラーにログインします
Settings → Control Plane → API に移動します
適切な権限を持つ新しい API キーを作成します
レガシー単一デバイス構成
後方互換性のため、単一デバイス構成も引き続きサポートされています:
UNIFI_MODE=local_api_key
UNIFI_CONTROLLER_URL=https://192.168.1.1
UNIFI_CLOUD_API_KEY=your-api-key
UNIFI_SITE=default
UNIFI_VERIFY_SSL=falseローカルセッション認証(従来型)
ユーザー名/パスワード認証による全機能アクセス用:
UNIFI_MODE=local
UNIFI_CONTROLLER_URL=https://192.168.1.1
UNIFI_USERNAME=local-admin
UNIFI_PASSWORD=your-password
UNIFI_SITE=default
UNIFI_IS_UDM=true
UNIFI_VERIFY_SSL=falseクラウド API (api.ui.com)
Ubiquiti Cloud API アクセス用:
UNIFI_MODE=cloud
UNIFI_CLOUD_API_KEY=your-api-keyunifi.ui.com → API セクションから API キーを取得します。
Claude Desktop での使用法
Claude Desktop の設定に追加します(Linux では ~/.config/claude/claude_desktop_config.json、macOS では ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"unifi": {
"command": "uv",
"args": ["run", "--directory", "/path/to/unifi-mcp", "python", "-m", "unifi_mcp.server"],
"env": {
"UNIFI_DEVICES": "[{\"name\":\"gateway\",\"url\":\"https://192.168.1.1\",\"api_key\":\"your-key\",\"services\":[\"network\"]},{\"name\":\"nvr\",\"url\":\"https://192.168.1.2\",\"api_key\":\"your-key\",\"services\":[\"network\",\"protect\"]}]",
"UNIFI_VERIFY_SSL": "false"
}
}
}
}Claude Code / opencode での使用法
# Add the MCP server
claude mcp add unifi -- uv run --directory /path/to/unifi-mcp python -m unifi_mcp.serverまたは opencode.json 内:
{
"mcp": {
"unifi": {
"type": "local",
"command": ["/path/to/unifi-mcp/.venv/bin/python", "-m", "unifi_mcp.server"],
"enabled": true
}
}
}利用可能なツール
マルチデバイス管理
list_unifi_devices- 設定済みのすべての UniFi デバイスとそのサービスを一覧表示
デバイス管理
list_devices- すべての UniFi ネットワークデバイスを一覧表示get_device_details- 詳細なデバイス情報を取得restart_device- デバイスを再起動locate_device- LED を点滅させてデバイスを探すget_device_stats- パフォーマンス統計を取得upgrade_device- ファームウェアをアップグレードprovision_device- 再プロビジョニングを強制
クライアント管理
list_clients- 接続中のクライアントを一覧表示list_all_clients- 既知のすべてのクライアントを一覧表示(オフラインを含む)get_client_details- クライアントの詳細を取得block_client/unblock_client- クライアントをブロック/ブロック解除kick_client- クライアントを切断forget_client- 既知のクライアントから削除get_client_traffic- トラフィック統計を取得reserve_client_ip- DHCP 予約で IP を予約
サイト管理
list_sites- すべてのサイトを一覧表示get_site_health- サイトの健全性ステータスを取得get_site_settings- サイト設定を取得get_sysinfo- システム情報を取得get_networks- ネットワーク/VLAN 設定を取得get_wlans- ワイヤレスネットワーク設定を取得get_port_profiles- スイッチポートプロファイルを取得get_firewall_rules- レガシーファイアウォールルールを取得get_firewall_policies- ゾーンベースのファイアウォールポリシーを取得(UniFi Network 9+)get_routing_table- ルーティングテーブルを取得get_port_forwards- ポートフォワーディングルールを取得create_port_forward/delete_port_forward- ポートフォワーディングを管理
設定管理(書き込み)
create_wlan/update_wlan/delete_wlan- ワイヤレスネットワークを管理しますcreate_firewall_policy/set_firewall_policy_enabled/delete_firewall_policy- ゾーンベースのファイアウォールポリシーを管理しますexport_camera_clip- カメラの録画クリップをMP4としてエクスポートします(Protect)get_all_sites_health- 全サイトにわたる健全性の概要
データを削除したり混乱を引き起こすツールは、MCPアノテーションによって確認ゲートが設定されるか、破壊的としてフラグ付けされます。
統計とモニタリング
get_network_health- ネットワーク全体の健全性get_recent_events- 最近のイベントget_alarms- アクティブなアラームarchive_all_alarms- すべてのアラームをアーカイブrun_speed_test- スピードテストを開始get_speed_test_status- スピードテストの結果を取得get_dpi_stats- DPI統計get_traffic_summary- トラフィックの概要
AIインサイトツール
analyze_network_issues- 総合的な問題分析get_optimization_recommendations- 設定の推奨事項get_client_experience_report- クライアント品質メトリクスget_device_health_summary- デバイスの健全性の概要get_traffic_analysis- トラフィックパターンの分析get_all_sites_health- 全サイトにわたる健全性の概要
マルチサイトオーケストレーション
get_global_inventory- 全コントローラーにわたる統合デバイスインベントリget_global_health- 全コントローラーにわたる集約健全性レポートget_global_client_summary- 全コントローラーにわたるクライアント数、上位トラフィッククライアント、ブロックされたクライアントtroubleshoot_client- クライアントの詳細なトラブルシューティング
UniFi Protect
list_cameras- 接続ステータス付きで全カメラを一覧表示get_camera_details- カメラの詳細情報を取得get_camera_snapshot- ライブスナップショットを取得(base64 JPEG)get_protect_system_info- NVRシステム情報を取得get_camera_health_summary- 問題を含むカメラの健全性の概要get_liveviews- 設定済みライブビューレイアウトを取得get_protect_accessories- ライト、センサー、チャイム、ビューアーを一覧表示
UniFi Protectイベント(ユーザー名/パスワードが必要)
get_motion_events- 最近のモーションイベントを取得get_smart_detections- スマート検出イベントを取得(人、車両、動物、荷物)get_protect_event_summary- タイプ別の全イベントの概要get_recent_protect_activity- 最近のアクティビティのクイック概要
会話の例
MCPサーバーに接続した後、Claudeに次のように尋ねることができます:
ネットワーク管理
「すべてのUniFiデバイスを一覧表示して」
「現在のネットワークの健全性は?」
「ネットワークに問題がないか分析して」
「どのような最適化の推奨事項がありますか?」
「クライアントエクスペリエンスのメトリクスを見せて」
「MACアドレスがaa:bb:cc:dd:ee:ffのクライアントをトラブルシューティングして」
「どのクライアントが最も帯域幅を使用していますか?」
「ファームウェアの更新が必要なデバイスはありますか?」
「最近のネットワークイベントを見せて」
「スピードテストを実行して」
UniFi Protect
「すべてのカメラを一覧表示して」
「カメラの健全性の概要を見せて」
「Front Doorカメラのスナップショットを取得して」
「NVRのステータスは?」
「切断されているカメラはありますか?」
「Protectアクセサリーを見せて」
Protectイベント(認証情報が必要)
「最近のモーションイベントを見せて」
「過去24時間にどのスマート検出がありましたか?」
「今日、人検出はありましたか?」
「過去1週間のイベントの概要を教えて」
「Front Doorカメラの最近のアクティビティを見せて」
マルチデバイス
「設定済みのUniFiデバイスを一覧表示して」
「NVR上のカメラを見せて」
「メインゲートウェイからネットワークの健全性を取得して」
開発
テストの実行
uv run pytestコードのフォーマット
uv run ruff check .
uv run ruff format .Docker
docker build -t unifi-mcp .
docker run -i --rm --env-file .env unifi-mcp新機能のリクエスト
新しいスキル:
[Skill]プレフィックスを付けてイシューを開いてください — 問題、ワークフロー、期待される出力を説明してくださいスキルの修正:
[Skill: skill-name]プレフィックスを付けてイシューを開いてください — 不足している点や壊れている点新しいツール:
[Tool]プレフィックスを付けてイシューを開いてください — UniFi APIエンドポイントと期待される形式を含めてください
詳細なコントリビューションガイドラインについては、SKILLS.md を参照してください。
リリース履歴については CHANGELOG.md、コントリビュートについては CONTRIBUTING.md を参照してください。
セキュリティに関する注意事項
認証情報は環境変数を介して渡されます —
.envをコミットしないでください自己署名証明書の場合、SSL検証はデフォルトで無効になっています
サーバーは読み取り操作と安全な管理コマンドのみを公開します
破壊的操作(サイトの削除、ファクトリーリセット)は公開されていません
APIキーは安全に保管し、定期的にローテーションしてください
ライセンス
MITライセンス
コントリビューション
コントリビューションを歓迎します!イシューを開くか、プルリクエストを送信してください。
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to manage and monitor UniFi Network Controllers through natural language. Provides 25 read-only tools for discovering devices and clients, viewing security configurations, analyzing network statistics, and exporting configuration data.41MIT
- FlicenseNot gradedqualityDmaintenanceProvides AI assistants with access to UniFi Network and Protect infrastructure for managing devices, monitoring clients, analyzing network health, viewing camera snapshots, and getting optimization recommendations across multiple UniFi controllers.2
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive management of UniFi Network infrastructure through 24 tools for monitoring and controlling devices, clients, wireless networks, security, and guest access. Supports network administration tasks like device restarts, client blocking, WLAN configuration, and backup creation.36MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage and monitor UniFi network infrastructure through natural language, providing 46 management tools across device, client, WiFi, network, firewall, port forwarding, monitoring, and site management.1MIT
Related MCP Connectors
Manage AI assistants, history, calls, campaigns, contacts, knowledge, messaging, and automations.
Create and manage AI agents that collaborate and solve problems through natural language interacti…
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mikeholownych/unifi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server