Skip to the content.

hpe-networking-mcp 0.5.0 - verified ArubaOS 8 migration expansion

Version 0.5.0 focuses entirely on ArubaOS 8 (AOS8) migration correctness: a hardened source foundation, a bounded and honest Classic Central write lifecycle, an expanded (but still fail-closed) New Central write surface, a new per-candidate verification taxonomy, and a read-only live/dry-run evaluation of the whole hpe_networking_mcp.pipeline. Investigation effort was applied equally to Classic Central and New Central; the result is not claimed parity between them, and this release does not claim to have executed any live write against either target. Tool counts and router modes are unchanged from 0.4.0 — no tool was added, removed, or renamed. Tool behavior did change on the config-tool surface that AOS8 migration writes reuse: see Config-tool changes in this release below for the full list and required upgrade steps.

hpe-networking-mcp platform coverage

Catalog snapshot (unchanged from 0.4.0)

Catalog Tools Intended use
Generated manifest operations 5,703 Reproducible platform API coverage across nine manifests
Active generated tools 5,686 Manifest operations that register as callable tools (17 intentionally excluded)
Curated tools 476 Hand-tuned, confirmed-working workflows
Complete backend index 6,162 Discovery/dispatch across every enabled backend (curated + active generated)
Direct-all router 6,165 Full schema introspection plus three router tools
Minimal router 3 Recommended low-token client surface (unchanged)

Capability totals across the complete backend index remain 2,813 read, 164 diagnostic, 2,382 write, 803 destructive. See the capability gap matrix for the full, reproducible, per-platform breakdown. scripts/report_capability_gaps.py --check confirms the committed matrix is current against these counts.

Config-tool changes in this release

No tool was added, removed, or renamed on the central-config server — the following are behavior/signature changes on existing tools, made while building the AOS8 migration write path (src/hpe_networking_mcp/mcp_servers/config.py):

Source foundation hardening

Before any target write behavior changed, the AOS8 source model and safety plumbing were audited and fixed:

These fixes are covered by the parser/migration regression suites in tests/unit/test_aos8_parsers.py and tests/unit/test_aos8_migration.py.

Classic Central: bounded, honest write lifecycle

Classic Central gets a complete, narrow, and explicitly bounded write lifecycle built on the only verified Classic object REST in this repository — full_wlan:

New Central: expanded but still fail-closed

Verification taxonomy

aos8_verify_migration_run reports one of six per-candidate statuses: verified, partially_verified, failed, unverifiable, unsupported, or not_applied. Verification is:

Operator maps, external references, and secrets stay non-persistent

Live/read-only dry-run evaluation

A read-only, no-write evaluation of the updated pipeline was completed against this environment and is recorded in full in docs/aos8-live-dryrun-evaluation.md, gated by the AOS8 migration contract matrix:

Validation

Run as the final release gate for this version:

All of the above are run together by scripts/validate_release.py.

Upgrade notes

  1. No dependency changes in this release; uv sync is a no-op if your environment already matches 0.4.0.
  2. No tool catalog changes. Rebuilding the router catalog (uv run python scripts/ingest_tools.py --products all) is optional but harmless; the tool count stays at 6,162.
  3. If you use AOS8 migration tools, review the updated AOS8 migration contract matrix and live/dry-run evaluation before relying on any conditional mapping (WPA2 Personal, WPA3-SAE, Enhanced Open on New Central; WPA3-Personal and WPA3-Enterprise on Classic Central) — all five still require dry_run=True review and, where noted, remain dry-run-only.
  4. If you plan a live AOS8 evaluation of your own environment, set AOS8_BASE_URL plus AOS8_USERNAME/AOS8_PASSWORD (or the legacy AOS8_API_TOKEN), and optionally AOS8_CLIENT_IP / AOS8_SESSION_TTL_SECONDS. See optional-products.md for the full prerequisite list, including what a Classic Central evaluation additionally requires (an explicit group/GUID/serial — never inferred from a New Central scope).
  5. No rollback capability was added in this release, and no live AOS8 or Classic Central write, nor exact secured-WLAN apply parity with New Central, is claimed. Treat every conditional mapping as preview-only until you have independently confirmed a live apply plus read-back in your own environment.
  6. If any caller (your own code, an automation, or an AOS8 migration run) depended on create_role, update_role, delete_role, create_config_assignment, delete_config_assignment, or delete_overlay_ssid returning a 2xx-shaped dict even when the underlying write was rejected, that caller must be updated before upgrading: these six tools now raise hpe_networking_mcp.mcp_servers.shared.WriteResultError on a non-2xx response or an error-shaped envelope instead of returning a success-shaped result with the failure buried in an errors list. Wrap calls to these tools in a try/except WriteResultError (or the generic exception handling your caller already uses) instead of checking the returned dict for an errors key. Add or re-run targeted coverage — tests/unit/test_config_write_result_validation.py — against your own integration if you maintain a fork or wrapper around these tools. No change is needed for callers that already treat “no exception raised” as the only success signal and never inspected the previous ad hoc errors list themselves; only callers that inspected the old buried errors field to detect failure need to change error-detection logic to a try/except instead.
  7. build_underlay_ssid/build_overlay_ssid positional-signature compatibility: wpa3_transition is keyword-only and was added after every 0.4.0 parameter, including dry_run — every 0.4.0 positional call site (including one that passed True positionally for dry_run) binds identically to 0.4.0 (commit 1f79256) and never executes a write. No caller action is required; see tests/unit/test_ssid_dryrun_positional_compat.py for the reproducible positional-signature and write-guard coverage.
  8. To reproduce this release’s AOS8 read-only evaluation yourself, run scripts/evaluate_aos8_050_readonly.py (offline/fixture-backed by default; pass --live-new-central-readonly for a GET-only live New Central check). See live/dry-run evaluation for exact commands — the prose evaluation findings recorded in that file were produced manually before this script existed; the script reproduces an equivalent read-only evaluation, not a replay of that exact session.

See the 0.4.0 release notes for the prior resumable-migration-execution, typed GLP, and Mist/EdgeConnect/Axis history, and the 0.3.0 release notes for earlier platform, migration, and safety context.