Skip to content

Commit efac399

Browse files
tmeschterCopilot
andcommitted
Add Azure plugin with 21 skills and MCP server configs
Create the 'azure' plugin (plugins/azure/) with plugin metadata, README, and .mcp.json (azure, foundry-mcp, context7, playwright MCP servers). Copy 21 skill folders to skills/ from the github-copilot-for-azure source repo at commit baca73dadb90dce675c2a99fb01192f1c7ff4e2f. Skills: appinsights-instrumentation, azure-ai, azure-aigateway, azure-cloud-migrate, azure-compliance, azure-compute, azure-cost-optimization, azure-deploy, azure-diagnostics, azure-hosted-copilot-sdk, azure-kusto, azure-messaging, azure-observability, azure-prepare, azure-rbac, azure-resource-lookup, azure-resource-visualizer, azure-storage, azure-validate, entra-app-registration, microsoft-foundry. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 2a180a1 commit efac399

File tree

449 files changed

+43436
-108
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

449 files changed

+43436
-108
lines changed

.github/plugin/marketplace.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616
"description": "Meta prompts that help you discover and generate curated GitHub Copilot agents, instructions, prompts, and skills.",
1717
"version": "1.0.0"
1818
},
19+
{
20+
"name": "azure",
21+
"source": "azure",
22+
"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.",
23+
"version": "1.0.0"
24+
},
1925
{
2026
"name": "azure-cloud-development",
2127
"source": "azure-cloud-development",

docs/README.plugins.md

Lines changed: 14 additions & 13 deletions
Large diffs are not rendered by default.

docs/README.skills.md

Lines changed: 21 additions & 2 deletions
Large diffs are not rendered by default.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"name": "azure",
3+
"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.",
4+
"version": "1.0.0",
5+
"author": {
6+
"name": "Microsoft",
7+
"url": "https://www.microsoft.com"
8+
},
9+
"homepage": "https://github.com/microsoft/github-copilot-for-azure",
10+
"repository": "https://github.com/github/awesome-copilot",
11+
"license": "MIT",
12+
"keywords": ["azure", "cloud", "infrastructure", "deployment", "microsoft", "devops"],
13+
"skills": [
14+
"./skills/appinsights-instrumentation/",
15+
"./skills/azure-ai/",
16+
"./skills/azure-aigateway/",
17+
"./skills/azure-cloud-migrate/",
18+
"./skills/azure-compliance/",
19+
"./skills/azure-compute/",
20+
"./skills/azure-cost-optimization/",
21+
"./skills/azure-deploy/",
22+
"./skills/azure-diagnostics/",
23+
"./skills/azure-hosted-copilot-sdk/",
24+
"./skills/azure-kusto/",
25+
"./skills/azure-messaging/",
26+
"./skills/azure-observability/",
27+
"./skills/azure-prepare/",
28+
"./skills/azure-rbac/",
29+
"./skills/azure-resource-lookup/",
30+
"./skills/azure-resource-visualizer/",
31+
"./skills/azure-storage/",
32+
"./skills/azure-validate/",
33+
"./skills/entra-app-registration/",
34+
"./skills/microsoft-foundry/"
35+
]
36+
}

plugins/azure/.mcp.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"mcpServers": {
3+
"azure": {
4+
"command": "npx",
5+
"args": ["-y", "@azure/mcp@latest", "server", "start"]
6+
},
7+
"foundry-mcp": {
8+
"type": "http",
9+
"url": "https://mcp.ai.azure.com"
10+
},
11+
"context7": {
12+
"command": "npx",
13+
"args": ["-y", "@upstash/context7-mcp@latest"]
14+
},
15+
"playwright": {
16+
"command": "npx",
17+
"args": ["-y", "@playwright/mcp@latest"]
18+
}
19+
}
20+
}

plugins/azure/README.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# Azure
2+
3+
[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.
4+
5+
## Setup
6+
7+
### 1. Create an Azure Account
8+
9+
Sign up at [azure.microsoft.com](https://azure.microsoft.com) or use your existing Azure account.
10+
11+
### 2. Install Node.js and NPM
12+
13+
The Azure MCP Server runs as an NPM package. Ensure you have Node.js 18 or later installed:
14+
15+
- Download from [nodejs.org](https://nodejs.org)
16+
- Or use a version manager like [nvm](https://github.com/nvm-sh/nvm)
17+
18+
### 3. Authenticate to Azure
19+
20+
The Azure MCP Server uses the Azure Identity SDK for authentication. You can authenticate using any of these methods:
21+
22+
#### Option A: Azure CLI (Recommended)
23+
1. Install [Azure CLI](https://docs.microsoft.com/cli/azure/install-azure-cli)
24+
2. Run `az login` to authenticate
25+
3. The MCP server will automatically use your CLI credentials
26+
27+
#### Option B: Environment Variables
28+
Set Azure service principal credentials:
29+
30+
**Bash/Zsh:**
31+
```bash
32+
export AZURE_TENANT_ID="your-tenant-id"
33+
export AZURE_CLIENT_ID="your-client-id"
34+
export AZURE_CLIENT_SECRET="your-client-secret"
35+
```
36+
37+
**PowerShell:**
38+
```powershell
39+
$env:AZURE_TENANT_ID = "your-tenant-id"
40+
$env:AZURE_CLIENT_ID = "your-client-id"
41+
$env:AZURE_CLIENT_SECRET = "your-client-secret"
42+
```
43+
44+
#### Option C: Managed Identity
45+
When running on Azure resources (VMs, Container Apps, etc.), the server automatically uses managed identity.
46+
47+
For more authentication options, see the [Azure Identity documentation](https://learn.microsoft.com/azure/developer/azure-mcp-server/).
48+
49+
### 4. Install the Plugins
50+
# Add the repo as a plugin marketplace
51+
/plugin marketplace add microsoft/github-copilot-for-azure
52+
53+
# Pull in the Azure plugin
54+
/plugin install azure@github-copilot-for-azure
55+
56+
## Available Tools
57+
58+
The Azure MCP Server provides tools for 40+ Azure services:
59+
60+
### AI & Machine Learning
61+
- Microsoft Foundry (AI models, deployments, knowledge indexes)
62+
- Azure AI Search (search and vector database)
63+
- Azure AI Services Speech (speech-to-text, text-to-speech)
64+
65+
### Compute & Containers
66+
- Azure App Service, Container Apps, AKS
67+
- Azure Functions, Virtual Desktop
68+
69+
### Storage & Databases
70+
- Azure Storage (Blob, File Sync)
71+
- Azure SQL Database, Cosmos DB
72+
- Azure Database for MySQL & PostgreSQL
73+
74+
### Security & Networking
75+
- Azure Key Vault (secrets, keys, certificates)
76+
- Azure RBAC (access control)
77+
- Azure Confidential Ledger
78+
79+
### DevOps & Management
80+
- Resource Groups, Subscriptions
81+
- Azure Monitor (logging, metrics)
82+
- Azure CLI command generation
83+
- Bicep templates
84+
85+
### Messaging & Communication
86+
- Azure Communication Services (SMS, email)
87+
- Azure Service Bus, Event Grid
88+
89+
For the complete list of 40+ services, see the [official documentation](https://learn.microsoft.com/azure/developer/azure-mcp-server/).
90+
91+
## Example Usage
92+
93+
Ask GitHub Copilot CLI or Claude Code to:
94+
- "List my Azure storage accounts"
95+
- "Show me all containers in my Cosmos DB database"
96+
- "List all secrets in my key vault 'my-vault'"
97+
- "Deploy a web app to Azure App Service"
98+
- "Query my Log Analytics workspace"
99+
- "List my AKS clusters"
100+
- "Send an SMS message to +1234567890 using Azure Communication Services"
101+
- "Generate an Azure CLI command to create a storage account"
102+
103+
For more examples, visit the [Azure MCP documentation](https://learn.microsoft.com/azure/developer/azure-mcp-server/).
104+
105+
## Documentation
106+
107+
For more information, visit:
108+
- [Azure Documentation](https://docs.microsoft.com/azure)
109+
- [Azure CLI Reference](https://docs.microsoft.com/cli/azure/)
110+
- [Azure REST API Reference](https://docs.microsoft.com/rest/api/azure/)
111+
112+
## Troubleshooting
113+
114+
### Authentication Issues
115+
- Run `az login` to authenticate with Azure CLI
116+
- Verify you have appropriate Azure RBAC permissions
117+
- Check that your credentials are not expired
118+
- See the [Authentication guide](https://learn.microsoft.com/azure/developer/azure-mcp-server/)
119+
120+
### Server Issues
121+
- Ensure Node.js 18 or later is installed
122+
- Verify NPM can download packages from npmjs.com
123+
- Check the [Troubleshooting guide](https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/TROUBLESHOOTING.md)
124+
125+
### Telemetry
126+
To disable telemetry collection, set:
127+
```bash
128+
export AZURE_MCP_COLLECT_TELEMETRY=false
129+
```

skills/appinsights-instrumentation/SKILL.md

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,34 @@
11
---
22
name: appinsights-instrumentation
3-
description: 'Instrument a webapp to send useful telemetry data to Azure App Insights'
3+
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."
4+
license: MIT
5+
metadata:
6+
author: Microsoft
7+
version: "1.0.0"
48
---
59

6-
# AppInsights instrumentation
10+
# AppInsights Instrumentation Guide
711

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

10-
## When to use this skill
14+
> **⛔ ADDING COMPONENTS?**
15+
>
16+
> If the user wants to **add App Insights to their app**, invoke **azure-prepare** instead.
17+
> This skill provides reference material—azure-prepare orchestrates the actual changes.
1118
12-
Use this skill when the user wants to enable telemetry for their webapp.
19+
## When to Use This Skill
20+
21+
- User asks **how** to instrument (guidance, patterns, examples)
22+
- User needs SDK setup instructions
23+
- azure-prepare invokes this skill during research phase
24+
- User wants to understand App Insights concepts
25+
26+
## When to Use azure-prepare Instead
27+
28+
- User says "add telemetry to my app"
29+
- User says "add App Insights"
30+
- User wants to modify their project
31+
- Any request to change/add components
1332

1433
## Prerequisites
1534

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

2746
### Prefer auto-instrument if possible
2847

29-
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.
48+
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.
3049

3150
### Manually instrument
3251

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

4463
#### Modify application code
4564

46-
- If the app is an ASP.NET Core app, see [ASPNETCORE guide](references/ASPNETCORE.md) for how to modify the C# code.
47-
- If the app is a Node.js app, see [NODEJS guide](references/NODEJS.md) for how to modify the JavaScript/TypeScript code.
48-
- If the app is a Python app, see [PYTHON guide](references/PYTHON.md) for how to modify the Python code.
65+
- If the app is an ASP.NET Core app, see [ASPNETCORE guide](references/aspnetcore.md) for how to modify the C# code.
66+
- If the app is a Node.js app, see [NODEJS guide](references/nodejs.md) for how to modify the JavaScript/TypeScript code.
67+
- If the app is a Python app, see [PYTHON guide](references/python.md) for how to modify the Python code.
68+
69+
## SDK Quick References
70+
71+
- **OpenTelemetry Distro**: [Python](references/sdk/azure-monitor-opentelemetry-py.md) | [TypeScript](references/sdk/azure-monitor-opentelemetry-ts.md)
72+
- **OpenTelemetry Exporter**: [Python](references/sdk/azure-monitor-opentelemetry-exporter-py.md) | [Java](references/sdk/azure-monitor-opentelemetry-exporter-java.md)

skills/appinsights-instrumentation/references/ASPNETCORE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ An ASP.NET Core app typically has a Program.cs file that "builds" the app. Find
1616
1717
## Configure App Insights connection string
1818

19-
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.
19+
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.
2020

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

2323
```
2424
"APPLICATIONINSIGHTS_CONNECTION_STRING={your_application_insights_connection_string}"
2525
```
2626

27-
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.
27+
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.
2828

2929
> Important: Don't modify appsettings.json. It was a deprecated way to configure App Insights. The environment variable is the new recommended way.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Azure Monitor OpenTelemetry Exporter — Java SDK Quick Reference
2+
3+
> Condensed from **azure-monitor-opentelemetry-exporter-java**. Full patterns
4+
> (trace/metric/log export, spans, semantic conventions)
5+
> in the **azure-monitor-opentelemetry-exporter-java** plugin skill if installed.
6+
7+
## Install
8+
```xml
9+
<dependency>
10+
<groupId>com.azure</groupId>
11+
<artifactId>azure-monitor-opentelemetry-exporter</artifactId>
12+
<version>1.0.0-beta.x</version>
13+
</dependency>
14+
```
15+
16+
> **DEPRECATED**: Migrate to `azure-monitor-opentelemetry-autoconfigure`.
17+
18+
## Quick Start
19+
```java
20+
// Prefer autoconfigure instead:
21+
// <artifactId>azure-monitor-opentelemetry-autoconfigure</artifactId>
22+
```
23+
24+
## Best Practices
25+
- Use autoconfigure — migrate to `azure-monitor-opentelemetry-autoconfigure`
26+
- Set meaningful span names — use descriptive operation names
27+
- Add relevant attributes — include contextual data for debugging
28+
- Handle exceptions — always record exceptions on spans
29+
- Use semantic conventions — follow OpenTelemetry semantic conventions
30+
- End spans in finally — ensure spans are always ended
31+
- Use try-with-resources — scope management with try-with-resources pattern
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Azure Monitor OpenTelemetry Exporter — Python SDK Quick Reference
2+
3+
> Condensed from **azure-monitor-opentelemetry-exporter-py**. Full patterns
4+
> (metric exporter, log exporter, offline storage, sovereign clouds)
5+
> in the **azure-monitor-opentelemetry-exporter-py** plugin skill if installed.
6+
7+
## Install
8+
pip install azure-monitor-opentelemetry-exporter
9+
10+
## Quick Start
11+
```python
12+
from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter
13+
exporter = AzureMonitorTraceExporter() # reads APPLICATIONINSIGHTS_CONNECTION_STRING
14+
```
15+
16+
## Best Practices
17+
- Use BatchSpanProcessor for production (not SimpleSpanProcessor)
18+
- Use ApplicationInsightsSampler for consistent sampling across services
19+
- Enable offline storage for reliability in production
20+
- Use AAD authentication instead of instrumentation keys
21+
- Set export intervals appropriate for your workload
22+
- Use the distro (azure-monitor-opentelemetry) unless you need custom pipelines

0 commit comments

Comments
 (0)