azure-mcp
Azure MCP - Comprehensive Azure Management Skill
Manage Azure resources using Azure CLI across all major services.
Triggers
Use this skill when you see:
- azure, az cli, azure resource
- azure storage, blob, cosmos, keyvault
- azure aks, kubernetes, container
- azure monitor, log analytics
- azure sql, postgres, mysql
- event grid, service bus, functions
- app service, resource group, subscription
Instructions
Authentication
# Login interactively
az login
# Login with service principal
az login --service-principal \
--username <APP_ID> \
--password <PASSWORD> \
--tenant <TENANT_ID>
# Login with managed identity
az login --identity
# Set subscription
az account set --subscription "My Subscription"
# List subscriptions
az account list --output table
Resource Groups
# Create resource group
az group create --name mygroup --location eastus
# List resource groups
az group list --output table
# Delete resource group
az group delete --name mygroup --yes --no-wait
# List resources in group
az resource list --resource-group mygroup --output table
Storage Accounts
# Create storage account
az storage account create \
--name mystorageaccount \
--resource-group mygroup \
--location eastus \
--sku Standard_LRS \
--kind StorageV2
# List storage accounts
az storage account list --resource-group mygroup --output table
# Get connection string
az storage account show-connection-string \
--name mystorageaccount \
--resource-group mygroup
# Create container
az storage container create \
--name mycontainer \
--account-name mystorageaccount
# Upload blob
az storage blob upload \
--account-name mystorageaccount \
--container-name mycontainer \
--name myblob \
--file ./localfile.txt
# List blobs
az storage blob list \
--account-name mystorageaccount \
--container-name mycontainer \
--output table
Key Vault
# Create Key Vault
az keyvault create \
--name mykeyvault \
--resource-group mygroup \
--location eastus \
--enable-rbac-authorization
# Set secret
az keyvault secret set \
--vault-name mykeyvault \
--name mysecret \
--value "secret-value"
# Get secret
az keyvault secret show \
--vault-name mykeyvault \
--name mysecret
# List secrets
az keyvault secret list --vault-name mykeyvault --output table
# Create key
az keyvault key create \
--vault-name mykeyvault \
--name mykey \
--kty RSA \
--size 2048
App Service
# Create App Service plan
az appservice plan create \
--name myplan \
--resource-group mygroup \
--sku B1 \
--is-linux
# Create Web App
az webapp create \
--name mywebapp \
--resource-group mygroup \
--plan myplan \
--runtime "PYTHON:3.11"
# Configure settings
az webapp config appsettings set \
--name mywebapp \
--resource-group mygroup \
--settings KEY=value
# Deploy from Git
az webapp deployment source config \
--name mywebapp \
--resource-group mygroup \
--repo-url https://github.com/org/repo \
--branch main
# View logs
az webapp log tail \
--name mywebapp \
--resource-group mygroup
Azure SQL
# Create SQL server
az sql server create \
--name mysqlserver \
--resource-group mygroup \
--location eastus \
--admin-user sqladmin \
--admin-password "Password123!"
# Create database
az sql db create \
--name mydb \
--resource-group mygroup \
--server mysqlserver \
--service-objective S0
# Configure firewall
az sql server firewall-rule create \
--name AllowAzure \
--resource-group mygroup \
--server mysqlserver \
--start-ip-address 0.0.0.0 \
--end-ip-address 0.0.0.0
# Get connection string
az sql db show-connection-string \
--server mysqlserver \
--name mydb \
--client ado.net
Azure PostgreSQL
# Create PostgreSQL Flexible Server
az postgres flexible-server create \
--name mypostgres \
--resource-group mygroup \
--location eastus \
--admin-user pgadmin \
--admin-password "Password123!" \
--sku-name Standard_D2s_v3 \
--tier GeneralPurpose \
--storage-size 32
# Create database
az postgres flexible-server db create \
--resource-group mygroup \
--server-name mypostgres \
--database-name mydb
# Configure firewall
az postgres flexible-server firewall-rule create \
--resource-group mygroup \
--name mypostgres \
--rule-name AllowAll \
--start-ip-address 0.0.0.0 \
--end-ip-address 255.255.255.255
Virtual Networks
# Create VNet
az network vnet create \
--name myvnet \
--resource-group mygroup \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name default \
--subnet-prefix 10.0.1.0/24
# Create subnet
az network vnet subnet create \
--name mysubnet \
--resource-group mygroup \
--vnet-name myvnet \
--address-prefix 10.0.2.0/24
# Create NSG
az network nsg create \
--name mynsg \
--resource-group mygroup \
--location eastus
# Add NSG rule
az network nsg rule create \
--name AllowHTTP \
--nsg-name mynsg \
--resource-group mygroup \
--priority 100 \
--destination-port-ranges 80 443 \
--access Allow \
--protocol Tcp
Monitoring
# Create Log Analytics workspace
az monitor log-analytics workspace create \
--workspace-name myworkspace \
--resource-group mygroup \
--location eastus
# Create alert rule
az monitor metrics alert create \
--name "High CPU Alert" \
--resource-group mygroup \
--scopes /subscriptions/.../resourceGroups/mygroup/providers/Microsoft.Compute/virtualMachines/myvm \
--condition "avg Percentage CPU > 80" \
--window-size 5m \
--evaluation-frequency 1m
# Query logs
az monitor log-analytics query \
--workspace /subscriptions/.../workspaces/myworkspace \
--analytics-query "AzureActivity | take 10"
# Create Application Insights
az monitor app-insights component create \
--app myappinsights \
--resource-group mygroup \
--location eastus \
--workspace /subscriptions/.../workspaces/myworkspace
Service Bus
# Create namespace
az servicebus namespace create \
--name myservicebus \
--resource-group mygroup \
--location eastus \
--sku Standard
# Create queue
az servicebus queue create \
--name myqueue \
--namespace-name myservicebus \
--resource-group mygroup
# Create topic and subscription
az servicebus topic create \
--name mytopic \
--namespace-name myservicebus \
--resource-group mygroup
az servicebus topic subscription create \
--name mysubscription \
--topic-name mytopic \
--namespace-name myservicebus \
--resource-group mygroup
# Get connection string
az servicebus namespace authorization-rule keys list \
--namespace-name myservicebus \
--resource-group mygroup \
--name RootManageSharedAccessKey
Identity and RBAC
# Create managed identity
az identity create \
--name myidentity \
--resource-group mygroup
# Assign role
az role assignment create \
--assignee <PRINCIPAL_ID> \
--role "Storage Blob Data Contributor" \
--scope /subscriptions/.../resourceGroups/mygroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount
# List role assignments
az role assignment list \
--scope /subscriptions/.../resourceGroups/mygroup \
--output table
# Create service principal
az ad sp create-for-rbac \
--name myserviceprincipal \
--role Contributor \
--scopes /subscriptions/.../resourceGroups/mygroup
Container Registry
# Create ACR
az acr create \
--name myacr \
--resource-group mygroup \
--sku Standard \
--admin-enabled true
# Login to ACR
az acr login --name myacr
# Build image
az acr build \
--registry myacr \
--image myapp:v1 \
.
# List repositories
az acr repository list --name myacr --output table
# List tags
az acr repository show-tags --name myacr --repository myapp
Best Practices
- Resource Groups: Organize resources by lifecycle and management
- Tags: Use tags for cost allocation and organization
- RBAC: Follow least privilege principle
- Monitoring: Enable diagnostics and alerts
- Networking: Use private endpoints for sensitive resources
Common Workflows
Deploy Application Stack
- Create resource group
- Set up networking (VNet, subnets)
- Deploy database services
- Deploy application (App Service, Container Apps)
- Configure monitoring and alerts
Manage Resources
- List resources:
az resource list - View details:
az resource show - Update settings:
az resource update - Delete:
az resource delete - Monitor:
az monitor
More from housegarofalo/claude-code-base
mqtt-iot
Configure MQTT brokers (Mosquitto, EMQX) for IoT messaging, device communication, and smart home integration. Manage topics, QoS levels, authentication, and bridging. Use when setting up IoT messaging, smart home communication, or device-to-cloud connectivity. (project)
22devops-engineer-agent
Infrastructure and DevOps specialist. Manages Docker, Kubernetes, CI/CD pipelines, and cloud deployments. Expert in GitHub Actions, Azure DevOps, Terraform, and container orchestration. Use for deployment automation, infrastructure setup, or CI/CD optimization.
6postgresql
Design, optimize, and manage PostgreSQL databases. Covers indexing, pgvector for AI embeddings, JSON operations, full-text search, and query optimization. Use when working with PostgreSQL, database design, or building data-intensive applications.
6home-assistant
Ultimate Home Assistant skill - complete administration, wireless protocols (Zigbee/ZHA/Z2M, Z-Wave JS, Thread, Matter), ESPHome device building, advanced troubleshooting, performance optimization, security hardening, custom integration development, and professional dashboard design. Covers configuration, REST API, automation debugging, database optimization, SSL/TLS, Jinja2 templating, and HACS custom cards. Use for any HA task.
6testing
Comprehensive testing skill covering unit, integration, and E2E testing with pytest, Jest, Cypress, and Playwright. Use for writing tests, improving coverage, debugging test failures, and setting up testing infrastructure.
5react-typescript
Build modern React applications with TypeScript. Covers React 18+ patterns, hooks, component architecture, state management (Zustand, Redux Toolkit), server components, and best practices. Use for React development, TypeScript integration, component design, and frontend architecture.
5