{"id":50659144,"url":"https://github.com/chrisallenlane/unifi-mcp","last_synced_at":"2026-06-08T01:07:42.457Z","repository":{"id":352415886,"uuid":"1188279792","full_name":"chrisallenlane/unifi-mcp","owner":"chrisallenlane","description":"MCP server for Unifi API, written in Go (MIRROR)","archived":false,"fork":false,"pushed_at":"2026-04-19T13:05:29.000Z","size":246,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-19T14:41:25.253Z","etag":null,"topics":["ai-tools","claude","firewall","golang","home-automation","llm","mcp","mcp-server","model-context-protocol","network-management","openapi","smart-home","ubiquiti","unifi","unifi-network"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisallenlane.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-21T21:27:06.000Z","updated_at":"2026-04-19T13:05:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/chrisallenlane/unifi-mcp","commit_stats":null,"previous_names":["chrisallenlane/unifi-mcp"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/chrisallenlane/unifi-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisallenlane%2Funifi-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisallenlane%2Funifi-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisallenlane%2Funifi-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisallenlane%2Funifi-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisallenlane","download_url":"https://codeload.github.com/chrisallenlane/unifi-mcp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisallenlane%2Funifi-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34043832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-tools","claude","firewall","golang","home-automation","llm","mcp","mcp-server","model-context-protocol","network-management","openapi","smart-home","ubiquiti","unifi","unifi-network"],"created_at":"2026-06-08T01:07:41.832Z","updated_at":"2026-06-08T01:07:42.451Z","avatar_url":"https://github.com/chrisallenlane.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# unifi-mcp\n\nAn [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server for\nthe [UniFi Network Integration API](https://developer.ui.com/). Exposes 67\nUniFi controller operations as MCP tools usable by Claude and other AI\nassistants.\n\n## Features\n\n- Query controller info and sites\n- Full CRUD for firewall zones, firewall policies, networks, ACL rules, DNS\n  policies, traffic matching lists, and WiFi broadcasts\n- Client and device management (listing, status, actions)\n- Hotspot voucher management\n- Supporting read-only tools (WANs, VPN tunnels, VPN servers, RADIUS profiles,\n  device tags, DPI categories, DPI applications, countries)\n- Firewall policy and ACL rule ordering\n- Type-safe client generated from the official UniFi OpenAPI 3.1.0 spec\n\n## Requirements\n\n- Go 1.24+\n- UniFi controller running firmware ~7.x/8.x or later (Integration API)\n- An API key from the UniFi controller\n\n## Installation\n\n```bash\ngit clone https://github.com/chrisallenlane/unifi-mcp.git\ncd unifi-mcp\nmake build\n# Binary: dist/unifi-mcp\n```\n\n## Configuration\n\n| Variable | Required | Description |\n|---|---|---|\n| `UNIFI_API_URL` | Yes | Base URL of your UniFi controller (e.g. `https://192.168.1.1`) |\n| `UNIFI_API_KEY` | Yes | API key from the UniFi controller |\n| `UNIFI_SITE_ID` | No | Default site UUID; tools accept `siteId` to override |\n| `UNIFI_INSECURE` | No | Set to any non-empty value to skip TLS verification |\n\n## Tools\n\n**Info / Sites**\n\n| Tool | Description |\n|---|---|\n| `get_info` | Get controller application version |\n| `list_sites` | List all sites |\n\n**Firewall Zones**\n\n| Tool | Description |\n|---|---|\n| `list_firewall_zones` | List firewall zones for a site |\n| `get_firewall_zone` | Get a specific firewall zone |\n| `create_firewall_zone` | Create a new firewall zone |\n| `update_firewall_zone` | Update an existing firewall zone |\n| `delete_firewall_zone` | Delete a firewall zone |\n\n**Firewall Policies**\n\n| Tool | Description |\n|---|---|\n| `list_firewall_policies` | List firewall policies for a site |\n| `get_firewall_policy` | Get a specific firewall policy |\n| `create_firewall_policy` | Create a new firewall policy |\n| `update_firewall_policy` | Update an existing firewall policy |\n| `delete_firewall_policy` | Delete a firewall policy |\n| `patch_firewall_policy` | Partially update a firewall policy |\n| `get_firewall_policy_ordering` | Get firewall policy ordering for a site |\n| `update_firewall_policy_ordering` | Update firewall policy ordering for a site |\n\n**Networks**\n\n| Tool | Description |\n|---|---|\n| `list_networks` | List networks for a site |\n| `get_network` | Get a specific network |\n| `create_network` | Create a new network |\n| `update_network` | Update an existing network |\n| `delete_network` | Delete a network |\n| `get_network_references` | Get references to a network |\n\n**Clients**\n\n| Tool | Description |\n|---|---|\n| `list_clients` | List clients for a site |\n| `get_client` | Get a specific client |\n| `execute_client_action` | Execute an action on a client |\n\n**Devices**\n\n| Tool | Description |\n|---|---|\n| `list_devices` | List devices for a site |\n| `get_device` | Get a specific device |\n| `adopt_device` | Adopt a device |\n| `remove_device` | Remove a device |\n| `execute_device_action` | Execute an action on a device |\n| `execute_port_action` | Execute an action on a device port |\n| `get_device_statistics` | Get statistics for a device |\n| `list_pending_devices` | List devices pending adoption |\n\n**ACL Rules**\n\n| Tool | Description |\n|---|---|\n| `list_acl_rules` | List ACL rules for a site |\n| `get_acl_rule` | Get a specific ACL rule |\n| `create_acl_rule` | Create a new ACL rule |\n| `update_acl_rule` | Update an existing ACL rule |\n| `delete_acl_rule` | Delete an ACL rule |\n| `get_acl_rule_ordering` | Get ACL rule ordering for a site |\n| `update_acl_rule_ordering` | Update ACL rule ordering for a site |\n\n**DNS Policies**\n\n| Tool | Description |\n|---|---|\n| `list_dns_policies` | List DNS policies for a site |\n| `get_dns_policy` | Get a specific DNS policy |\n| `create_dns_policy` | Create a new DNS policy |\n| `update_dns_policy` | Update an existing DNS policy |\n| `delete_dns_policy` | Delete a DNS policy |\n\n**Traffic Matching Lists**\n\n| Tool | Description |\n|---|---|\n| `list_traffic_matching_lists` | List traffic matching lists for a site |\n| `get_traffic_matching_list` | Get a specific traffic matching list |\n| `create_traffic_matching_list` | Create a new traffic matching list |\n| `update_traffic_matching_list` | Update an existing traffic matching list |\n| `delete_traffic_matching_list` | Delete a traffic matching list |\n\n**WiFi Broadcasts**\n\n| Tool | Description |\n|---|---|\n| `list_wifi_broadcasts` | List WiFi broadcasts for a site |\n| `get_wifi_broadcast` | Get a specific WiFi broadcast |\n| `create_wifi_broadcast` | Create a new WiFi broadcast |\n| `update_wifi_broadcast` | Update an existing WiFi broadcast |\n| `delete_wifi_broadcast` | Delete a WiFi broadcast |\n\n**Hotspot Vouchers**\n\n| Tool | Description |\n|---|---|\n| `list_vouchers` | List hotspot vouchers for a site |\n| `get_voucher` | Get a specific hotspot voucher |\n| `create_vouchers` | Create hotspot vouchers |\n| `delete_vouchers` | Delete multiple hotspot vouchers |\n| `delete_voucher` | Delete a specific hotspot voucher |\n\n**Supporting Read-Only**\n\n| Tool | Description |\n|---|---|\n| `list_wans` | List WAN configurations for a site |\n| `list_vpn_tunnels` | List VPN tunnels for a site |\n| `list_vpn_servers` | List VPN servers for a site |\n| `list_radius_profiles` | List RADIUS profiles for a site |\n| `list_device_tags` | List device tags for a site |\n| `list_dpi_categories` | List DPI categories |\n| `list_dpi_applications` | List DPI applications |\n| `list_countries` | List available countries |\n\n## Usage\n\nSee [SETUP.md](SETUP.md) for configuration with Claude Code or Claude Desktop.\n\n## Development\n\n```bash\n# Format, lint, vet, and test\nmake check\n\n# Build binary\nmake build\n\n# Regenerate types/client from OpenAPI spec\nmake generate\n```\n\nFor development guidance, see [CLAUDE.md](CLAUDE.md).\n\n## Architecture\n\nTypes and HTTP client are generated from the official UniFi Network OpenAPI\n3.1.0 spec (`api/unifi-network.json`) using `oapi-codegen`. See\n[adr/001-generate-models-from-openapi-spec.md](adr/001-generate-models-from-openapi-spec.md)\nfor rationale.\n\n## License\n\nMIT License - see LICENSE file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisallenlane%2Funifi-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisallenlane%2Funifi-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisallenlane%2Funifi-mcp/lists"}