Back to Browse

Lancontrol MCP Server

Developer ToolsModerate6.1MCP RegistryLocal
Free

Server data from the Official MCP Registry

UniFi controller: clients, devices, WLANs, health, alarms, events, sysinfo, identity.

About

UniFi controller: clients, devices, WLANs, health, alarms, events, sysinfo, identity.

Security Report

6.1
Moderate6.1Moderate Risk

lancontrol is a read-only UniFi controller client exposing a single action-router tool that issues GET requests to documented UniFi endpoints using an API key read from environment variables. No malicious patterns, shell execution, hardcoded credentials, or data exfiltration were found; the only notable item is that the upstream endpoint mapping is a reconstruction rather than a verified spec, which may cause functional rather than security issues. Network access to the user-configured controller URL is expected for this category and purpose. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.

8 files analyzed · 7 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

yesOptional

Environment variable: UNIFI_URL

yesOptional

Environment variable: UNIFI_API_KEY

noOptional

Environment variable: UNIFI_SITE

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-cloudcorprecords-lancontrol": {
      "env": {
        "UNIFI_URL": "your-unifi-url-here",
        "UNIFI_SITE": "your-unifi-site-here",
        "UNIFI_API_KEY": "your-unifi-api-key-here"
      },
      "args": [
        "-y",
        "@reneturcios/lancontrol"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

lancontrol

lancontrol reads UniFi Network controller state through a single action-router tool: connected clients, network devices, WLAN configurations, site health, active alarms, recent events, controller sysinfo, and the authenticated identity. One binary serves a command-line interface and a stdio MCP server.

This is a labelled core subset. The upstream surface defines 267 actions in total; lancontrol builds only the 8 preserved convenience actions plus help (9 action values). The generated families are omitted, on purpose and by name: official_* (78 actions), unifi_* (175 actions), and the 5 hybrid aliases (list_clients, list_devices, list_networks, list_wifi, get_system_info).

Configuration

Both variables are required for every action except help; a missing value errors before any request is made:

VariableRequiredPurpose
UNIFI_URLyesController base URL, e.g. https://unifi.local.
UNIFI_API_KEYyesAPI key, sent as the X-API-KEY header.
UNIFI_SITEnoUniFi site name. Defaults to default.

Never pass the API key as a tool argument; it is read from the environment only.

Install

npx @reneturcios/lancontrol help

Or run the container image:

docker run -i ghcr.io/cloudcorprecords/lancontrol

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

CLI

lancontrol clients
lancontrol devices
lancontrol wlans
lancontrol health
lancontrol alarms
lancontrol events --limit 25
lancontrol sysinfo
lancontrol me
lancontrol help

lancontrol --version

Action commands print the upstream JSON payload. help prints the local action documentation and needs no configuration and no network. Exit codes: 0 on success, 1 when a call fails (including a missing-config or upstream API error), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/lancontrol mcp

MCP client configuration:

{
  "mcpServers": {
    "lancontrol": {
      "command": "npx",
      "args": ["-y", "@reneturcios/lancontrol", "mcp"],
      "env": {
        "UNIFI_URL": "https://unifi.local",
        "UNIFI_API_KEY": "...",
        "UNIFI_SITE": "default"
      }
    }
  }
}

Tool

One tool is exposed:

ToolInputWhat it returns
unifiaction (required, one of the 9 subset values), limit (optional integer, events only)The upstream payload for the chosen action, or local documentation for help.
ActionDescription
clientsConnected wireless and wired clients.
devicesNetwork devices: APs, switches, gateways.
wlansWiFi network configurations.
healthSite health summary.
alarmsActive alarms and alerts.
eventsRecent controller events.
sysinfoController system information.
meAuthenticated UniFi identity.
helpBuilt-in action documentation.

Upstream mapping (documented reconstruction)

The public spec names the actions but does not publish, in its convenience-action table, the exact controller path for each one. Each action is therefore implemented as a GET to a plausible documented UniFi internal endpoint under UNIFI_URL, with the X-API-KEY header:

ActionEndpoint
clientsGET /proxy/network/api/s/{site}/stat/sta
devicesGET /proxy/network/api/s/{site}/stat/device
wlansGET /proxy/network/api/s/{site}/rest/wlanconf
healthGET /proxy/network/api/s/{site}/stat/health
alarmsGET /proxy/network/api/s/{site}/stat/alarm
eventsGET /proxy/network/api/s/{site}/stat/event (plus ?_limit={limit} when a limit is supplied)
sysinfoGET /proxy/network/api/s/{site}/stat/sysinfo
meGET /proxy/network/api/self
helpno request — answered locally

HTTP failures surface the status plus the upstream message (meta.msg, message, or error) when present.

Development

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Reviews

No reviews yet

Be the first to review this server!