@owine/unifi-network-mcp 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# UniFi Network MCP Server
|
|
2
2
|
|
|
3
|
-
An MCP (Model Context Protocol) server that exposes the UniFi Network Integration API as tools for Claude Code and other MCP clients. Provides
|
|
3
|
+
An MCP (Model Context Protocol) server that exposes the UniFi Network Integration API as tools for Claude Code and other MCP clients. Provides 68 tools for managing sites, devices, clients, networks, WiFi, firewalls, ACLs, DNS policies, hotspot vouchers, VPNs, and more.
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
@@ -44,7 +44,7 @@ claude mcp add-json unifi-network '{"command":"node","args":["/path/to/unifi-net
|
|
|
44
44
|
| `UNIFI_NETWORK_HOST` | Yes | — | IP or hostname of your UniFi Network console |
|
|
45
45
|
| `UNIFI_NETWORK_API_KEY` | Yes | — | API key from Network integration settings |
|
|
46
46
|
| `UNIFI_NETWORK_VERIFY_SSL` | No | `true` | Set to `false` to skip TLS certificate verification (needed for self-signed certs) |
|
|
47
|
-
| `UNIFI_NETWORK_READ_ONLY` | No | `
|
|
47
|
+
| `UNIFI_NETWORK_READ_ONLY` | No | `true` | Set to `false` to enable write/mutating tools (read-only by default) |
|
|
48
48
|
|
|
49
49
|
### Manual Configuration
|
|
50
50
|
|
|
@@ -71,7 +71,7 @@ Alternatively, add to your `~/.claude.json` under the top-level `"mcpServers"` k
|
|
|
71
71
|
This server provides layered safety controls for responsible operation:
|
|
72
72
|
|
|
73
73
|
- **Tool annotations** — Every tool declares `readOnlyHint`, `destructiveHint`, and `idempotentHint` so MCP clients (like Claude Code) can make informed confirmation decisions
|
|
74
|
-
- **Read-only mode** —
|
|
74
|
+
- **Read-only mode** — Enabled by default. Only read operations (list, get) are registered. Set `UNIFI_NETWORK_READ_ONLY=false` to enable write/mutating tools
|
|
75
75
|
- **Destructive tool warnings** — Tools that delete or irreversibly modify resources have descriptions prefixed with `DESTRUCTIVE:` to clearly signal risk
|
|
76
76
|
- **Confirmation parameter** — The most dangerous tools (e.g., `unifi_remove_device`, `unifi_bulk_delete_vouchers`) require an explicit `confirm: true` parameter that must be present for the call to succeed
|
|
77
77
|
- **Dry-run support** — All write tools accept an optional `dryRun: true` parameter that returns a preview of the HTTP request (method, path, body) without making any changes
|
|
@@ -148,6 +148,7 @@ This server provides layered safety controls for responsible operation:
|
|
|
148
148
|
| `unifi_get_firewall_policy` | Get a specific firewall policy by ID |
|
|
149
149
|
| `unifi_create_firewall_policy` | Create a new firewall policy |
|
|
150
150
|
| `unifi_update_firewall_policy` | Update a firewall policy |
|
|
151
|
+
| `unifi_patch_firewall_policy` | Partially update a firewall policy (e.g. toggle logging) |
|
|
151
152
|
| `unifi_delete_firewall_policy` | **DESTRUCTIVE:** Delete a firewall policy |
|
|
152
153
|
| `unifi_get_firewall_policy_ordering` | Get user-defined firewall policy ordering for a zone pair |
|
|
153
154
|
| `unifi_reorder_firewall_policies` | Reorder user-defined firewall policies for a zone pair |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owine/unifi-network-mcp",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "MCP server for the UniFi Network API",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"lint:fix": "eslint . --fix"
|
|
21
21
|
},
|
|
22
22
|
"engines": {
|
|
23
|
-
"node": "
|
|
23
|
+
"node": "^20.19.0 || ^22.13.0 || >=24"
|
|
24
24
|
},
|
|
25
25
|
"repository": {
|
|
26
26
|
"type": "git",
|
|
@@ -40,11 +40,12 @@
|
|
|
40
40
|
"zod": "^4.0.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@eslint/js": "
|
|
43
|
+
"@eslint/js": "10.0.1",
|
|
44
44
|
"@types/node": "24.10.13",
|
|
45
|
-
"
|
|
45
|
+
"@vitest/coverage-v8": "4.0.18",
|
|
46
|
+
"eslint": "10.0.0",
|
|
46
47
|
"typescript": "5.9.3",
|
|
47
|
-
"typescript-eslint": "8.
|
|
48
|
+
"typescript-eslint": "8.56.0",
|
|
48
49
|
"vitest": "4.0.18"
|
|
49
50
|
}
|
|
50
51
|
}
|