npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

unifi-mcp

v0.1.0

Published

MCP server for the UniFi Network API — manage and optimise your network like a specialist

Readme

unifi-mcp

MCP server that turns Claude into a UniFi network specialist. Manage devices, optimize WiFi, audit security, and troubleshoot your network through natural language.

Quick Start

1. Get your API key from your UniFi controller: Settings > Integrations > Create API Key

2. Add to Claude Code:

claude mcp add unifi -e UNIFI_API_URL=https://YOUR-CONTROLLER-IP -e UNIFI_API_KEY=YOUR-KEY -- npx pproenca/unifi-mcp

3. Ask Claude anything about your network:

> What's the health of my network?
> Run a security audit
> Optimize my WiFi
> Show me all connected clients
> Set up a guest network with 24h vouchers

That's it. No config files, no cloning, no build step.

What It Does

Claude gets 31 tools (29 direct tools + 2 agent-routing tools) that cover the full UniFi Network API, plus specialist prompts that guide it to think like a network engineer:

| Ask | What happens | | ------------------------ | ------------------------------------------------------------------------- | | "Is my network healthy?" | Checks all devices, stats, firmware, client distribution, WAN status | | "Why is my WiFi slow?" | Correlates AP radio stats, TX retries, channel congestion, client counts | | "Is my network secure?" | Audits VLANs, firewall zones/policies, WiFi security types, DNS filtering | | "Optimize my WiFi" | Analyzes channels, power, data rates, band steering, SSID count | | "Create a guest network" | Orchestrates network + SSID + firewall rules + vouchers |

The specialist knowledge is in the tool descriptions and server instructions -- Claude knows what to check, what "good" looks like, and what to recommend.

Tools

Read (safe, no confirmation needed)

| Tool | What it reads | | ------------------------ | ----------------------------------------------- | | get_system_info | Controller version | | list_sites | All managed sites | | list_devices | Devices with state, firmware, model | | get_device | Single device: radios, ports, topology | | get_device_stats | Real-time CPU, memory, load, TX/RX, radio stats | | list_pending_devices | Devices awaiting adoption | | list_clients | Connected clients with type, AP, IP | | get_client | Single client detail | | list_networks | VLANs and network configs | | list_wifi | SSIDs with security, rates, isolation | | list_firewall_zones | Firewall zone definitions | | list_firewall_policies | Policies with ordering | | get_wan_status | WAN interface status | | list_vpn | VPN tunnels and servers | | list_dpi_apps | DPI application categories |

Write (Claude will ask for confirmation)

| Tool | What it does | | ------------------------ | -------------------------------------------------------------- | | device_action | Restart, upgrade, locate, adopt | | client_action | Authorize, block, reconnect | | manage_network | Create/update/delete VLANs | | manage_wifi | Create/update/delete SSIDs | | manage_firewall_zone | Create/update/delete zones | | manage_firewall_policy | Create/update/delete/reorder policies | | manage_acl_rule | Create/update/delete/reorder ACL rules | | manage_dns_policy | Create/update/delete DNS policies | | manage_traffic_rule | Create/update/delete traffic rules | | manage_vouchers | Create/delete hotspot vouchers | | save_network_profile | Save personalized network profile to ~/.unifi-mcp/profile.json |

Agent Routing

| Tool | What it does | | ---------------- | ----------------------------------------------------------------------------- | | search_actions | Search an action catalog by query/category/read-only to find the right action | | execute_action | Execute any catalog action by actionId with a generic params object |

Prompts

| Prompt | What it does | | --------------------- | ---------------------------------------------------------------------------------------------- | | init | First-time setup: discover your network, agree on conventions, assess security, save a profile | | doctor | Diagnose issues: check devices, clients, connectivity, and performance | | optimize | Full optimization: WiFi, client placement, firewall hygiene, device health, architecture | | security-review | Threat model: attack chains, systemic findings, reachability tracing, live remediation |

Environment Variables

| Variable | Required | Description | | ------------------ | -------- | --------------------------------------------------------------------- | | UNIFI_API_URL | Yes | Controller URL, e.g. https://192.168.1.1 | | UNIFI_API_KEY | Yes | API key from Settings > Integrations | | UNIFI_SITE_ID | No | Site ID (auto-detects first site) | | UNIFI_VERIFY_TLS | No | Set to true to enforce TLS (default: false for self-signed certs) |

Requirements

  • UniFi controller with API access (Network 10.x+)
  • Node.js >= 18
  • An API key (generated in your controller's Integrations settings)

Your controller also has built-in API docs at https://YOUR-CONTROLLER-IP/unifi-api/network — useful for exploring endpoints and schemas.

Development

git clone https://github.com/pproenca/unifi-mcp.git
cd unifi-mcp
npm install
npm run generate:openapi-types
npm run build
npm test
npm run test:coverage
npm run test:mcp-smoke
npm run verify

# Test with MCP Inspector
mise run dev

# Or run directly
UNIFI_API_URL=https://192.168.1.1 UNIFI_API_KEY=xxx node dist/index.js

npm run build emits the publishable server into dist/. Test runs compile into dist-test/ so the npm package only ships runtime assets.

License

MIT