Source: microsoft/azure-skills · Maintainer: Microsoft · License: MIT · Checked: 27 October 2026
What is the Azure upgrade skill?
The Azure upgrade skill gives a coding agent a phased, approval-gated workflow for moving an existing Azure workload to a newer plan, tier, SKU or SDK. Today it covers Azure Functions on the Consumption plan moving to Flex Consumption, legacy Azure SDK for Java code moving to the modern com.azure libraries, and Azure Cache for Redis moving to Azure Managed Redis.
Its description opens: "Assess and upgrade Azure workloads between plans, tiers, or SKUs, or modernize Azure SDK dependencies in source code." The SKILL.md draws a clear line: "This is NOT for cross-cloud migration". For moves from AWS, Google Cloud or Heroku, see the Azure cloud migrate skill.
The skill ships in microsoft/azure-skills, the Azure Skills Plugin. The README lists it under "Build, deploy, and evolve". The SKILL.md frontmatter lists version 1.2.3, author Microsoft and compatibility: python3.10+.
As of 27 October 2026, its skills.sh page listed about 464,800 installs (snapshot, 27 October 2026).
What does it do?
The SKILL.md is a router of about 9 KB. It sets the rules, picks a scenario, and loads that scenario's reference files. The folder is large: 50 files, almost all of them under references/.
Scenarios it ships:
| Source | Target | How |
|---|---|---|
| Functions Consumption (Linux) | Flex Consumption | az functionapp flex-migration commands |
| Functions Consumption (Windows) | Flex Consumption | Manual discovery, dependency scan and automation steps |
Legacy Java SDK (com.microsoft.azure.*) |
Modern Java SDK (com.azure.*) |
Source-code modernization run |
| Azure Cache for Redis (Basic, Standard, Premium) | Azure Managed Redis | Routes to a dedicated skill |
| Azure Cache for Redis Enterprise | Azure Managed Redis | Routes to a dedicated skill |
Plan and SKU upgrades follow seven steps: identify source and target, assess readiness, collect settings and identities, upgrade, validate, ask about performance checks and infrastructure code, then hand off to azure-validate or azure-deploy. Progress goes into upgrade-status.md under .azure-upgrade/<scenario-id>/ in your workspace.
Linux Functions. The workflow uses Microsoft's CLI: az functionapp flex-migration list to find eligible apps and az functionapp flex-migration start to create the new app. Per Microsoft's migration guide, start "collects your app's configuration and creates a new Flex Consumption app with the same settings". The guide lists Azure CLI 2.77.0 or later, and says the flex-migration commands don't support Windows apps.
Windows Functions. The largest part of the folder by size. It covers a dependency scan, configuration inventory, app creation, app settings, access keys, networking, trigger safety and cutover. Rule 8 treats the source app as read-only: before any command that changes it, the agent must describe the exact change and ask, and "Approval is action-specific and cannot be reused".
Java SDK modernization. A separate flow with four phases (precheck, plan, execute, validate). It creates a java-upgrade/{RUN_ID} branch if git is available, writes plan.md, progress.md and summary.md from templates, and has a upgrade_bom.py script for Maven and Gradle BOM changes. Its constraints include "100% test pass". It is for Java only; the reference says not to use it for .NET, Python, JavaScript or Go.
Redis. The skill doesn't migrate Redis itself. It tells the agent to work out whether the cache is the open-source-based tier or Enterprise, then points to the matching skill from the Azure Managed Redis team: amr-migration-skill or acre-to-amr-migration-skill.
How do you install the Azure upgrade skill?
The repo README documents several routes. The plugin is the better fit, because the skill calls Azure MCP tools such as mcp_azure_mcp_get_azure_bestpractices and mcp_azure_mcp_documentation.
Claude Code: the Azure Skills Plugin. Run inside Claude Code:
/plugin install azure@claude-plugins-official
Or run /plugin and search for "azure". Update later with /plugin update azure@claude-plugins-official. See Claude Code plugins and Claude Code MCP.
GitHub Copilot CLI:
/plugin marketplace add microsoft/azure-skills
/plugin install azure@azure-skills
Codex, Cursor and Gemini CLI. For Codex, the README says to run codex plugin marketplace add microsoft/azure-skills, then install azure from /plugins. For Cursor, use the Cursor Marketplace or Settings, then Plugins. For Gemini CLI, run gemini extensions install https://github.com/microsoft/azure-skills. See Codex skills and Cursor skills.
Skill only. The command on skills.sh copies just this folder:
npx skills add https://github.com/microsoft/azure-skills --skill azure-upgrade
Prerequisites: the README asks for an Azure subscription, Node.js 18 or later and the Azure CLI signed in with az login. The Linux Functions workflow adds the resource-graph CLI extension, jq, and Owner or Contributor on the resource group. The Java flow needs Maven or Gradle and a JDK.
How do you use it?
Name the app or project and the target. The skill is model-invoked; most of the prompts below come from its trigger table.
Example prompts (suggestions; the first three are from the skill's trigger table):
What Consumption Function Apps do I have that can be upgraded to Flex Consumption?Is my function app ready for Flex Consumption?Migrate my Java project from com.microsoft.azure to com.azureUpgrade func-orders in rg-prod from Consumption to Flex Consumption. Keep the old app running until I say so.Which Azure Managed Redis migration skill do I need for my Enterprise_E10 cache?
Expect an assessment first, a proposed name for the new resource (by default <source>-flex for Functions), and an approval prompt before anything is created or changed.
Tips and limits
From the repo, Microsoft Learn and skills.sh, not from testing:
- Linux Consumption has a date. Microsoft Learn says support for Linux Consumption function apps "retires on September 30, 2028".
- In-process .NET can't move yet. The Linux workflow marks the in-process
dotnetstack as unsupported on Flex Consumption: migrate to the isolated worker model first. It also lists no deployment slots and no Azure Government support on Flex Consumption. - One trigger has no scenario. The description mentions "migrate App Service to Container Apps", but the scenario table has no reference for it. For unmatched requests the skill tells the agent to research the path with the Azure MCP documentation tools.
- Redis needs a second skill. The Redis reference says the skill "does not ship the SKU specs, pricing scripts, ARM automation, or template-transformation logic" for either path.
- It writes files and branches. Expect
.azure-upgrade/in your workspace for Functions runs and ajava-upgrade/branch plus.github/java-upgrade/output for Java runs. - Audits. On skills.sh, all three audits rated the skill Pass: Socket and Snyk on 20 October 2026 and Gen Agent Trust Hub on 22 October 2026.
- Telemetry. The README says to set
AZURE_MCP_COLLECT_TELEMETRY=falseto turn off Azure MCP telemetry.
The MIT License lets you copy and change the skill as long as you keep Microsoft's copyright and license notices.
Save it in your Kipt library
An edited copy is useful if you want your own naming default instead of <source>-flex, a fixed artifact folder, or extra approval rules for production. In Kipt, open Skills and paste the skill's GitHub folder link into the import box, or drop the folder or a .zip. The copy carries the skill files only, not the plugin's MCP setup. Skills in your private GitHub repo install into Claude Code or Codex with one command:
npx skills add https://github.com/<you>/<repo>.git --all -g
Kipt is not affiliated with Microsoft.
Similar skills
- Azure validate skill: the hand-off for deeper checks after an upgrade.
- Azure deploy skill: the hand-off for CI/CD on the new app.
- Azure prepare skill: for new Azure apps rather than upgrades of existing ones.
- Azure diagnostics skill: troubleshooting if the upgraded app misbehaves.
- Azure compliance skill: checks resources against Azure best practices after the move.