ames-unifi-mcp 1.0.7 → 1.0.9
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
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<p align="center">
|
|
19
19
|
<a href="https://www.npmjs.com/package/ames-unifi-mcp"><img src="https://img.shields.io/npm/v/ames-unifi-mcp?style=flat-square&color=f5a542" alt="npm"></a>
|
|
20
20
|
<a href="https://github.com/oliverames/ames-unifi-mcp/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/oliverames/ames-unifi-mcp/ci.yml?branch=main&style=flat-square&label=CI&color=f5a542" alt="CI"></a>
|
|
21
|
-
<a href="https://github.com/oliverames/ames-unifi-mcp/releases/tag/v1.0.
|
|
21
|
+
<a href="https://github.com/oliverames/ames-unifi-mcp/releases/tag/v1.0.9"><img src="https://img.shields.io/github/v/release/oliverames/ames-unifi-mcp?style=flat-square&color=f5a542&label=MCPB" alt="MCPB release"></a>
|
|
22
22
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-f5a542?style=flat-square" alt="License"></a>
|
|
23
23
|
<a href="https://www.buymeacoffee.com/oliverames"><img src="https://img.shields.io/badge/Buy_Me_a_Coffee-support-f5a542?style=flat-square&logo=buy-me-a-coffee&logoColor=white" alt="Buy Me a Coffee"></a>
|
|
24
24
|
</p>
|
|
@@ -45,9 +45,9 @@ Every mutating operation passes through a **confirm gate** that returns a dry-ru
|
|
|
45
45
|
|
|
46
46
|
### Install with MCPB
|
|
47
47
|
|
|
48
|
-
For Claude Desktop and other MCPB-compatible clients, download the local bundle from the [v1.0.
|
|
48
|
+
For Claude Desktop and other MCPB-compatible clients, download the local bundle from the [v1.0.9 release](https://github.com/oliverames/ames-unifi-mcp/releases/tag/v1.0.9):
|
|
49
49
|
|
|
50
|
-
[Download `ames-unifi-mcp-1.0.
|
|
50
|
+
[Download `ames-unifi-mcp-1.0.9.mcpb`](https://github.com/oliverames/ames-unifi-mcp/releases/download/v1.0.9/ames-unifi-mcp-1.0.9.mcpb)
|
|
51
51
|
|
|
52
52
|
The bundle includes the UniFi favicon, production runtime binaries for macOS and Linux, and setup prompts for host, authentication, site, SSL, tool mode, and permission profile.
|
|
53
53
|
|
|
@@ -297,6 +297,7 @@ The server covers all three UniFi API layers:
|
|
|
297
297
|
| `UNIFI_VERIFY_SSL` | No | `true` | `false` for self-signed certs |
|
|
298
298
|
| `UNIFI_TOOL_MODE` | No | `lazy` | `lazy` (3 meta-tools) or `eager` (all 310 tools) |
|
|
299
299
|
| `UNIFI_PERMISSION_PROFILE` | No | `standard` | `read-only`, `standard`, or `admin` |
|
|
300
|
+
| `SENTRY_DSN` | No | empty | Optional Sentry DSN. When set, panics in tool handlers are reported with only the tool name and panic type. See [Error reporting](#error-reporting) |
|
|
300
301
|
|
|
301
302
|
<sub>* `UNIFI_HOST` plus either `UNIFI_API_KEY` or both `UNIFI_USERNAME` + `UNIFI_PASSWORD` are required for the server to actually call the controller. If they are absent, the server still starts and registers all tools (so the plugin appears installed), but every tool call returns a structured "credentials not configured" error pointing the user at the env vars or 1Password fallback. This lets the connector live in a clean "needs authentication" state instead of a hard startup error.</sub>
|
|
302
303
|
|
|
@@ -317,6 +318,12 @@ Plaintext environment variables take priority. The server calls `op read` only w
|
|
|
317
318
|
|
|
318
319
|
**Username/Password** — Uses session cookies with automatic re-login on expiry. The server includes a single-flight re-login mechanism that prevents thundering-herd issues when batch operations encounter session timeouts simultaneously.
|
|
319
320
|
|
|
321
|
+
### Error reporting
|
|
322
|
+
|
|
323
|
+
Error reporting is off by default. Set `SENTRY_DSN` to send reports to a Sentry project you control. The package ships with no DSN, so nothing is sent unless you configure one.
|
|
324
|
+
|
|
325
|
+
When it is on, the server reports only panics recovered inside tool handlers. A panicking tool returns an error result instead of stopping the server. Each report holds the tool name, the Go type of the panic, a fixed message, and stack frames reduced to package paths and file names. Panic values, error text, tool arguments, and controller responses are never attached, because they can contain device names, MAC and IP addresses, SSIDs, client hostnames, and credentials. Request data, user data, the machine's hostname, breadcrumbs, and tracing are turned off or stripped before an event leaves the process.
|
|
326
|
+
|
|
320
327
|
See [integration testing](docs/INTEGRATION_TESTING.md) for a safe controller test sequence and [release guidance](docs/RELEASING.md) for the checks that produce the npm package, MCPB bundle, checksums, and SBOM.
|
|
321
328
|
|
|
322
329
|
---
|
|
@@ -331,7 +338,8 @@ internal/
|
|
|
331
338
|
- Session auth with auto re-login (single-flight)
|
|
332
339
|
- API key auth (X-API-Key header)
|
|
333
340
|
- CSRF token management (thread-safe)
|
|
334
|
-
-
|
|
341
|
+
- Cancellable retry backoff for GET/HEAD (network errors, 429, 5xx)
|
|
342
|
+
- Mutations are not replayed after ambiguous failures
|
|
335
343
|
- Legacy envelope parsing (meta.rc/data)
|
|
336
344
|
- Raw response passthrough (Integration/v2 APIs)
|
|
337
345
|
version/ Controller version detection
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|