-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Add Azure plugin with 21 skills and MCP server configs #864
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: staged
Are you sure you want to change the base?
Changes from all commits
bb372aa
6caf6d9
865e57f
1b18d31
8064ee8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| { | ||
| "name": "azure", | ||
| "description": "Microsoft Azure MCP integration for cloud resource management, deployments, and Azure services. Manage your Azure infrastructure, monitor applications, and deploy resources directly from Claude Code.", | ||
| "version": "1.0.0", | ||
| "author": { | ||
| "name": "Microsoft", | ||
| "url": "https://www.microsoft.com" | ||
| }, | ||
| "homepage": "https://github.com/microsoft/github-copilot-for-azure", | ||
| "repository": "https://github.com/github/awesome-copilot", | ||
| "license": "MIT", | ||
| "keywords": ["azure", "cloud", "infrastructure", "deployment", "microsoft", "devops"], | ||
| "skills": [ | ||
| "./skills/appinsights-instrumentation/", | ||
| "./skills/azure-ai/", | ||
| "./skills/azure-aigateway/", | ||
| "./skills/azure-cloud-migrate/", | ||
| "./skills/azure-compliance/", | ||
| "./skills/azure-compute/", | ||
| "./skills/azure-cost-optimization/", | ||
| "./skills/azure-deploy/", | ||
| "./skills/azure-diagnostics/", | ||
| "./skills/azure-hosted-copilot-sdk/", | ||
| "./skills/azure-kusto/", | ||
| "./skills/azure-messaging/", | ||
| "./skills/azure-observability/", | ||
| "./skills/azure-prepare/", | ||
| "./skills/azure-rbac/", | ||
| "./skills/azure-resource-lookup/", | ||
| "./skills/azure-resource-visualizer/", | ||
| "./skills/azure-storage/", | ||
| "./skills/azure-validate/", | ||
| "./skills/entra-app-registration/", | ||
| "./skills/microsoft-foundry/" | ||
| ] | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| { | ||
| "mcpServers": { | ||
| "azure": { | ||
| "command": "npx", | ||
| "args": ["-y", "@azure/mcp@latest", "server", "start"] | ||
| }, | ||
| "foundry-mcp": { | ||
| "type": "http", | ||
| "url": "https://mcp.ai.azure.com" | ||
| }, | ||
| "context7": { | ||
| "command": "npx", | ||
| "args": ["-y", "@upstash/context7-mcp@latest"] | ||
| }, | ||
| "playwright": { | ||
| "command": "npx", | ||
| "args": ["-y", "@playwright/mcp@latest"] | ||
| } | ||
|
Comment on lines
+3
to
+18
|
||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,129 @@ | ||
| # Azure | ||
|
|
||
| [Microsoft Azure](https://azure.microsoft.com) is Microsoft's cloud computing platform. This plugin connects [GitHub Copilot CLI](https://github.com/github/copilot-cli) or Claude Code to your Azure account, letting you manage resources, deploy applications, and monitor services directly from your development environment. | ||
|
|
||
| ## Setup | ||
|
|
||
| ### 1. Create an Azure Account | ||
|
|
||
| Sign up at [azure.microsoft.com](https://azure.microsoft.com) or use your existing Azure account. | ||
|
|
||
| ### 2. Install Node.js and NPM | ||
|
|
||
| The Azure MCP Server runs as an NPM package. Ensure you have Node.js 18 or later installed: | ||
|
|
||
| - Download from [nodejs.org](https://nodejs.org) | ||
| - Or use a version manager like [nvm](https://github.com/nvm-sh/nvm) | ||
|
|
||
| ### 3. Authenticate to Azure | ||
|
|
||
| The Azure MCP Server uses the Azure Identity SDK for authentication. You can authenticate using any of these methods: | ||
|
|
||
| #### Option A: Azure CLI (Recommended) | ||
| 1. Install [Azure CLI](https://docs.microsoft.com/cli/azure/install-azure-cli) | ||
| 2. Run `az login` to authenticate | ||
| 3. The MCP server will automatically use your CLI credentials | ||
|
|
||
| #### Option B: Environment Variables | ||
| Set Azure service principal credentials: | ||
|
|
||
| **Bash/Zsh:** | ||
| ```bash | ||
| export AZURE_TENANT_ID="your-tenant-id" | ||
| export AZURE_CLIENT_ID="your-client-id" | ||
| export AZURE_CLIENT_SECRET="your-client-secret" | ||
| ``` | ||
|
|
||
| **PowerShell:** | ||
| ```powershell | ||
| $env:AZURE_TENANT_ID = "your-tenant-id" | ||
| $env:AZURE_CLIENT_ID = "your-client-id" | ||
| $env:AZURE_CLIENT_SECRET = "your-client-secret" | ||
| ``` | ||
|
|
||
| #### Option C: Managed Identity | ||
| When running on Azure resources (VMs, Container Apps, etc.), the server automatically uses managed identity. | ||
|
|
||
| For more authentication options, see the [Azure Identity documentation](https://learn.microsoft.com/azure/developer/azure-mcp-server/). | ||
|
|
||
| ### 4. Install the Plugins | ||
| # Add the repo as a plugin marketplace | ||
| /plugin marketplace add microsoft/github-copilot-for-azure | ||
|
|
||
| # Pull in the Azure plugin | ||
| /plugin install azure@github-copilot-for-azure | ||
|
Comment on lines
+49
to
+54
|
||
|
|
||
| ## Available Tools | ||
|
|
||
| The Azure MCP Server provides tools for 40+ Azure services: | ||
|
|
||
| ### AI & Machine Learning | ||
| - Microsoft Foundry (AI models, deployments, knowledge indexes) | ||
| - Azure AI Search (search and vector database) | ||
| - Azure AI Services Speech (speech-to-text, text-to-speech) | ||
|
|
||
| ### Compute & Containers | ||
| - Azure App Service, Container Apps, AKS | ||
| - Azure Functions, Virtual Desktop | ||
|
|
||
| ### Storage & Databases | ||
| - Azure Storage (Blob, File Sync) | ||
| - Azure SQL Database, Cosmos DB | ||
| - Azure Database for MySQL & PostgreSQL | ||
|
|
||
| ### Security & Networking | ||
| - Azure Key Vault (secrets, keys, certificates) | ||
| - Azure RBAC (access control) | ||
| - Azure Confidential Ledger | ||
|
|
||
| ### DevOps & Management | ||
| - Resource Groups, Subscriptions | ||
| - Azure Monitor (logging, metrics) | ||
| - Azure CLI command generation | ||
| - Bicep templates | ||
|
|
||
| ### Messaging & Communication | ||
| - Azure Communication Services (SMS, email) | ||
| - Azure Service Bus, Event Grid | ||
|
|
||
| For the complete list of 40+ services, see the [official documentation](https://learn.microsoft.com/azure/developer/azure-mcp-server/). | ||
|
|
||
| ## Example Usage | ||
|
|
||
| Ask GitHub Copilot CLI or Claude Code to: | ||
| - "List my Azure storage accounts" | ||
| - "Show me all containers in my Cosmos DB database" | ||
| - "List all secrets in my key vault 'my-vault'" | ||
| - "Deploy a web app to Azure App Service" | ||
| - "Query my Log Analytics workspace" | ||
| - "List my AKS clusters" | ||
| - "Send an SMS message to +1234567890 using Azure Communication Services" | ||
| - "Generate an Azure CLI command to create a storage account" | ||
|
|
||
| For more examples, visit the [Azure MCP documentation](https://learn.microsoft.com/azure/developer/azure-mcp-server/). | ||
|
|
||
| ## Documentation | ||
|
|
||
| For more information, visit: | ||
| - [Azure Documentation](https://docs.microsoft.com/azure) | ||
| - [Azure CLI Reference](https://docs.microsoft.com/cli/azure/) | ||
| - [Azure REST API Reference](https://docs.microsoft.com/rest/api/azure/) | ||
|
|
||
| ## Troubleshooting | ||
|
|
||
| ### Authentication Issues | ||
| - Run `az login` to authenticate with Azure CLI | ||
| - Verify you have appropriate Azure RBAC permissions | ||
| - Check that your credentials are not expired | ||
| - See the [Authentication guide](https://learn.microsoft.com/azure/developer/azure-mcp-server/) | ||
|
|
||
| ### Server Issues | ||
| - Ensure Node.js 18 or later is installed | ||
| - Verify NPM can download packages from npmjs.com | ||
| - Check the [Troubleshooting guide](https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/TROUBLESHOOTING.md) | ||
|
|
||
| ### Telemetry | ||
| To disable telemetry collection, set: | ||
| ```bash | ||
| export AZURE_MCP_COLLECT_TELEMETRY=false | ||
| ``` | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| # Azure Monitor OpenTelemetry Exporter — Java SDK Quick Reference | ||
|
|
||
| > Condensed from **azure-monitor-opentelemetry-exporter-java**. Full patterns | ||
| > (trace/metric/log export, spans, semantic conventions) | ||
| > in the **azure-monitor-opentelemetry-exporter-java** plugin skill if installed. | ||
|
|
||
| ## Install | ||
| ```xml | ||
| <dependency> | ||
| <groupId>com.azure</groupId> | ||
| <artifactId>azure-monitor-opentelemetry-exporter</artifactId> | ||
| <version>1.0.0-beta.x</version> | ||
| </dependency> | ||
| ``` | ||
|
|
||
| > **DEPRECATED**: Migrate to `azure-monitor-opentelemetry-autoconfigure`. | ||
|
|
||
| ## Quick Start | ||
| ```java | ||
| // Prefer autoconfigure instead: | ||
| // <artifactId>azure-monitor-opentelemetry-autoconfigure</artifactId> | ||
| ``` | ||
|
|
||
| ## Best Practices | ||
| - Use autoconfigure — migrate to `azure-monitor-opentelemetry-autoconfigure` | ||
| - Set meaningful span names — use descriptive operation names | ||
| - Add relevant attributes — include contextual data for debugging | ||
| - Handle exceptions — always record exceptions on spans | ||
| - Use semantic conventions — follow OpenTelemetry semantic conventions | ||
| - End spans in finally — ensure spans are always ended | ||
| - Use try-with-resources — scope management with try-with-resources pattern |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| # Azure Monitor OpenTelemetry Exporter — Python SDK Quick Reference | ||
|
|
||
| > Condensed from **azure-monitor-opentelemetry-exporter-py**. Full patterns | ||
| > (metric exporter, log exporter, offline storage, sovereign clouds) | ||
| > in the **azure-monitor-opentelemetry-exporter-py** plugin skill if installed. | ||
|
|
||
| ## Install | ||
| pip install azure-monitor-opentelemetry-exporter | ||
|
|
||
| ## Quick Start | ||
| ```python | ||
| from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter | ||
| exporter = AzureMonitorTraceExporter() # reads APPLICATIONINSIGHTS_CONNECTION_STRING | ||
| ``` | ||
|
|
||
| ## Best Practices | ||
| - Use BatchSpanProcessor for production (not SimpleSpanProcessor) | ||
| - Use ApplicationInsightsSampler for consistent sampling across services | ||
| - Enable offline storage for reliability in production | ||
| - Use AAD authentication instead of instrumentation keys | ||
| - Set export intervals appropriate for your workload | ||
| - Use the distro (azure-monitor-opentelemetry) unless you need custom pipelines |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| # Azure Monitor OpenTelemetry — Python SDK Quick Reference | ||
|
|
||
| > Condensed from **azure-monitor-opentelemetry-py**. Full patterns | ||
| > (Flask/Django/FastAPI, custom metrics, sampling, live metrics) | ||
| > in the **azure-monitor-opentelemetry-py** plugin skill if installed. | ||
|
|
||
| ## Install | ||
| pip install azure-monitor-opentelemetry | ||
|
|
||
| ## Quick Start | ||
| ```python | ||
| from azure.monitor.opentelemetry import configure_azure_monitor | ||
| configure_azure_monitor() | ||
| ``` | ||
|
|
||
| ## Best Practices | ||
| - Call configure_azure_monitor() early — before importing instrumented libraries | ||
| - Use environment variables for connection string in production | ||
| - Set cloud role name for multi-service Application Map | ||
| - Enable sampling in high-traffic applications | ||
| - Use structured logging for better log analytics queries | ||
| - Add custom attributes to spans for better debugging | ||
| - Use AAD authentication for production workloads |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most other plugin manifests in this PR standardize skill paths by removing trailing slashes. For consistency (and to avoid potential path-normalization/validator edge cases), these Azure skill entries should follow the same convention (e.g.,
./skills/azure-aiinstead of./skills/azure-ai/).