Mirobody
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
Description from the maker (original English)
UniFi semantic-analysis MCP — fleet health, anomaly detection, cross-site analytics
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
UNIFI_API_KEY, UNIFI_API_URL, UNIFI_API_KEY_OWNER, UNIFI_TOOLS, UNIFI_DISABLE, UNIFI_LOCAL_URL, UNIFI_LOCAL_USER, UNIFI_LOCAL_PASS, UNIFI_LOCAL_SITE, UNIFI_LOCAL_INSECUREValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"unifi": {
"command": "npx",
"args": [
"-y",
"@us-all/unifi-mcp"
],
"env": {
"UNIFI_API_KEY": "your-value",
"UNIFI_API_URL": "your-value",
"UNIFI_API_KEY_OWNER": "your-value",
"UNIFI_TOOLS": "your-value",
"UNIFI_DISABLE": "your-value",
"UNIFI_LOCAL_URL": "your-value",
"UNIFI_LOCAL_USER": "your-value",
"UNIFI_LOCAL_PASS": "your-value",
"UNIFI_LOCAL_SITE": "your-value",
"UNIFI_LOCAL_INSECURE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add unifi --env UNIFI_API_KEY=your-value --env UNIFI_API_URL=your-value --env UNIFI_API_KEY_OWNER=your-value --env UNIFI_TOOLS=your-value --env UNIFI_DISABLE=your-value --env UNIFI_LOCAL_URL=your-value --env UNIFI_LOCAL_USER=your-value --env UNIFI_LOCAL_PASS=your-value --env UNIFI_LOCAL_SITE=your-value --env UNIFI_LOCAL_INSECURE=your-value -- npx -y @us-all/unifi-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"unifi": {
"command": "npx",
"args": [
"-y",
"@us-all/unifi-mcp"
],
"env": {
"UNIFI_API_KEY": "your-value",
"UNIFI_API_URL": "your-value",
"UNIFI_API_KEY_OWNER": "your-value",
"UNIFI_TOOLS": "your-value",
"UNIFI_DISABLE": "your-value",
"UNIFI_LOCAL_URL": "your-value",
"UNIFI_LOCAL_USER": "your-value",
"UNIFI_LOCAL_PASS": "your-value",
"UNIFI_LOCAL_SITE": "your-value",
"UNIFI_LOCAL_INSECURE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"unifi": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@us-all/unifi-mcp"
],
"env": {
"UNIFI_API_KEY": "your-value",
"UNIFI_API_URL": "your-value",
"UNIFI_API_KEY_OWNER": "your-value",
"UNIFI_TOOLS": "your-value",
"UNIFI_DISABLE": "your-value",
"UNIFI_LOCAL_URL": "your-value",
"UNIFI_LOCAL_USER": "your-value",
"UNIFI_LOCAL_PASS": "your-value",
"UNIFI_LOCAL_SITE": "your-value",
"UNIFI_LOCAL_INSECURE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
UNIFI_API_URL envUNIFI_TOOLS envUNIFI_DISABLE envUNIFI_LOCAL_URL envUNIFI_LOCAL_USER envUNIFI_LOCAL_SITE envUNIFI_LOCAL_INSECURE envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account us-all, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: UNIFI_API_KEY, UNIFI_API_KEY_OWNER, UNIFI_LOCAL_PASS
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.13.3) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Mirobody, FHIR MCP Server, Google Health MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
The MSP-style UniFi MCP — built around the official Site Manager API + Cloud Connector with cross-site analytics no other UniFi MCP exposes.
54 tools split across 7 semantic-analysis aggregations, 9 raw Site Manager, and 35 Cloud Connector — plus 2 optional local controller tools that surface per-port error counters and SFP DDM the Cloud API doesn't expose. Severity verdicts (
healthy/info/warning/critical) on top of curated thresholds. 8 MCP Prompts (4 fleet-wide ops + 4 MSP workflows). Read-only — Ubiquiti's API keys don't ship write yet.
npx -y @us-all/unifi-mcp --doctor
Validates env vars, pings Site Manager API, probes Cloud Connector (if owner key set), and checks category toggles before starting. Exits non-zero on critical issues so it works in CI / pre-deploy scripts.
site-health-timeline, summarize-site, firmware-inventory, compare-sites, wan-uptime-trend, top-clients-by-bandwidth, list-sites-overview. No other UniFi MCP exposes these.healthy / info / warning / critical / unknown with a curated reason. Curated thresholds (e.g. WAN uptime <90% = critical, startupTime <1h = critical post-reboot)./v1/connector/consoles/{id}/... proxy. connectorAvailable (capability) vs connectorResolved (this-call) split.caveats array surfacing partial failures (e.g. Site Manager API can't window-bound WAN uptime — that's surfaced explicitly).triage-site-degradation, firmware-rollout-audit, wan-uptime-report, cross-site-anomaly-detection. MSP workflows: msp-onboard-site-checklist, msp-monthly-client-report, msp-fleet-firmware-plan, msp-bandwidth-complaint-investigation.@us-all/* MCPs (default ~5K tokens with owner key). Fleet of 200+ devices analyzable inside a single session.summarize-site renders as a fleet-status card on ChatGPT clients (online %, WAN uptime, gateway, devices) via _meta["openai/outputTemplate"]. Claude clients receive the same JSON content.MCP_TRANSPORT=http for ChatGPT Apps SDK or remote clients (Bearer auth via MCP_HTTP_TOKEN).UNIFI_LOCAL_* env enables 2 tools that bypass the Cloud Connector and hit the controller's legacy /api/s/{site}/stat/device/{mac} directly on the LAN: get-port-errors (port-level rx/tx errors, link-flap counters, SFP DDM — Rx/Tx Power dBm, temperature, voltage, TX/RX fault) and list-port-flap-summary (fleet-wide port instability ranking). Surfaces data the Integration API doesn't expose. Requires LAN reachability.Connect the server to Claude Desktop or Claude Code, then paste any of these:
healthy with severity, top 3 issues."*UNIFI_LOCAL_*)* — *"Rank every port across all switches by instability score. For the top 3 worst offenders, pull SFP DDM if present and tell me whether the signal itself is bad or it's something downstream."*| sirkirby/unifi-mcp | enuno/unifi-mcp-server | @us-all/unifi-mcp (this) | |
|---|---|---|---|
| GitHub stars | 291 | 117 | — |
| Tool count | 224 | 74 | 54 |
| Scope | Network + Protect + Access + Drive | Network + multi-site + QoS + backup | Site Manager + Cloud Connector + analytics |
| Site Manager API | ❌ | partial | ✅ deep + analytics |
| Cloud Connector | ❌ | partial (3 modes) | ✅ avail/resolved split |
| UniFi Protect (cameras) | ✅ | ❌ | ❌ (out of scope) |
| UniFi Access (doors) | ✅ | ❌ | ❌ (out of scope) |
| Aggregation tools | ❌ | ❌ | ✅ 7 |
| Severity verdicts | ❌ | ❌ | ✅ curated thresholds |
| MCP Prompts | ❌ | ❌ | ✅ 8 (incl. 4 MSP workflows) |
Use sirkirby when you need cameras (Protect) or door access. Use enuno if you want raw Network API breadth. Use this server for MSP-style multi-site analytics, fleet triage, and any "is something off?" question across many consoles.
{
"mcpServers": { "unifi": { "command": "npx", "args": ["-y", "@us-all/unifi-mcp"], "env": { "UNIFI_API_KEY": " ", "UNIFI_API_KEY_OWNER": " " } } } }
claude mcp add unifi -s user \
-e UNIFI_API_KEY= \ -e UNIFI_API_KEY_OWNER= \ -- 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
The most common onboarding friction. UniFi has two surfaces through the same https://api.ui.com/v1:
| Surface | What it gives | Path | Env var |
|---|---|---|---|
| Site Manager | hosts, sites, devices summary, ISP metrics, SD-WAN configs (aggregated, console-wide) | /v1/hosts, /v1/sites, /v1/devices, /v1/sd-wan-configs | UNIFI_API_KEY |
| Cloud Connector | per-device, per-client, networks, firewall, WiFi (proxies to local controller) | /v1/connector/consoles/{hostId}/... | UNIFI_API_KEY_OWNER |
API key permissions inherit from the role of the account that created them.
| Account role | Site Manager | Cloud Connector |
|---|---|---|
| Admin (non-owner) | ✅ | ❌ 403 |
| Owner | ✅ | ✅ |
If you have the owner role, set both env vars to the same key. That's the most common case for @us-all operators.
Get the key: unifi.ui.com → Settings → API → Generate. View Only is the only option in GA today (Full Access greyed out — Early Access program needed for write).
https://api.ui.com/v1/connector/consoles/{hostId}/{appPath}siteId is a UUID, not the literal string default/network/integration/v1/sites, devices, clients, networks). Legacy paths (/api/s/{site}/stat/event) return 404. Event logs / syslog not exposed.Adds 2 tools that fill the gap left by Cloud Connector — per-port error counters, flap counters, and SFP DDM. These live in /api/s/{site}/stat/device/{mac} (legacy) and the official Network Integration API does not expose them (verified against OpenAPI spec v10.4.57).
Requirements:
https:// )UNIFI_LOCAL_INSECURE=true for stock UDM ProAuth flow: POST /api/auth/login (cookie) → all subsequent calls re-use the session, 401 triggers automatic re-login. Read-only.
| Variable | Required | Default | Description |
|---|---|---|---|
UNIFI_API_KEY | ✅ | — | API key from unifi.ui.com (any admin role) |
UNIFI_API_KEY_OWNER | ❌ | — | Owner-role API key — enables 35 Cloud Connector tools. If your key has owner role, set this to the same value. |
UNIFI_API_URL | ❌ | https://api.ui.com/v1 | API base URL |
UNIFI_TOOLS | ❌ | — | Comma-sep allowlist of categories. |
UNIFI_DISABLE | ❌ | — | Comma-sep denylist. Ignored when UNIFI_TOOLS is set. |
MCP_TRANSPORT | ❌ | stdio | http to enable Streamable HTTP transport |
MCP_HTTP_TOKEN | conditional | — | Bearer token. Required when MCP_TRANSPORT=http |
MCP_HTTP_PORT | ❌ | 3000 | HTTP listen port |
MCP_HTTP_HOST | ❌ | 127.0.0.1 | HTTP bind host (DNS rebinding protection auto-enabled for localhost) |
MCP_HTTP_SKIP_AUTH | ❌ | false | Skip Bearer auth — e.g. behind a reverse proxy that handles it |
UNIFI_LOCAL_URL | ❌ | — | Local controller URL (e.g. https://10.10.1.1). Setting this + USER/PASS enables 2 local category tools. |
UNIFI_LOCAL_USER | conditional | — | Controller local account username (required when UNIFI_LOCAL_URL set). Viewer/Limited-Admin role is sufficient. |
UNIFI_LOCAL_PASS | conditional | — | Controller local account password (required when UNIFI_LOCAL_URL set). |
UNIFI_LOCAL_SITE | ❌ | default | Site slug for legacy /api/s/{site}/*. |
UNIFI_LOCAL_INSECURE | ❌ | false | Accept self-signed cert (typical for UDM Pro). |
Categories (9): analysis, raw, devices, clients, networks, firewall, wan, reference, local.
When MCP_TRANSPORT=http: POST /mcp (Bearer-auth JSON-RPC) + GET /health (public liveness).
Smallest schema footprint of all @us-all/* MCPs.
| Scenario | Tools | Schema tokens |
|---|---|---|
| default no-owner | 17 | 1,700 |
UNIFI_TOOLS=analysis | 8 | 1,000 (−42%) |
| default with owner key | 52 | ~5,000 |
UNIFI_TOOLS=analysis + owner | 8 | 1,000 (−80%) |
Every analysis tool returns one of:
healthy — no issuesinfo — informational, no actionwarning — needs attentioncritical — immediate actionunknown — API failure or incomplete dataCurated thresholds:
| Condition | Severity |
|---|---|
| Device offline | critical |
startupTime < 1h | critical (just rebooted) |
startupTime < 24h | warning (recent reboot) |
startupTime < 72h | info (monitor) |
| WAN uptime < 90% | critical |
| WAN uptime < 95% | warning |
Workflow templates available via MCP prompts/list. Four are fleet-ops; four are MSP-specific (managed-service-provider workflows).
Fleet ops:
triage-site-degradation — site complaints workflow: device + WAN + reboots + clients in sequence.firmware-rollout-audit — fleet-wide firmware diff and rollout safety check.wan-uptime-report — monthly WAN SLA-style report across sites.cross-site-anomaly-detection — compare a site to fleet baseline; flag outliers.MSP workflows:
msp-onboard-site-checklist — pass/fail readiness checklist for a newly added customer site (firmware floor, console connectivity, uptime trend, connector availability, firewall sanity, recent reboots, pending devices).msp-monthly-client-report — customer-faciOnly the beginning is shown; read the rest in the repo