MCP server providing Claude Code with full UniFi network management capabilities -- devices, clients, ports, bandwidth auditing, firewall policies, and traffic rules -- all through natural language.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
philipvanlewis
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `config.proxy`
axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
LOG_LEVELNo info Log verbosity: debug, info, warn, errorMAX_RETRIESNo 3 Number of retry attempts for webhook pushRETRY_DELAY_MSNo 60000 Initial delay between retries in ms (linear backoff: 1x, 2x, 3x)TOKEN_CACHE_PATHNo ./data/unifi-session.encrypted.json Path to the encrypted session cache fileTOKEN_ENCRYPTION_KEYNo -- 64-character hex key for AES-256-GCM encryption. Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))". Falls back to base64 encoding if unset.UNIFI_HOST"": "your-controller-ip",UNIFI_PASSWORDnpm run auth -- --auto # Non-interactive (requires UNIFI_USERNAME, , UNIFI_TOTP_SEED)UNIFI_PORTNo 443 HTTPS portUNIFI_SITE"": "default"UNIFI_TOTP_SEEDnpm run auth -- --auto # Non-interactive (requires UNIFI_USERNAME, UNIFI_PASSWORD, )UNIFI_USERNAMEnpm run auth -- --auto # Non-interactive (requires , UNIFI_PASSWORD, UNIFI_TOTP_SEED)UNIFI_VERIFY_SSLNo false Set true only if the controller has a valid TLS certificateVPN_GATEWAYNo -- IP to ping for VPN health check (e.g., your gateway behind the tunnel)VPN_TUNNEL_NAMENo -- WireGuard tunnel name for automatic VPN connect/disconnectWEBHOOK_URLFor webhook -- Make.com or other webhook URL for monthly bandwidth auditTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
19/19 tools missing one or more hints — unifi-bandwidth-audit (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); unifi-client-list (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); unifi-client-detail (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +16 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool inputs are validated
14/19 tool handlers declare input schemas (74%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tests exist
No test files found
Add tests that exercise each declared tool.
Secrets stay with their owner
2 secret/sensitive values flow into network calls (UNIFI_PASSWORD → /api/auth/login, UNIFI_PASSWORD → /api/auth/login)
Audit where credentials are sent. A NOTION_TOKEN should only reach api.notion.com — never a third-party host.
Production dependencies are patched
0 critical, 17 high severity in production deps — @modelcontextprotocol/sdk@1.12.0 (high), @modelcontextprotocol/sdk@1.12.0 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/philipvanlewis-unifi-mcp-server-1xcx6x)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check