Example plugin for az-scout
Project description
az-scout-plugin-avs-sku
az-scout plugin for Azure VMware Solution (AVS) SKU exploration.
It adds:
- an AVS SKU UI tab in az-scout,
- a REST API route that returns technical SKU data and optional regional pricing,
- an MCP tool for AI/chat workflows,
- an AVS-focused chat mode.
Plugin role
This plugin helps compare AVS SKUs by combining:
- technical specs (CPU, RAM, cores, architecture, vSAN) from upstream SKU metadata,
- regional retail pricing (PAYG and reservation monthly equivalents),
- generation labels (Generation 1 / Generation 2 when applicable by region).
Features
- AVS SKU tab (
AVS SKU) with BYOL toggle and pricing display mode selector. - Pricing scope selector: public prices list, or selected subscription scope.
- AVS generation awareness.
- Chat integration:
- MCP tool:
avs_sku_tool - custom chat mode:
avs-sku-advisor - default-mode addendum for AV* SKU interpretation.
- MCP tool:
REST API
Base path (mounted by az-scout):
/plugins/avs-sku
Endpoint
GET /plugins/avs-sku/skus
Query parameters
region(optional, string): Azure region key (for exampleeastus).byol(optional, bool, defaulttrue): include BYOL pricing rows.sku(optional, string): filter SKUs by name fragment.pricing_source(optional, string, defaultpublic):publicorsubscription.subscription_id(optional, string): selected subscription whenpricing_source=subscription.
Behavior notes
- If
regionis omitted, response still includes technical SKU data, but no regional pricing lookup. - Current pricing retrieval uses Azure Retail Prices API.
pricing_sourceandsubscription_idare preserved in response metadata for scope continuity.
Response shape (summary)
{
"region": "eastus",
"byol": true,
"sku_filter": "AV64",
"pricing_source": "public",
"subscription_id": "",
"source": {
"technical": "https://.../sku.json",
"pricing": "https://prices.azure.com/api/retail/prices"
},
"items": [
{
"name": "AV64",
"technical": { "...": "..." },
"generation_labels": ["Generation 1", "Generation 2"],
"price": {
"found": true,
"byol": true,
"currency_code": "USD",
"payg_hour": 12.34,
"payg_month": 9008.2,
"reservation_1y_month": 7000.0,
"reservation_3y_month": 5400.0,
"reservation_5y_month": 4900.0
}
}
]
}
MCP tool
Tool name: avs_sku_tool
Parameters
region: str | None = Nonebyol: bool = Truesku: str | None = Nonepricing_source: str = "public"subscription_id: str | None = None
Return value
- Returns a JSON string (serialized payload) with the same structure as the REST endpoint.
Setup
uv sync --group dev
uv pip install -e .
az-scout
Project structure
src/az_scout_avs_sku/
├── __init__.py
├── avs_data.py
├── routes.py
├── tools.py
└── static/
├── css/avs-sku.css
├── html/avs-sku-tab.html
└── js/avs-sku-tab.js
tests/
├── test_routes.py
└── test_tools.py
Quality checks
uv run ruff check src/ tests/
uv run ruff format --check src/ tests/
uv run mypy src/
uv run pytest
License
Disclaimer
This tool is not affiliated with Microsoft. SKU, pricing, and availability information is indicative and can change. Always validate final sizing, generation availability, and cost in official Microsoft sources and in your target tenant/subscription before deployment.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file az_scout_plugin_avs_sku-2026.3.0.tar.gz.
File metadata
- Download URL: az_scout_plugin_avs_sku-2026.3.0.tar.gz
- Upload date:
- Size: 121.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc2f10a0d8cbca69ff720f25896df0d60994d4e9c4ce4ef7a9e94e738dcda114
|
|
| MD5 |
30331f8307cc082b9092848f214ebaa6
|
|
| BLAKE2b-256 |
f4b198ab7008154d8817f392500972814bed8dd1780c056a3b976964beef412d
|
Provenance
The following attestation bundles were made for az_scout_plugin_avs_sku-2026.3.0.tar.gz:
Publisher:
publish.yml on lrivallain/az-scout-plugin-avs-sku
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
az_scout_plugin_avs_sku-2026.3.0.tar.gz -
Subject digest:
bc2f10a0d8cbca69ff720f25896df0d60994d4e9c4ce4ef7a9e94e738dcda114 - Sigstore transparency entry: 1050078036
- Sigstore integration time:
-
Permalink:
lrivallain/az-scout-plugin-avs-sku@3aa133e85a448303c6e77c4dd6827015c88f984e -
Branch / Tag:
refs/tags/v2026.3.0 - Owner: https://github.com/lrivallain
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3aa133e85a448303c6e77c4dd6827015c88f984e -
Trigger Event:
push
-
Statement type:
File details
Details for the file az_scout_plugin_avs_sku-2026.3.0-py3-none-any.whl.
File metadata
- Download URL: az_scout_plugin_avs_sku-2026.3.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d50fbe62ee90eeefc62c19cc91ee1e8396484d0c567cd757f02b924f41b983eb
|
|
| MD5 |
becc65c20d6c301143a9f51e1a1844f4
|
|
| BLAKE2b-256 |
f9c0433d95cc254cc6bc4d839432b00ac23331213d384770507dfc04e5b31c0e
|
Provenance
The following attestation bundles were made for az_scout_plugin_avs_sku-2026.3.0-py3-none-any.whl:
Publisher:
publish.yml on lrivallain/az-scout-plugin-avs-sku
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
az_scout_plugin_avs_sku-2026.3.0-py3-none-any.whl -
Subject digest:
d50fbe62ee90eeefc62c19cc91ee1e8396484d0c567cd757f02b924f41b983eb - Sigstore transparency entry: 1050078069
- Sigstore integration time:
-
Permalink:
lrivallain/az-scout-plugin-avs-sku@3aa133e85a448303c6e77c4dd6827015c88f984e -
Branch / Tag:
refs/tags/v2026.3.0 - Owner: https://github.com/lrivallain
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3aa133e85a448303c6e77c4dd6827015c88f984e -
Trigger Event:
push
-
Statement type: