Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion .codespellrc
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@

# pixelX - template variable in skill/game-engine/assets/simple-2d-engine.md

ignore-words-list = numer,wit,aks,edn,ser,ois,gir,rouge,categor,aline,ative,afterall,deques,dateA,dateB,TE,FillIn,alle,vai,LOD,InOut,pixelX
# CAF - Cloud Adoption Framework (Azure)

ignore-words-list = numer,wit,aks,edn,ser,ois,gir,rouge,categor,aline,ative,afterall,deques,dateA,dateB,TE,FillIn,alle,vai,LOD,InOut,pixelX,caf

# Skip certain files and directories

Expand Down
6 changes: 6 additions & 0 deletions .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
"description": "Meta prompts that help you discover and generate curated GitHub Copilot agents, instructions, prompts, and skills.",
"version": "1.0.0"
},
{
"name": "azure",
"source": "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"
},
{
"name": "azure-cloud-development",
"source": "azure-cloud-development",
Expand Down
1 change: 1 addition & 0 deletions docs/README.plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
| Name | Description | Items | Tags |
| ---- | ----------- | ----- | ---- |
| [awesome-copilot](../plugins/awesome-copilot/README.md) | Meta prompts that help you discover and generate curated GitHub Copilot agents, instructions, prompts, and skills. | 5 items | github-copilot, discovery, meta, prompt-engineering, agents |
| [azure](../plugins/azure/README.md) | 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. | 21 items | azure, cloud, infrastructure, deployment, microsoft, devops |
| [azure-cloud-development](../plugins/azure-cloud-development/README.md) | Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications. | 10 items | azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops |
| [cast-imaging](../plugins/cast-imaging/README.md) | A comprehensive collection of specialized agents for software analysis, impact assessment, structural quality advisories, and architectural review using CAST Imaging. | 3 items | cast-imaging, software-analysis, architecture, quality, impact-analysis, devops |
| [clojure-interactive-programming](../plugins/clojure-interactive-programming/README.md) | Tools for REPL-first Clojure workflows featuring Clojure instructions, the interactive programming chat mode and supporting guidance. | 2 items | clojure, repl, interactive-programming |
Expand Down
23 changes: 21 additions & 2 deletions docs/README.skills.md

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions plugins/azure/.github/plugin/plugin.json
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/"
Comment on lines +14 to +34
Copy link

Copilot AI Mar 3, 2026

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-ai instead of ./skills/azure-ai/).

Suggested change
"./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/"
"./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"

Copilot uses AI. Check for mistakes.
]
}
20 changes: 20 additions & 0 deletions plugins/azure/.mcp.json
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
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using @latest for MCP servers makes execution non-reproducible and increases supply-chain risk (a newly published version can change behavior or introduce a compromise). Prefer pinning to a specific version (or at least a major version range) for @azure/mcp, @upstash/context7-mcp, and @playwright/mcp.

Copilot uses AI. Check for mistakes.
}
}
129 changes: 129 additions & 0 deletions plugins/azure/README.md
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
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These install instructions point users at the upstream microsoft/github-copilot-for-azure repo as a marketplace source, but this PR adds azure to this repository's marketplace (.github/plugin/marketplace.json). Consider updating the README to show installation via this repo's marketplace source (or clearly explain why users should add the upstream marketplace instead of using github/awesome-copilot).

Copilot uses AI. Check for mistakes.

## 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
```
42 changes: 33 additions & 9 deletions skills/appinsights-instrumentation/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,34 @@
---
name: appinsights-instrumentation
description: 'Instrument a webapp to send useful telemetry data to Azure App Insights'
description: "Guidance for instrumenting webapps with Azure Application Insights. Provides telemetry patterns, SDK setup, and configuration references. USE FOR: how to instrument app, App Insights SDK, telemetry patterns, what is App Insights, Application Insights guidance, instrumentation examples, APM best practices. DO NOT USE FOR: adding App Insights to my app (use azure-prepare), add telemetry to my project (use azure-prepare), add monitoring (use azure-prepare). This skill provides guidance - azure-prepare orchestrates component changes."
license: MIT
metadata:
author: Microsoft
version: "1.0.0"
---

# AppInsights instrumentation
# AppInsights Instrumentation Guide

This skill enables sending telemetry data of a webapp to Azure App Insights for better observability of the app's health.
This skill provides **guidance and reference material** for instrumenting webapps with Azure Application Insights.

## When to use this skill
> **⛔ ADDING COMPONENTS?**
>
> If the user wants to **add App Insights to their app**, invoke **azure-prepare** instead.
> This skill provides reference material—azure-prepare orchestrates the actual changes.

Use this skill when the user wants to enable telemetry for their webapp.
## When to Use This Skill

- User asks **how** to instrument (guidance, patterns, examples)
- User needs SDK setup instructions
- azure-prepare invokes this skill during research phase
- User wants to understand App Insights concepts

## When to Use azure-prepare Instead

- User says "add telemetry to my app"
- User says "add App Insights"
- User wants to modify their project
- Any request to change/add components

## Prerequisites

Expand All @@ -26,7 +45,7 @@ Find out the (programming language, application framework, hosting) tuple of the

### Prefer auto-instrument if possible

If the app is a C# ASP.NET Core app hosted in Azure App Service, use [AUTO guide](references/AUTO.md) to help user auto-instrument the app.
If the app is a C# ASP.NET Core app hosted in Azure App Service, use [AUTO guide](references/auto.md) to help user auto-instrument the app.

### Manually instrument

Expand All @@ -43,6 +62,11 @@ No matter which option you choose, recommend the user to create the App Insights

#### Modify application code

- If the app is an ASP.NET Core app, see [ASPNETCORE guide](references/ASPNETCORE.md) for how to modify the C# code.
- If the app is a Node.js app, see [NODEJS guide](references/NODEJS.md) for how to modify the JavaScript/TypeScript code.
- If the app is a Python app, see [PYTHON guide](references/PYTHON.md) for how to modify the Python code.
- If the app is an ASP.NET Core app, see [ASPNETCORE guide](references/aspnetcore.md) for how to modify the C# code.
- If the app is a Node.js app, see [NODEJS guide](references/nodejs.md) for how to modify the JavaScript/TypeScript code.
- If the app is a Python app, see [PYTHON guide](references/python.md) for how to modify the Python code.

## SDK Quick References

- **OpenTelemetry Distro**: [Python](references/sdk/azure-monitor-opentelemetry-py.md) | [TypeScript](references/sdk/azure-monitor-opentelemetry-ts.md)
- **OpenTelemetry Exporter**: [Python](references/sdk/azure-monitor-opentelemetry-exporter-py.md) | [Java](references/sdk/azure-monitor-opentelemetry-exporter-java.md)
4 changes: 2 additions & 2 deletions skills/appinsights-instrumentation/references/ASPNETCORE.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ An ASP.NET Core app typically has a Program.cs file that "builds" the app. Find

## Configure App Insights connection string

The App Insights resource has a connection string. Add the connection string as an environment variable of the running app. You can use Azure CLI to query the connection string of the App Insights resource. See [scripts/appinsights.ps1](scripts/appinsights.ps1) for what Azure CLI command to execute for querying the connection string.
The App Insights resource has a connection string. Add the connection string as an environment variable of the running app. You can use Azure CLI to query the connection string of the App Insights resource. See [scripts/appinsights.ps1](../scripts/appinsights.ps1) for what Azure CLI command to execute for querying the connection string.

After getting the connection string, set this environment variable with its value.

```
"APPLICATIONINSIGHTS_CONNECTION_STRING={your_application_insights_connection_string}"
```

If the app has IaC template such as Bicep or terraform files representing its cloud instance, this environment variable should be added to the IaC template to be applied in each deployment. Otherwise, use Azure CLI to manually apply the environment variable to the cloud instance of the app. See [scripts/appinsights.ps1](scripts/appinsights.ps1) for what Azure CLI command to execute for setting this environment variable.
If the app has IaC template such as Bicep or terraform files representing its cloud instance, this environment variable should be added to the IaC template to be applied in each deployment. Otherwise, use Azure CLI to manually apply the environment variable to the cloud instance of the app. See [scripts/appinsights.ps1](../scripts/appinsights.ps1) for what Azure CLI command to execute for setting this environment variable.

> Important: Don't modify appsettings.json. It was a deprecated way to configure App Insights. The environment variable is the new recommended way.
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
Loading