Skip to main content

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 modemana-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 catalogue
  • assess_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/read
  • Microsoft.Compute/virtualMachineScaleSets/read
  • Microsoft.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

MIT

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

az_scout_plugin_mana_supportability-2026.7.0.tar.gz (165.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file az_scout_plugin_mana_supportability-2026.7.0.tar.gz.

File metadata

File hashes

Hashes for az_scout_plugin_mana_supportability-2026.7.0.tar.gz
Algorithm Hash digest
SHA256 365b9be83e23642b6bb2de7e6eb8afe34b61dabc1116b995813c66e1a12bb3d8
MD5 87056c36320c79f3e0e500e7f274ba79
BLAKE2b-256 da723d0efcad665c797451bd091511ded57aba2611fe94309079e26039b01ac2

See more details on using hashes here.

Provenance

The following attestation bundles were made for az_scout_plugin_mana_supportability-2026.7.0.tar.gz:

Publisher: publish.yml on az-scout/az-scout-plugin-mana-supportability

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file az_scout_plugin_mana_supportability-2026.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for az_scout_plugin_mana_supportability-2026.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba529eafbeb2aee916ff33024fafa4f5fe7f199d46747c906aeb03939fb6cf4e
MD5 6ac3d6b0fbeb7a10cbcff296eff9b2c4
BLAKE2b-256 c772b6f91c6247fea7a48e2f6e296a5afeb2540c90e6ab2b2132812679cac59e

See more details on using hashes here.

Provenance

The following attestation bundles were made for az_scout_plugin_mana_supportability-2026.7.0-py3-none-any.whl:

Publisher: publish.yml on az-scout/az-scout-plugin-mana-supportability

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page