az-scout-plugin-mana-supportability
An az-scout plugin that performs best-effort detection of Azure virtual machines at risk of MANA unsupportability.
MANA (Microsoft Azure Network Adapter) is the new Azure network interface. Azure is progressively rolling MANA-capable hardware into existing VM series. When a VM using Accelerated Networking lands on MANA hardware, the guest OS must ship a MANA driver — otherwise networking degrades or fails. Network virtual appliances (NVAs) are uniquely impacted.
This plugin enumerates VMs and scale sets in the selected subscriptions, then scores each one against the documented MANA criteria using ARM metadata only — no in-guest inspection, no agent, read-only.
Detection criteria
| # | Criterion | Effect |
|---|---|---|
| 1 | VM size belongs to a MANA-eligible existing series | Gate — a non-listed size is not impacted |
| 2 | Accelerated Networking enabled on at least one NIC | Gate — "if AccelNet is not enabled, no action is required" |
| 3 | AKS-managed resource | Gate — AKS is not impacted |
| 4 | Guest OS ships a MANA driver (marketplace image → supported / unsupported / unknown) | high / medium risk |
| 5 | NVA workload (known marketplace publisher, product hint, or IP forwarding) | critical risk |
| 6 | LegacyVMNVA opt-out tag present and enabled |
Mitigation, expires 2027-05-31 |
| 7 | Series announced for retirement | Recommend a resize instead of an opt-out |
| 8 | Hardware class → earliest possible MANA placement date | Cobalt 100 / Intel v5 → 2026-05-26, Intel v1–v4 → 2026-08-01 |
Findings are aggregated into a single risk level per resource: none, low, medium, high
or critical.
The result is a best-effort signal, not a guarantee. The guest OS of custom, Compute Gallery, shared and community-gallery images cannot be determined from ARM metadata, so they are reported as
unknown(and labelled with the image kind so you know where to look). Always confirm the in-guest driver and kernel version before acting.
Features
- UI tab — "MANA readiness" with a multi-subscription checklist sidebar, summary cards, a risk filter, a searchable results table with expandable per-resource findings, and CSV export
- API routes under
/plugins/mana-supportability/ - MCP tools exposed on the az-scout MCP server and in the AI chat
- Chat mode —
mana-supportability-advisor
API
| Route | Purpose |
|---|---|
GET /plugins/mana-supportability/assess |
Assess subscriptions. Params: subscriptions (id or id|name, comma separated), regions, tenantId, include_vmss |
GET /plugins/mana-supportability/reference |
Eligible-series catalogue, milestone dates, known NVA publishers, doc links |
GET /plugins/mana-supportability/check-size |
Check a single VM size. Param: vm_size |
MCP tools
check_mana_vm_size— is a given VM size on MANA-eligible hardware?list_mana_eligible_vm_series— the documented eligible-series catalogueassess_mana_supportability— full assessment for one or more subscriptions
Install
uv pip install az-scout-plugin-mana-supportability
az-scout # the plugin is auto-discovered via the az_scout.plugins entry point
Development install:
uv sync --group dev
uv pip install -e .
az-scout
Structure
src/az_scout_mana_supportability/
├── __init__.py # Plugin class + module-level `plugin` instance
├── mana_series.py # MANA-eligible VM series catalogue + size matching
├── os_support.py # Marketplace image → guest OS MANA support
├── nva.py # Network virtual appliance detection
├── assessment.py # Findings + risk engine
├── collector.py # ARM collection (VMs, NICs, scale sets)
├── routes.py # FastAPI APIRouter
├── tools.py # MCP tools
└── static/
├── css/mana-supportability.css
├── html/mana-supportability-tab.html
└── js/mana-supportability-tab.js
Required permissions
Read-only. The signed-in identity needs Reader on the assessed subscriptions:
Microsoft.Compute/virtualMachines/readMicrosoft.Compute/virtualMachineScaleSets/readMicrosoft.Network/networkInterfaces/read
Quality checks
uv run ruff check src/ tests/
uv run ruff format --check src/ tests/
uv run mypy src/
uv run pytest
CI runs the same checks on Python 3.11–3.13. Releases are published to PyPI via trusted
publishing (OIDC) on version tags (v*).
References
License
Disclaimer
This tool is not affiliated with Microsoft. MANA supportability detection is best-effort and based on ARM metadata only. It cannot inspect the guest OS, installed drivers, or kernel versions. Custom, Compute Gallery, shared, community-gallery images and unrecognised publishers are reported as
unknown. Microsoft's rollout dates and eligible series lists may change — always confirm against the official documentation before making changes to production workloads.
Metadata
Release files for az-scout-plugin-mana-supportability 2026.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| az_scout_plugin_mana_supportability-2026.7.0.tar.gz | 165.3 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| az_scout_plugin_mana_supportability-2026.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 201.5 kB
Release files / az_scout_plugin_mana_supportability-2026.7.0.tar.gz
| Download URL | az_scout_plugin_mana_supportability-2026.7.0.tar.gz |
|---|---|
| Size | 165.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
365b9be83e23642b6bb2de7e6eb8afe34b61dabc1116b995813c66e1a12bb3d8
|
|
BLAKE2b-256 checksum How to use checksums |
da723d0efcad665c797451bd091511ded57aba2611fe94309079e26039b01ac2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logRelease files / az_scout_plugin_mana_supportability-2026.7.0-py3-none-any.whl
| Download URL | az_scout_plugin_mana_supportability-2026.7.0-py3-none-any.whl |
|---|---|
| Size | 36.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba529eafbeb2aee916ff33024fafa4f5fe7f199d46747c906aeb03939fb6cf4e
|
|
BLAKE2b-256 checksum How to use checksums |
c772b6f91c6247fea7a48e2f6e296a5afeb2540c90e6ab2b2132812679cac59e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logSecurity for az-scout-plugin-mana-supportability 2026.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for az_scout_plugin_mana_supportability-2026.7.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.