unifi について
複数の UniFi サイトを管理する運用担当者や MSP 向けの、Site Manager API と Cloud Connector を利用した読み取り専用 MCP サーバーです。サイト横断分析と重大度判定を行い、オプションのローカルコントローラーツールでポートエラーや SFP DDM データも取得できます。
主な機能
- 01サイト横断の健全性・異常分析
- 02WAN 傾向とサイト比較
- 03しきい値に基づく重大度判定
- 048 つの運用ワークフロープロンプト
- 05任意のローカルポート・SFP 診断
活用シーン
- 01複数サイトの問題をトリアージ
- 02ファームウェアと展開計画の確認
- 03WAN 稼働率レポートの作成
- 04ポートフラップや SFP 信号の調査
MCP 対応
ツール、プロンプト、リソースを通じて、UniFi Site Manager、Cloud Connector、任意のローカルコントローラーの読み取り専用データを MCP クライアントに公開します。stdio と Streamable HTTP に対応し、書き込み操作はできません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @us-all/unifi-mcpUNIFI_API_KEYシークレットUniFi Site Manager API key (https://unifi.ui.com).UNIFI_API_URLUniFi Site Manager API base URL (default: https://api.ui.com).UNIFI_API_KEY_OWNERシークレットOwner-role API key — enables 33 Cloud Connector tools for per-device/per-client deep data.UNIFI_TOOLSComma-separated category allowlist. Default: all categories enabled.UNIFI_DISABLEComma-separated category disablelist.UNIFI_LOCAL_URLLocal controller URL (e.g. https://10.10.1.1). Enables 2 local-only tools (get-port-errors, list-port-flap-summary) that surface per-port errors + SFP DDM the Cloud API does not expose. Requires LAN reachability.UNIFI_LOCAL_USERController local account username (required when UNIFI_LOCAL_URL set). Viewer/Limited-Admin role is sufficient.UNIFI_LOCAL_PASSシークレットController local account password (required when UNIFI_LOCAL_URL set).UNIFI_LOCAL_SITESite slug for legacy /api/s/{site}/* (default: default).UNIFI_LOCAL_INSECURESet to 'true' to accept self-signed cert from the local controller (typical for UDM Pro).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
19掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| extractFields | string | いいえ | レスポンスから抽出して投影するフィールドのカンマ区切りドットパス(例:'id,name,owner.name,columns.*.name')。配列/オブジェクトのワイルドカードとして `*` を使用します。ドットを含むフィールド名はバッククォートで囲みます。大きなエンティティでレスポンスのトークン数を大幅に削減します。 |
詳細
UniFi MCP サーバー
公式 Site Manager API と Cloud Connector を基盤とし、他の UniFi MCP にはないサイト横断分析を備えた、MSP スタイルの UniFi MCP です。
セマンティック分析の集約ツール7個、Site Manager の生データ取得ツール9個、Cloud Connector ツール35個の計54個に加え、Cloud API では取得できないポートごとのエラーカウンターと SFP DDM を取得する、オプションのローカルコントローラーツールを2個備えています。厳選したしきい値に基づく重大度判定(
healthy/info/warning/critical)を提供します。MCP プロンプトは8個(フリート全体の運用向け4個+MSP ワークフロー向け4個)です。読み取り専用です。Ubiquiti の API キーでは、まだ書き込み操作はサポートされていません。
起動前診断
npx -y @us-all/unifi-mcp --doctor
環境変数を検証し、Site Manager API に ping を送信し、Cloud Connector を確認(オーナーキーが設定されている場合)してから、カテゴリーの有効・無効設定をチェックします。重大な問題がある場合はゼロ以外の終了コードで終了するため、CI やデプロイ前スクリプトで使用できます。
他にはない機能
- Site Manager の分析 —
site-health-timeline、summarize-site、firmware-inventory、compare-sites、wan-uptime-trend、top-clients-by-bandwidth、list-sites-overview。これらを公開している UniFi MCP は他にありません。 - 数値だけでなく、重大度を判定 — すべての分析ツールが、厳選した理由とともに
healthy / info / warning / critical / unknownを返します。しきい値も厳選しており(例:WAN 稼働率 <90% はcritical、再起動後の startupTime <1h はcritical)、用途に応じて設定されています。 - Cloud Connector を標準機能として提供 — 公式の
/v1/connector/consoles/{id}/...プロキシを通じた35個のツールを備えています。connectorAvailable(機能の利用可否)とconnectorResolved(今回の呼び出しで解決済みか)を分けています。 - 集約ツール — 連続する3~7回の呼び出しを1回にまとめ、部分的な失敗を示す
caveats配列を返します(例:Site Manager API では WAN 稼働率を期間指定で取得できないことを明示します)。 - MCP プロンプト(8個)— フリート運用向け:
triage-site-degradation、firmware-rollout-audit、wan-uptime-report、cross-site-anomaly-detection。MSP ワークフロー向け:msp-onboard-site-checklist、msp-monthly-client-report、msp-fleet-firmware-plan、msp-bandwidth-complaint-investigation。 - トークン効率を重視した設計 —
@us-all/*MCP の中で最小のスキーマフットプリントを実現しています(オーナーキーを設定した場合、デフォルトで約5Kトークン)。200台を超えるデバイスのフリートも、単一のセッション内で分析できます。 - Apps SDK カード — ChatGPT クライアントでは、
_meta["openai/outputTemplate"]を使ってsummarize-siteをフリートのステータスカード(オンライン率、WAN 稼働率、ゲートウェイ、デバイス)として表示します。Claude クライアントには、同じ JSON コンテンツを返します。 - stdio と Streamable HTTP — デフォルトは stdio です。ChatGPT Apps SDK またはリモートクライアントで使用するには、
MCP_TRANSPORT=httpを設定します(MCP_HTTP_TOKENによる Bearer 認証)。 - ローカルコントローラーへの直接アクセス(v1.13.0)—
UNIFI_LOCAL_*環境変数をオプトインで設定すると、Cloud Connector を経由せず、LAN 上でコントローラーの旧式/api/s/{site}/stat/device/{mac}に直接アクセスする2個のツールが有効になります。get-port-errors(ポートごとの rx/tx エラー、リンクフラップカウンター、SFP DDM — Rx/Tx 電力 dBm、温度、電圧、TX/RX 障害)とlist-port-flap-summary(フリート全体のポート不安定度ランキング)を利用できます。Integration API では取得できないデータを提供します。LAN から到達可能である必要があります。
お試し用プロンプト — 5 例
サーバーを Claude Desktop または Claude Code に接続し、次のいずれかを貼り付けてください。
- MSP の朝のチェック — 「すべての UniFi サイトでフリートの健全性を確認してください。
healthyではないものを重大度と上位 3 件の問題とともに抽出してください。」 - ファームウェア展開の監査 — 「すべてのサイトで古いファームウェアを使用しているデバイスを見つけてください。サイトごとにまとめ、現在のバージョンと最新バージョンを示し、重要度の高い順にしてください。」
- サイトの劣化状況のトリアージ — 「USM サイトで WiFi に関する苦情があります。過去 24 時間分のデバイスのステータス、WAN の稼働時間、最近の再起動、帯域幅使用量の多いクライアントを取得してください。異常な点はありますか?」
- WAN SLA レポート — 「すべてのサイトについて、月次 WAN 稼働時間レポートを作成してください。5 分を超える停止、デュアル WAN のフェイルオーバーイベント、目標値 99.5% を下回るサイトを明らかにしてください。」
- サイト間の異常検知 — 「USS を他のサイトと比較してください。AP ごとのクライアント数、トラフィックパターン、デバイスのファームウェア構成を比較し、外れ値を抽出して、最も可能性の高い原因を提案してください。」
- ポートのリンク断続のトリアージ(
UNIFI_LOCAL_*が必要) — 「すべてのスイッチの全ポートを、不安定度スコア順に並べてください。最も問題の多い上位 3 ポートについて、利用可能であれば SFP DDM を取得し、信号自体に問題があるのか、それとも下流に原因があるのかを教えてください。」
他の UniFi MCP と使い分ける場合
| sirkirby/unifi-mcp | enuno/unifi-mcp-server | @us-all/unifi-mcp(本サーバー) | |
|---|---|---|---|
| GitHub スター数 | 291 | 117 | — |
| ツール数 | 224 | 74 | 54 |
| 対象範囲 | Network + Protect + Access + Drive | Network + マルチサイト + QoS + バックアップ | Site Manager + Cloud Connector + 分析 |
| Site Manager API | ❌ | 部分対応 | ✅ 詳細対応 + 分析 |
| Cloud Connector | ❌ | 部分対応(3 モード) | ✅ 利用可能/解決済みを分離 |
| UniFi Protect(カメラ) | ✅ | ❌ | ❌(対象外) |
| UniFi Access(ドア) | ✅ | ❌ | ❌(対象外) |
| 集約ツール | ❌ | ❌ | ✅ 7 |
| 重大度の判定 | ❌ | ❌ | ✅ 厳選したしきい値 |
| MCP プロンプト | ❌ | ❌ | ✅ 8(MSP ワークフロー 4 件を含む) |
カメラ(Protect)やドアアクセスが必要な場合は、sirkirby を使ってください。Network API の生の機能を幅広く使いたい場合は、enuno を使ってください。MSP スタイルのマルチサイト分析、フリートのトリアージ、多数のコンソールにまたがる「何かおかしい点はあるか?」という質問には、本サーバーを使ってください。
インストール
Claude Desktop
{
"mcpServers": {
"unifi": {
"command": "npx",
"args": ["-y", "@us-all/unifi-mcp"],
"env": {
"UNIFI_API_KEY": "<your-key>",
"UNIFI_API_KEY_OWNER": "<owner-key-or-same-key-if-role=owner>"
}
}
}
}
Claude Code
claude mcp add unifi -s user \
-e UNIFI_API_KEY=<your-key> \
-e UNIFI_API_KEY_OWNER=<owner-key> \
-- npx -y @us-all/unifi-mcp
ソースからビルド
git clone https://github.com/us-all/unifi-mcp-server.git
cd unifi-mcp-server && pnpm install && pnpm build
node dist/index.js
API キー — 種類と取得場所
導入時に最もよくあるつまずきです。UniFi には、同じ https://api.ui.com/v1 を通じて利用する 2 つのサーフェスがあります。
| サーフェス | 提供内容 | パス | 環境変数 |
|---|---|---|---|
| Site Manager | ホスト、サイト、デバイスの概要、ISP メトリクス、SD-WAN 設定(集約済み、コンソール全体) | /v1/hosts、/v1/sites、/v1/devices、/v1/sd-wan-configs | UNIFI_API_KEY |
| Cloud Connector | デバイスごとの情報、クライアントごとの情報、ネットワーク、ファイアウォール、WiFi(ローカルコントローラーへのプロキシ) | /v1/connector/consoles/{hostId}/... | UNIFI_API_KEY_OWNER |
API キーの権限は、そのキーを作成したアカウントのロールを引き継ぎます。
| アカウントのロール | Site Manager | Cloud Connector |
|---|---|---|
| 管理者(オーナー以外) | ✅ | ❌ 403 |
| オーナー | ✅ | ✅ |
オーナーロールを持っている場合は、両方の環境変数に同じキーを設定してください。 これは @us-all の利用者に最もよくあるケースです。
キーを取得するには、unifi.ui.com → Settings → API → Generate に進みます。GA で現在選択できるのは View Only のみです(Full Access はグレー表示 — 書き込みには Early Access プログラムへの参加が必要です)。
Cloud Connector の要件
- コンソールのファームウェアが 5.0.3 以上
- API パス:
https://api.ui.com/v1/connector/consoles/{hostId}/{appPath} - ローカルの
siteIdは UUID であり、リテラル文字列defaultではありません - 利用可能なエンドポイント:Network integration API(
/network/integration/v1/sites、devices、clients、networks)。旧パス(/api/s/{site}/stat/event)は 404 を返します。イベントログ/syslog は公開されていません。
ローカルコントローラー(任意、v1.13.0+)
Cloud Connector が対応していない、ポートごとのエラーカウンター、フラップカウンター、SFP DDM を補う 2 つのツールを追加します。これらの情報は /api/s/{site}/stat/device/{mac}(レガシー)にありますが、公式の Network Integration API では公開されていません(OpenAPI 仕様 v10.4.57 で確認済み)。
要件:
- この MCP を実行するホストからコントローラーへの LAN/VPN 接続(通常は
https://<controller-ip>) - コントローラーのローカルアカウント(Viewer / Limited Admin ロールで十分です。Owner の認証情報は不要です)
- 自己署名証明書の処理:標準の UDM Pro では
UNIFI_LOCAL_INSECURE=trueを設定します
認証フロー:POST /api/auth/login(Cookie)→ 以降のすべての呼び出しでセッションを再利用します。401 が返された場合は自動的に再ログインします。読み取り専用です。
設定
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
UNIFI_API_KEY | ✅ | — | unifi.ui.com の API キー(任意の管理者ロール) |
UNIFI_API_KEY_OWNER | ❌ | — | Owner ロールの API キー — Cloud Connector ツール 35 個を有効にします。キーが Owner ロールの場合は、同じ値を設定してください。 |
UNIFI_API_URL | ❌ | https://api.ui.com/v1 | API ベース URL |
UNIFI_TOOLS | ❌ | — | カテゴリのカンマ区切り許可リスト。 |
UNIFI_DISABLE | ❌ | — | カンマ区切りの拒否リスト。UNIFI_TOOLS が設定されている場合は無視されます。 |
MCP_TRANSPORT | ❌ | stdio | Streamable HTTP トランスポートを有効にするには http を指定します |
MCP_HTTP_TOKEN | 条件付き | — | Bearer トークン。MCP_TRANSPORT=http の場合は必須です |
MCP_HTTP_PORT | ❌ | 3000 | HTTP リッスンポート |
MCP_HTTP_HOST | ❌ | 127.0.0.1 | HTTP バインドホスト(localhost では DNS リバインディング保護が自動的に有効になります) |
MCP_HTTP_SKIP_AUTH | ❌ | false | Bearer 認証を省略します。処理を担うリバースプロキシの背後に配置する場合などに使用します |
UNIFI_LOCAL_URL | ❌ | — | ローカルコントローラーの URL(例:https://10.10.1.1)。これに USER/PASS を設定すると、local カテゴリのツール 2 個が有効になります。 |
UNIFI_LOCAL_USER | 条件付き | — | コントローラーのローカルアカウントのユーザー名(UNIFI_LOCAL_URL の設定時に必須)。Viewer/Limited-Admin ロールで十分です。 |
UNIFI_LOCAL_PASS | 条件付き | — | コントローラーのローカルアカウントのパスワード(UNIFI_LOCAL_URL の設定時に必須)。 |
UNIFI_LOCAL_SITE | ❌ | default | レガシー /api/s/{site}/* のサイトスラッグ。 |
UNIFI_LOCAL_INSECURE | ❌ | false | 自己署名証明書を許可します(UDM Pro では一般的です)。 |
カテゴリ(9 個):analysis、raw、devices、clients、networks、firewall、wan、reference、local。
MCP_TRANSPORT=http の場合:POST /mcp(Bearer 認証付き JSON-RPC)+ GET /health(認証不要の稼働確認)。
トークン効率
@us-all/* MCP の中で、スキーマのフットプリントが最も小さい構成です。
| シナリオ | ツール | スキーマトークン数 |
|---|---|---|
| デフォルト(Owner なし) | 17 | 1,700 |
UNIFI_TOOLS=analysis | 8 | 1,000(−42%) |
| Owner キーあり(デフォルト) | 52 | 約 5,000 |
UNIFI_TOOLS=analysis + Owner | 8 | 1,000(−80%) |
重大度としきい値
各分析ツールは、次のいずれかを返します。
healthy— 問題なしinfo— 情報提供のみ。対応不要warning— 注意が必要critical— 直ちに対応が必要unknown— API エラーまたはデータ不足
設定済みのしきい値:
| 条件 | 重大度 |
|---|---|
| デバイスがオフライン | critical |
startupTime < 1h | critical(再起動直後) |
startupTime < 24h | warning(最近の再起動) |
startupTime < 72h | info(監視) |
| WAN 稼働率 < 90% | critical |
| WAN 稼働率 < 95% | warning |
MCP プロンプト(8)
MCP prompts/list で利用できるワークフローテンプレートです。4 つはフリート運用向け、4 つは MSP(マネージドサービスプロバイダー)固有のワークフローです。
フリート運用:
triage-site-degradation— サイトからの苦情に対処するワークフローです。デバイス、WAN、再起動、クライアントの順に確認します。firmware-rollout-audit— フリート全体のファームウェア差分と、ロールアウトの安全性を確認します。wan-uptime-report— 複数サイトにわたる月次の WAN SLA 形式レポートです。cross-site-anomaly-detection— サイトをフリートの基準値と比較し、外れ値を検出します。
MSP ワークフロー:
msp-onboard-site-checklist— 新たに追加された顧客サイトの合否判定チェックリストです(ファームウェアの最低バージョン、コンソール接続、稼働時間の傾向、コネクターの利用可否、ファイアウォールの健全性、最近の再起動、保留中のデバイス)。msp-monthly-client-report— 顧客向けの月次健全性レポートです(1 サイトについて、概要、ネットワークの可用性、デバイス、上位ユーザー、推奨事項を、専門知識がなくても理解できる表現でまとめます)。msp-fleet-firmware-plan— リスク許容度に応じて順序付けた、目標ファームウェアバージョンへの段階的な N 波ロールアウト計画です。メンテナンス時間帯とロールバックのトリガーを含みます。msp-bandwidth-complaint-investigation— WAN の傾向、ISP 指標、上位クライアント、DPI カテゴリー、最近の再起動を確認し、「サイト X のインターネットが遅い」という苦情を調査します。
MCP リソース
unifi://site/{hostName}/devices— サイトのデバイスのスナップショットunifi://reboots/recent— フリート全体で最近再起動したデバイス
ツール(54 + オプションのローカルツール 2 個)
9 カテゴリーあります。実行時にツールを検索するには search-tools を使用します。全リストは以下に折りたたまれています。Cloud Connector ツール(33 個)は UNIFI_API_KEY_OWNER が設定されている場合にのみ登録されます。設定されていない場合、利用できるのは 19 個です。ローカルコントローラーのツール(2 個)は UNIFI_LOCAL_URL/USER/PASS が設定されている場合にのみ登録されます。
| グループ | ツール数 |
|---|---|
| セマンティック分析(集計を含む) | 9 |
| Site Manager の生データ | 9 |
| Cloud Connector(デバイス/クライアント/ネットワーク/WiFi/ファイアウォール/WAN/リファレンス) | 33 |
ローカルサイト(list-local-sites、get-app-info) | 2 |
ローカルコントローラー(get-port-errors、list-port-flap-summary) | 2 |
メタ(search-tools) | 1 |
ツールの全リスト
セマンティック分析(9)
list-sites-overview、analyze-site-health、detect-recent-reboots、compare-sites、firmware-inventory、wan-uptime-trend、top-clients-by-bandwidth、summarize-site (集計)、site-health-timeline (集計)
Site Manager API(9)
list-hosts、get-host、list-sites、list-devices、get-isp-metrics(オプション)、query-isp-metrics(オプション)、list-sdwan-configs、get-sdwan-config、get-sdwan-config-status
Cloud Connector — デバイス(4)
get-device-details、get-device-by-id、get-device-statistics、list-pending-devices
Cloud Connector — クライアント(2)
list-site-clients、get-client-details
Cloud Connector — ネットワーク(3)
list-networks、get-network-details、get-network-references
Cloud Connector — WiFi(2)
list-wifi-broadcasts、get-wifi-broadcast-details
Cloud Connector — ファイアウォール/ACL/DNS(10)
list-firewall-zones、get-firewall-zone、list-firewall-policies、get-firewall-policy、get-firewall-policy-ordering、list-acl-rules、get-acl-rule、get-acl-rule-ordering、list-dns-policies、get-dns-policy
Cloud Connector — トラフィック/WAN/VPN(5)
list-traffic-matching-lists、get-traffic-matching-list、list-wans、list-vpn-tunnels、list-vpn-servers
Cloud Connector — ホットスポット/リファレンス(7)
list-vouchers、get-voucher-details、list-radius-profiles、list-device-tags、list-dpi-categories、list-dpi-applications、list-countries
ローカルサイト(2)
list-local-sites、get-app-info
メタ
search-tools — キーワードでほかのツールを検索します。常に有効です。
アーキテクチャ
Claude → MCP stdio → src/index.ts
├── tools/analysis.ts → Site Manager API (UNIFI_API_KEY)
├── tools/*.ts (raw) → Site Manager API (UNIFI_API_KEY)
├── tools/connector.ts → Cloud Connector (UNIFI_API_KEY_OWNER)
└── tools/local-ports.ts → Local Controller (UNIFI_LOCAL_URL + LAN)
helpers/resolver.ts → hostName ↔ ID mapping
@us-all/mcp-toolkit を基盤としています。
extractFields— トークン効率の高いレスポンス投影aggregate(fetchers, caveats)—summarize-site/site-health-timeline用のファンアウトヘルパーcreateWrapToolHandler—X-API-KEYの秘匿化とConnectorError/UniFiErrorの抽出- リトライ:最大3回、指数バックオフ(1秒 → 2秒 → 4秒)+ジッター、Cloud Connector のタイムアウトは30秒
制限事項
- 読み取り専用 — UniFi API キーではまだ書き込みをサポートしていません(GA では Full Access ロールがグレーアウトされています)。
- レート制限 — 安定版 v1 では10,000リクエスト/分、Early Access では100リクエスト/分です。
- Cloud Connector の部分的なプロキシ — Network 統合 API は動作しますが、レガシーパスは404を返します。イベントログ/syslog は公開されていません。
- ISP Metrics — アカウント/プランによっては404が返される場合があります。
技術スタック
Node.js 22+ • TypeScript strict ESM • pnpm • @modelcontextprotocol/sdk • zod v4 • dotenv。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。