Releases: enuno/unifi-mcp-server
Release list
Release v0.2.6
What's Changed
- fix(style): reformat code with black and isort for CI compliance (14cf53e)
- fix(tests): update assertions for normalized API response format (ec7ee90)
- fix(#75): handle empty vlan field in Network model (015b4fd)
- fix(types): various mypy fixes (casts, annotations, payload typing, signature Optionals) (9fa19ea)
- fix(types): annotate safe payloads, match_criteria and use cast for SiteManager responses; adjust Redis typing (d0cbace)
- fix(types): tighten site_manager fallback and avoid in-place param typing in audit_action (552b1bf)
- chore(types): remove unused '# type: ignore' comments across src (271c0b1)
- fix(types): normalize client _request return to dict and annotate topology depth_map\n\nCo-authored-by: Copilot 223556219+Copilot@users.noreply.github.com (750151d)
- chore(mypy): enable pydantic mypy plugin to improve BaseModel typing (cf6b542)
- fix(types): add annotations to require_site_manager decorator wrapper to satisfy mypy\n\nCo-authored-by: Copilot 223556219+Copilot@users.noreply.github.com (f277e73)
- fix(types): provide explicit TrafficFlowData defaults for mypy-compatible default_factory\n\nCo-authored-by: Copilot 223556219+Copilot@users.noreply.github.com (6d61062)
- fix(types): tighten return types in UniFi client; remove unused type: ignore in tool registry\n\nCo-authored-by: Copilot 223556219+Copilot@users.noreply.github.com (6307263)
- fix(types): annotate sanitized dict and use lambda default_factory for TrafficFlowData to satisfy mypy\n\nCo-authored-by: Copilot 223556219+Copilot@users.noreply.github.com (88615dc)
- fix(firewall): add APP matching target and normalize site UUIDs for v2 API (#74) (b8f450c)
- docs: update README with v0.2.5 release overview (739091d)
Full Changelog: v0.2.5...v0.2.6
Docker Image
Multi-architecture support: amd64, arm64, arm/v7, arm64/v8
docker pull ghcr.io/enuno/unifi-mcp-server:v0.2.6Installation
Via pip
pip install unifi-mcp-server==v0.2.6Via uv
uv pip install unifi-mcp-server==v0.2.6Release v0.2.5
What's Changed
- chore: bump version to 0.2.5 and add comprehensive release notes (e0997da)
- feat: add SSE/HTTP transport mode support for MCP gateway integration (58e6a27)
- style: automated formatting pass across src/ and tests/ (2183888)
- fix(tools): resolve local API bugs reported in #57 (5c18c9e)
- chore(deps): bump the uv group across 1 directory with 8 updates (#65) (f06a0ee)
- fix: cloud-ea API compatibility and Site Manager endpoint hardening (d021b7f)
- feat(main): register switching and diagnostics tool modules (6003c60)
- feat(diagnostics): implement Network References, Speed Test, Spectrum Scan (74531de)
- feat(switching): implement Switching API with TDD (c48384b)
- docs: rewrite DEVELOPMENT_PLAN.md for full API coverage (bc80620)
- docs: bump UNIFI_API.md to v10.3.55 from beezly/unifi-apis OpenAPI spec (647b6ba)
- feat: update_wlan param parity, AP radio channel config, API docs v10.2.105 (a8e0ea8)
- fix: network vlan model alias, API field name, remove immutable purpose param (229e07e)
- feat(firewall_policies): register zone-based policy tools with zone resolver (af1cd56)
- fix: integration API compatibility across ACLs, zones, devices, traffic flows (c0b61cc)
- feat(firewall_groups): port/address group CRUD + port matching on policies (016c573)
- feat(traffic_flows): rewrite against local v2 endpoint, add rule-reference tool (44a6cda)
- feat(firewall_policies): register zone-based policy tools with zone resolver (a2d5139)
- fix: extract first element from list for single-object API responses (a13032d)
- fix: sync legacy wlan_band field when updating wlan_bands (a0a9da4)
- feat: add wlan_bands parameter to update_wlan (d92cc90)
- fix: normalize API response parsing across all tool modules for local API mode (b645533)
- fix(firewall_zones): use networkIds instead of networks in zone PUT payload (#54) (5c98370)
- refactor: security hardening, main.py refactor, tooling updates, and repo cleanup (#53) (2359fe1)
- fix: resolve all Dependabot security vulnerabilities (e0d3b88)
- Update stable release version to 0.2.4 (dbd8102)
- fix: local API compatibility — 7 bug fixes, remove non-existent endpoints (#49) (79277ae)
- feat: add update_port_forward tool (#45) (e6a943d)
- chore(deps): bump the uv group across 1 directory with 2 updates (#47) (fb24739)
Full Changelog: v0.2.4...v0.2.5
Docker Image
Multi-architecture support: amd64, arm64, arm/v7, arm64/v8
docker pull ghcr.io/enuno/unifi-mcp-server:v0.2.5Installation
Via pip
pip install unifi-mcp-server==v0.2.5Via uv
uv pip install unifi-mcp-server==v0.2.5Release v0.2.4
What's Changed
- docs: update README version notice to v0.2.4 (a2923dd)
- fix: resolve ImportError cannot import config from agnost on startup (#42) (#43) (6ff0f7c)
Full Changelog: v0.2.3...v0.2.4
Docker Image
Multi-architecture support: amd64, arm64, arm/v7, arm64/v8
docker pull ghcr.io/enuno/unifi-mcp-server:v0.2.4Installation
Via pip
pip install unifi-mcp-server==v0.2.4Via uv
uv pip install unifi-mcp-server==v0.2.4Release v0.2.3
What's Changed
- docs: add v0.2.3 release notes for P2 RADIUS CRUD additions (659a14d)
- feat(radius): complete CRUD for RADIUS accounts and hotspot packages (#41) (fa4f0d1)
- docs: add v0.2.3 release notes to CHANGELOG.md (#40) (c72542f)
- fix(p1): Fix runtime bugs and missing API client methods in P1 features (#39) (99c578e)
- fix(security): Address CVE-2025-69872 + Add Site Manager API Foundation (P0) (#37) (1e99a6f)
- docs(plan): update DEVELOPMENT_PLAN.md with newly documented API endpoints (b1c6a25)
- fix: API fixes, security cleanup, and test coverage improvements (#36) (a422f91)
Full Changelog: v0.2.2...v0.2.3
Docker Image
Multi-architecture support: amd64, arm64, arm/v7, arm64/v8
docker pull ghcr.io/enuno/unifi-mcp-server:v0.2.3Installation
Via pip
pip install unifi-mcp-server==v0.2.3Via uv
uv pip install unifi-mcp-server==v0.2.3Release v0.2.2
What's Changed
- docs: add v0.2.2 release notes to CHANGELOG.md (14f6a9f)
- docs: update documentation for v0.2.2 release (ffc1e6e)
- style: fix isort import ordering in test_port_profile_tools.py (5674286)
- fix(deps): update dependencies to address security vulnerabilities (ddaa9e9)
- style: apply black and isort formatting fixes (9feb15b)
- fix: address code review findings across four areas (e77129c)
- fix(tools): validate port profile responses through Pydantic models (d666965)
- fix(types): add type hints to coerce_bool and validate_confirmation (360339f)
- fix(tools): allow dry_run without confirm, fix firewall param names (653d957)
- fix(utils): add missing DuplicateResourceError exception class (448b916)
- chore(security): remove PII and harden repo for public release (b7c0489)
- feat(tools): add port profile and device port override tools (20efe10)
- fix(api): correct RADIUS, firewall, WLAN, and network endpoints and payloads (94277cb)
- fix(clients): search_clients now queries both sta and stat/alluser endpoints (356f0bf)
- chore: update default gateway IP from 192.168.1.1 to 192.168.2.1 (4dbcdff)
- chore(deps): bump cryptography from 46.0.3 to 46.0.5 (CVE-2026-26007) (0712c28)
- docs: add documentation for bug report workflow (d5e9927)
- Add bug report handler workflow (0378f2d)
- Initial plan (bd7f87a)
- docs: add Codecov sunburst graph to test coverage section (be20e65)
- docs: add Codecov badge to README (a49d577)
- style: remove unused FirewallZone import from firewall_zones.py (9cbde7a)
- fix: resolve MyPy type checking errors in firewall.py (cf22c98)
- style: apply black formatting to integration tests (5a7c851)
- style: fix ruff linting errors in integration tests (018621a)
- fix: correct firewall zone test to check 'networks' instead of 'network_ids' (039cc58)
- fix: resolve 5 failing integration tests on PR #29 (55dd4dd)
- feat(tests): Week 4 - Destructive Operations Integration Tests (DRY-RUN ONLY) (269b445)
- chore(deps): bump python-multipart in the uv group across 1 directory (bf95be8)
- feat: implement Week 3 integration tests (high risk operations) (04c2459)
- feat: implement Week 2 integration test suites (medium risk operations) (2edc7a5)
- fix: resolve Week 1 integration test issues (80.5% pass rate) (07de670)
- test: complete Week 1 integration tests - network and site suites (8c06697)
- test: add device and client integration test suites (Week 1 partial) (42ae990)
- docs: update README.md to document v0.2.1 release (748525a)
Full Changelog: v0.2.1...v0.2.2
Docker Image
Multi-architecture support: amd64, arm64, arm/v7, arm64/v8
docker pull ghcr.io/enuno/unifi-mcp-server:v0.2.2Installation
Via pip
pip install unifi-mcp-server==v0.2.2Via uv
uv pip install unifi-mcp-server==v0.2.2Release v0.2.1
What's Changed
- fix: exclude integration test runner from pytest naming check (893561e)
- fix: update test_harness.py with modern Python type annotations (8b9440a)
- fix: configure pytest to properly exclude integration tests from unit test runs (be2d092)
- fix: resolve CI/CD test failures for v0.2.1 release (7a8450b)
- chore: bump version to 0.2.1 (5f8476d)
- fix: topology tools + integration test framework (v0.2.1) (beed7d4)
- fix: handle list responses in resolve_site_id for local API (82b4d01)
- docs: update README with PyPI installation and configuration (63b109c)
Full Changelog: v0.2.0...v0.2.1
Docker Image
Multi-architecture support: amd64, arm64, arm/v7, arm64/v8
docker pull ghcr.io/enuno/unifi-mcp-server:v0.2.1Installation
Via pip
pip install unifi-mcp-server==v0.2.1Via uv
uv pip install unifi-mcp-server==v0.2.1Release v0.2.0
What's Changed
- fix: update author email to valid address for PyPI compliance (da25ead)
- chore: prepare for PyPI release v0.2.0 (3226ff9)
- docs: enhance MCP client configs, extract release process, remove submodule (f453b7c)
- docs: close v0.2.0 release session with comprehensive summary (4388896)
- chore: ignore MCP registry authentication tokens\n\n🤖 Generated with Nori\n\nCo-Authored-By: Nori contact@tilework.tech (e37ef2e)
- docs: update RELEASE_COMPLETION_GUIDE with completion status (954868f)
- feat: add MCP registry server.json manifest (0f38fa3)
- docs: update README.md with comprehensive v0.2.0 release information (a35ab25)
- docs: add comprehensive release completion guide for v0.2.0 (b217abf)
- chore: add npm wrapper package for MCP registry compatibility (7e2d949)
- chore: prepare v0.2.0 release (c28b923)
- docs: add comprehensive AI assistant prompt examples for v0.2.0 features (0de19e9)
- fix: use whitelist approach for secret redaction in RADIUS dry-run logging (de3d66a)
- fix: prevent secret logging in RADIUS update and guest portal (158c0e7)
- fix: resolve 3 CodeQL security alerts (d59375a)
- style: apply pre-commit import formatting (120db59)
- feat: implement Phase 7 network topology mapping (v0.2.0) (d9aa7d5)
- fix: resolve RADIUS model conflict in reference_data (e7896ac)
- chore: add MagicMock test artifacts to gitignore\n\n🤖 Generated with Nori\n\nCo-Authored-By: Nori contact@tilework.tech (ab4a059)
- docs: add comprehensive RADIUS & Guest Portal API documentation (7702da7)
- feat: implement Phase 6 RADIUS and guest portal tools (v0.2.0) (c86da0c)
- docs: add comprehensive Site Manager API section to UNIFI_API.md (8745cb7)
- feat: implement Phase 5 multi-site aggregation tools (v0.2.0) (4a07eeb)
- docs: add comprehensive Backup and Restore section to UNIFI_API.md (9da9c82)
- feat: implement Phase 4 backup status and scheduling tools (v0.2.0) (dae0945)
- docs: add comprehensive QoS section and example MCP prompts to UNIFI_API.md (45ff84b)
- test: add comprehensive QoS tools test suite (46 tests, 82% coverage) (3edb5cc)
- feat: implement Phase 3 QoS and Traffic Management (v0.2.0) (f4b8c0d)
- docs: clarify ZBF zone-to-zone policies work via Firewall Policies v2 API (2ce5c78)
- feat: migrate to Alpine Linux base image to eliminate system CVEs (95a7767)
- style: apply black and isort formatting to sanitization code\n\n🤖 Generated with Nori\n\nCo-Authored-By: Nori contact@tilework.tech (55f6ee6)
- feat: implement comprehensive log sanitization for sensitive data (7580f94)
- fix: address code scanning issues and update dependencies (496df8e)
- feat: add API documentation updater and expand UNIFI_API.md (8ec2b16)
- fix: handle navigation during auth detection (passkey completion) (44857ad)
- fix: improve continue button click and auth method detection (27f538b)
- fix: add continue button click and configurable timeouts (e0bc41c)
- fix: replace deprecated waitForTimeout with delay utility (ffb65af)
- fix: add passkey/WebAuthn authentication support (11ae062)
- feat: implement UniFi API documentation scraper (df92aa5)
- (maint) updating official API documentation (cde55dc)
- chore(deps): bump the uv group across 1 directory with 8 updates (67fac5a)
- style: fix pre-commit compliance issues (e5d623b)
- style: reformat imports for pre-commit compliance (ee47514)
- style: reformat edited files with black\n\n🤖 Generated with Nori\n\nCo-Authored-By: Nori contact@tilework.tech (f13e7db)
- fix(lint): resolve remaining ruff linting errors (cdfc11a)
- style: fix code formatting and linting issues (72b0a9e)
- test: remove test files for unimplemented/deprecated features (c02b6e4)
- fix(ci): add github_token to Claude Code workflows (669fadf)
- test: remove obsolete static_dns test files (ee86e2c)
- chore: add .worktrees/ to .gitignore (4e64606)
- feat(firewall): add create, update, delete firewall policy functions (a7d5ef0)
- feat(tools): add firewall policies v2 API support (99145f2)
- feat(models): add FirewallPolicy Pydantic models for v2 API (cbec913)
- test: add comprehensive unit tests for remaining modules (c4a29fa)
- test: add comprehensive tests for new feature modules (bb4ab33)
- test: add resources and networks tests to reach 80% coverage (12fd356)
- test(networks): add comprehensive unit tests for networks tools (7f8c852)
- test(clients): add comprehensive unit tests for clients tools (0b109aa)
- test(devices): add comprehensive unit tests for devices tools (196f088)
- test(sites): add comprehensive unit tests for sites tools (41975d9)
- test(config): add comprehensive unit tests for Settings class (506bdff)
- test(audit): add comprehensive unit tests for utils/audit.py (7e912b1)
- test(helpers): add comprehensive unit tests for utils/helpers.py (a616786)
- feat: add support for DHCP DNS servers 3 and 4 (2ad55ca)
- feat: add site-to-site VPN management tools (e5b0d28)
- fix(network_config): handle varying API response formats (740595c)
- fix: use stderr for logging to avoid corrupting MCP stdio transport (9507a74)
- Change cron schedule to run daily at midnight (4b88d24)
- chore: updating claude-command-and-control submodule; gitignore and coverage.json (fa3f94e)
- chore: updating claude-command-and-control submodule (9bdc3e7)
- Delete tests directory (a10f914)
- docs: document Phase 3 QoS implementation plan and research (c4bbf05)
- test: complete Sprint 2 test coverage (network_config, port_forwarding, dpi) (7ac3aa0)
- feat(tests): add comprehensive devices test coverage - Sprint 1 complete (5b1bbec)
- feat(tests): add comprehensive device_control test coverage (9990e09)
- feat(tests): add comprehensive client_management test coverage (3af27f0)
- feat: complete Phase 4 backup/restore + Sprint 1 firewall tests (7c2ffc3)
- Add star history section to README (2259234)
- chore: update project tracking files after Batch 3-4 completion (b0c799d)
- docs: mark implemented endpoints in UNIFI_API.md (8167d31)
- feat(batch-3): add RADIUS profiles and reference data endpoints (0b94a48)
- feat: implement VPN Management API endpoints (Batch 2) (f94db0f)
- fix(config): correct environment variable names for Settings validation (e43c0a7)
- fix(docker): update MCP Toolbox configuration with correct image and tools.yaml (f2f7022)
- feat: implement Traffic Matching Lists API endpoints (Batch 1) (1573b30)
- docs: update UniFi API documentation from v10.0.156 to v10.0.160 (c0cebda)
- test: improve coverage from 27.96% to 41.73% with Site Manager tests and infrastructure fixes (56a5bb3)
- fix(networks): return all networks in list_vlans regardless of vlan_id (67c6ec9)
- docs: update UNIFI_API.md to v10.0.156 with comprehensive endpoint documentation (a32aaa3)
- feat: add comprehensive multi-API support (local, cloud-v1, cloud-ea) (88de514)
- Update README.md (558ab10)
- fix: add missing json import and correct test parameters (194b567)
- fix: handle empty JSON responses and correct test function names (dae11f4)
- fixing CLAUDE.md (df483e5)
- adding the full unifi-mcp-live-test-v2 command (b8a2ab7)
- removing duplicate command file (f3c5e09)
- updating the mcp live test command to be more portable and avoid leaking sensitive information (494cf93)
- security: add .gitignore protection for test results (1cbf002)
- updating the gitignore file not to include local live-environment test results resulting from the claude command unifi-mcp-live-test.md, as it could expose sensitive information regarding local network data and configuration (5537764)
- fix: use existing .env file for live testing without exit (e44d12b)
- feat: add comprehensive MCP live environment testing command (7dd2da2)
- updating claude files submodule (8f9bbc5)
- test: add comprehensive traffic flows tests (+27.95% coverage) (992ade5)
- chore: update docs/claude submodule to latest version (78c679c)
- refactor: remove non-functional ZBF tools and update documentation (c9dd56e)
- adding claude repo maintainer and issue triage agents (988e02a)
- adding claude agent workflow (5fca74b)
- feat: add 8 Claude skills for development and testing workflows (4c8ac86)
- chore: update cursor rules, session summary, and ongoing ZBF work (29d880b)
- docs: add comprehensive test coverage roadmap for v0.2.0 release (438dddf)
- fix: resolve 3 failing config tests caused by .env file loading (8a6f94e)
- test: update ZBF tests for deprecated tools and fix documentation (bd1776d)
- adding gemini workflow files (24db37c)
- adding GEMINI.md defnition file for use with Gemini coding assistant. (7a83eff)
- adding WARP.md for use with warp.dev (06d4059)
- docs: deprecate non-functional ZBF tools and update all documentation (46fa6e4)
- Update README.md (8a938c1)
- fix: Phase 3 - Critical bug fixes for ZBF local gateway support (aa05124)
- docs: Phase 2 - ZBF API endpoint verification (CRITICAL FINDINGS) (35af8ba)
- docs: complete ZBF Phase 1 documentation (Phase D) (d15e8a7)
- test: add comprehensive unit tests for 5 new ZBF tools (02107fd)
- fix: resolve all MyPy type checking errors across codebase (8a8a933)
- style: apply Black formatting to ZBF tools (8c20073)
- feat: complete ZBF Phase 1 - implement missing CRUD tools (95536d2)
- style: remove trailing whitespace from copilot-instructions.md (a0f66a7)
- fix: correct premature v0.2.0 release to v0.1.4 (2e833ff)
- removing CICD.md (23f477b)
- adding some AI context files (a54788b)
- updating gitignore to not include test coverage output (7cc9ae6)
- committing un-tracked files (758c58a)
- feat: expand Docker multi-arch support and add GitHub Discussions announcements (b31cf02)
Full Changelog: v0.1.4...v0.2.0
Docker Image
Multi-architecture support: amd64, arm64, arm/v7, arm64/v8
docker pull ghcr.io/enuno/unifi-mcp-server:v0.2.0Installation
Via pip
pip install unifi-mcp-server==v0.2.0Via uv
uv pip install unifi-mcp-server=...Release v0.1.4
🔄 Version Correction Notice
This release contains the same code as v0.2.0, which was published prematurely on 2025-11-17. v0.1.4 is the correct version number for this release. Please use v0.1.4 instead of v0.2.0.
The true v0.2.0 release is planned for Q1 2025 and will include:
- Complete Zone-Based Firewall (ZBF) implementation
- Full Traffic Flow monitoring
- Advanced QoS and traffic management
- Backup and restore operations
- 80%+ test coverage
See DEVELOPMENT_PLAN.md for the complete roadmap.
What's Changed
Fixed
- GitHub Issue #3: Cloud API schema mismatch in Site model
- Fixed Pydantic validation errors when using Cloud API
- Site model now accepts
siteId(Cloud) and_id(Local) field names - Site model now accepts
siteNameandnamefield variations - Added model_validator to generate fallback names from site IDs
- All 16 failing WiFi tests resolved (23/23 now passing)
- Fixed mock return value structures to match UniFi API response format
- Added missing
securityparameter to WLAN creation tests - Changed exception types from ConfirmationRequiredError to ValidationError
- Fixed missing API call mocks for update/delete operations
- Fixed field name assertions (passphrase → x_passphrase)
- Rewrote statistics tests to handle dual API calls correctly
- Python 3.10 compatibility issues resolved
- Import sorting issues fixed per isort/pre-commit requirements
- Ruff linting errors in WiFi test suite resolved
- Missing ValidationError import added to Site model tests
- Traffic flows formatting with Black
Added
- Comprehensive WiFi tools test suite with 23 tests and 70.34% coverage
- Cloud API compatibility for Site model using Pydantic v2 validation_alias
- Support for both Cloud API (
siteId,isOwner) and Local API (_id,name) schemas - 17 comprehensive unit tests for Site model covering Cloud/Local API compatibility
- Automatic name fallback generation for Cloud API sites without explicit names
Changed
- Site model made backward compatible with existing Local API code
- Enhanced Site model with Cloud API-specific fields (
is_owner) - Improved test coverage from 36.83% to 41.27% overall
- Site model test coverage: 100%
Technical Details
- All 228 tests passing
- Test coverage: 41.27%
- CI/CD pipelines: All checks passing
- Compatible with Python 3.10, 3.11, 3.12
Full Changelog: v0.1.3...v0.1.4
Docker Image
docker pull ghcr.io/enuno/unifi-mcp-server:v0.1.4Installation
Via pip
pip install unifi-mcp-server==0.1.4Via uv
uv pip install unifi-mcp-server==0.1.4Release v0.1.2
What's Changed
- fix(docker): add mcp.run() call and update Docker instructions (41f3cfe)
Full Changelog: v0.1.1...v0.1.2
Docker Image
docker pull ghcr.io/enuno/unifi-mcp-server:v0.1.2Installation
Via pip
pip install unifi-mcp-server==v0.1.2Via uv
uv pip install unifi-mcp-server==v0.1.2Release v0.1.1
What's Changed
- fix(security): update secrets baseline to include false positives (fec7965)
- fix(ci): resolve pre-commit hook failures and FastMCP initialization (f7e2663)
- Updating README.md (c258f70)
- Updating README.md (8bc6df4)
- fix(security): install OSV scanner binary directly instead of using action (e4cab65)
Full Changelog: v0.1.0...v0.1.1
Docker Image
docker pull ghcr.io/enuno/unifi-mcp-server:v0.1.1Installation
Via pip
pip install unifi-mcp-server==v0.1.1Via uv
uv pip install unifi-mcp-server==v0.1.1