Skip to content

Commit c09d30b

Browse files
pavneetaCopilot
andauthored
Docs/improve installation experience (#117)
* Fix MCP configuration format - use array instead of object - Change from {command, args} object format to [command, flag, script] array format - VS Code MCP installer expects array of command arguments instead of object - Fixes 'Failed to parse scanned MCP servers: [object Object]' error - Update all 8 installation links to use proper array format - Should resolve VS Code MCP integration parsing issues * Fix MCP configuration: use proper object format with type field - Revert to {type, command, args} object format instead of array - Include explicit 'type': 'stdio' field as required by VS Code MCP - Fix VS Code showing 'Type: http' instead of 'stdio' in installation dialog - Ensure proper JSON structure for VS Code MCP server configuration - Update all 8 installation links with correct MCP server format * fix: redesign installation to create persistent MCP configurations - Replace temporary download-and-run URLs with proper setup approach - Add automated setup scripts for Windows/macOS/Linux - Provide direct download links for all platforms - Include comprehensive manual configuration examples - Update getting started guide with clearer troubleshooting tips This addresses the fundamental issue where 1-click installation was creating temporary execution commands instead of permanent .vscode/mcp.json configurations. * docs: improve installation experience and fix linting issues - Fix markdown linting issues (line length, emphasis as headings, bare URLs) - Add user-level MCP server configuration option for persistent GitHub Copilot setup - Improve readability with proper line wrapping and formatting - Add both workspace-specific and global configuration options for flexibility * Update README.md Co-authored-by: Copilot <[email protected]> * Update README.md Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]>
1 parent ab8f12d commit c09d30b

File tree

1 file changed

+112
-31
lines changed

1 file changed

+112
-31
lines changed

README.md

Lines changed: 112 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
# AKS-MCP
1+
# AKS-MCP
22

3-
The AKS-MCP is a Model Context Protocol (MCP) server that enables AI assistants to interact with Azure Kubernetes Service (AKS) clusters. It serves as a bridge between AI tools (like GitHub Copilot, Claude, and other MCP-compatible AI assistants) and AKS, translating natural language requests into AKS operations and returning the results in a format the AI tools can understand.
3+
The AKS-MCP is a Model Context Protocol (MCP) server that enables AI assistants
4+
to interact with Azure Kubernetes Service (AKS) clusters. It serves as a bridge
5+
between AI tools (like GitHub Copilot, Claude, and other MCP-compatible AI
6+
assistants) and AKS, translating natural language requests into AKS operations
7+
and returning the results in a format the AI tools can understand.
48

59
It allows AI tools to:
610

@@ -10,11 +14,16 @@ It allows AI tools to:
1014

1115
## How it works
1216

13-
AKS-MCP connects to Azure using the Azure SDK and provides a set of tools that AI assistants can use to interact with AKS resources. It leverages the Model Context Protocol (MCP) to facilitate this communication, enabling AI tools to make API calls to Azure and interpret the responses.
17+
AKS-MCP connects to Azure using the Azure SDK and provides a set of tools that
18+
AI assistants can use to interact with AKS resources. It leverages the Model
19+
Context Protocol (MCP) to facilitate this communication, enabling AI tools to
20+
make API calls to Azure and interpret the responses.
1421

1522
## Available Tools
1623

17-
The AKS-MCP server provides consolidated tools for interacting with AKS clusters. These tools have been designed to provide comprehensive functionality through unified interfaces:
24+
The AKS-MCP server provides consolidated tools for interacting with AKS
25+
clusters. These tools have been designed to provide comprehensive functionality
26+
through unified interfaces:
1827

1928
<details>
2029
<summary>AKS Cluster Management</summary>
@@ -24,6 +33,7 @@ The AKS-MCP server provides consolidated tools for interacting with AKS clusters
2433
Unified tool for managing Azure Kubernetes Service (AKS) clusters and related operations.
2534

2635
**Available Operations:**
36+
2737
- **Read-Only** (all access levels):
2838
- `show`: Show cluster details
2939
- `list`: List clusters in subscription/resource group
@@ -59,6 +69,7 @@ Unified tool for managing Azure Kubernetes Service (AKS) clusters and related op
5969
Unified tool for getting Azure network resource information used by AKS clusters.
6070

6171
**Available Resource Types:**
72+
6273
- `all`: Get information about all network resources
6374
- `vnet`: Virtual Network information
6475
- `subnet`: Subnet information
@@ -77,21 +88,25 @@ Unified tool for getting Azure network resource information used by AKS clusters
7788
Unified tool for Azure monitoring and diagnostics operations for AKS clusters.
7889

7990
**Available Operations:**
91+
8092
- `metrics`: List metric values for resources
8193
- `resource_health`: Retrieve resource health events for AKS clusters
8294
- `app_insights`: Execute KQL queries against Application Insights telemetry data
8395
- `diagnostics`: Check if AKS cluster has diagnostic settings configured
84-
- `control_plane_logs`: Query AKS control plane logs with safety constraints and time range validation
96+
- `control_plane_logs`: Query AKS control plane logs with safety constraints
97+
and time range validation
8598

8699
</details>
87100

88101
<details>
89102
<summary>Compute Resources</summary>
90103

91104
**Tool:** `get_aks_vmss_info`
105+
92106
- Get detailed VMSS configuration for node pools in the AKS cluster
93107

94108
**Tool:** `az_vmss_run-command_invoke` *(readwrite/admin only)*
109+
95110
- Execute commands on Virtual Machine Scale Set instances
96111

97112
</details>
@@ -104,28 +119,35 @@ Unified tool for Azure monitoring and diagnostics operations for AKS clusters.
104119
Comprehensive Azure Fleet management for multi-cluster scenarios.
105120

106121
**Available Operations:**
122+
107123
- **Fleet Operations**: list, show, create, update, delete, get-credentials
108124
- **Member Operations**: list, show, create, update, delete
109125
- **Update Run Operations**: list, show, create, start, stop, delete
110126
- **Update Strategy Operations**: list, show, create, delete
111127
- **ClusterResourcePlacement Operations**: list, show, get, create, delete
112128

113-
Supports both Azure Fleet management and Kubernetes ClusterResourcePlacement CRD operations.
129+
Supports both Azure Fleet management and Kubernetes ClusterResourcePlacement
130+
CRD operations.
114131

115132
</details>
116133

117134
<details>
118135
<summary>Diagnostic Detectors</summary>
119136

120137
**Tool:** `list_detectors`
138+
121139
- List all available AKS cluster detectors
122140

123141
**Tool:** `run_detector`
142+
124143
- Run a specific AKS diagnostic detector
125144

126145
**Tool:** `run_detectors_by_category`
146+
127147
- Run all detectors in a specific category
128-
- **Categories**: Best Practices, Cluster and Control Plane Availability and Performance, Connectivity Issues, Create/Upgrade/Delete and Scale, Deprecations, Identity and Security, Node Health, Storage
148+
- **Categories**: Best Practices, Cluster and Control Plane Availability and
149+
Performance, Connectivity Issues, Create/Upgrade/Delete and Scale,
150+
Deprecations, Identity and Security, Node Health, Storage
129151

130152
</details>
131153

@@ -137,30 +159,37 @@ Supports both Azure Fleet management and Kubernetes ClusterResourcePlacement CRD
137159
Retrieve and manage Azure Advisor recommendations for AKS clusters.
138160

139161
**Available Operations:**
162+
140163
- `list`: List recommendations with filtering options
141164
- `report`: Generate recommendation reports
142-
- **Filter Options**: resource_group, cluster_names, category (Cost, HighAvailability, Performance, Security), severity (High, Medium, Low)
165+
- **Filter Options**: resource_group, cluster_names, category (Cost,
166+
HighAvailability, Performance, Security), severity (High, Medium, Low)
143167

144168
</details>
145169

146170
<details>
147171
<summary>Kubernetes Tools</summary>
148172

149-
*Note: kubectl commands are available with all access levels. Additional tools require explicit enablement via `--additional-tools`*
173+
*Note: kubectl commands are available with all access levels. Additional tools
174+
require explicit enablement via `--additional-tools`*
150175

151176
**kubectl Commands (Read-Only):**
177+
152178
- `kubectl_get`, `kubectl_describe`, `kubectl_explain`, `kubectl_logs`
153179
- `kubectl_api-resources`, `kubectl_api-versions`, `kubectl_diff`
154180
- `kubectl_cluster-info`, `kubectl_top`, `kubectl_events`, `kubectl_auth`
155181

156182
**kubectl Commands (Read-Write/Admin):**
157-
- `kubectl_create`, `kubectl_delete`, `kubectl_apply`, `kubectl_expose`, `kubectl_run`
183+
184+
- `kubectl_create`, `kubectl_delete`, `kubectl_apply`, `kubectl_expose`,
185+
`kubectl_run`
158186
- `kubectl_set`, `kubectl_rollout`, `kubectl_scale`, `kubectl_autoscale`
159187
- `kubectl_label`, `kubectl_annotate`, `kubectl_patch`, `kubectl_replace`
160188
- `kubectl_cp`, `kubectl_exec`, `kubectl_cordon`, `kubectl_uncordon`
161189
- `kubectl_drain`, `kubectl_taint`, `kubectl_certificate`
162190

163191
**Additional Tools (Optional):**
192+
164193
- `helm`: Helm package manager (requires `--additional-tools helm`)
165194
- `cilium`: Cilium CLI for eBPF networking (requires `--additional-tools cilium`)
166195

@@ -171,9 +200,11 @@ Retrieve and manage Azure Advisor recommendations for AKS clusters.
171200

172201
**Tool:** `inspektor_gadget` *(requires `--additional-tools inspektor-gadget`)*
173202

174-
Real-time observability tool for Azure Kubernetes Service (AKS) clusters using eBPF.
203+
Real-time observability tool for Azure Kubernetes Service (AKS) clusters using
204+
eBPF.
175205

176206
**Available Actions:**
207+
177208
- `deploy`: Deploy Inspektor Gadget to cluster
178209
- `undeploy`: Remove Inspektor Gadget from cluster
179210
- `is_deployed`: Check deployment status
@@ -184,6 +215,7 @@ Real-time observability tool for Azure Kubernetes Service (AKS) clusters using e
184215
- `list_gadgets`: List available gadgets
185216

186217
**Available Gadgets:**
218+
187219
- `observe_dns`: Monitor DNS requests and responses
188220
- `observe_tcp`: Monitor TCP connections
189221
- `observe_file_open`: Monitor file system operations
@@ -200,6 +232,7 @@ Real-time observability tool for Azure Kubernetes Service (AKS) clusters using e
200232
### Prerequisites
201233

202234
1. Set up [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) and authenticate:
235+
203236
```bash
204237
az login
205238
```
@@ -208,35 +241,62 @@ Real-time observability tool for Azure Kubernetes Service (AKS) clusters using e
208241
209242
### VS Code with GitHub Copilot (Recommended)
210243

211-
#### 🚀 1-Click Installation
244+
#### 🚀 Quick Setup Guide
245+
246+
#### Step 1: Download the Binary
247+
248+
Choose your platform and download the latest AKS-MCP binary:
249+
250+
| Platform | Architecture | Download Link |
251+
|----------|-------------|---------------|
252+
| **Windows** | AMD64 | [📥 aks-mcp-windows-amd64.exe](https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-windows-amd64.exe) |
253+
| | ARM64 | [📥 aks-mcp-windows-arm64.exe](https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-windows-arm64.exe) |
254+
| **macOS** | Intel (AMD64) | [📥 aks-mcp-darwin-amd64](https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-darwin-amd64) |
255+
| | Apple Silicon (ARM64) | [📥 aks-mcp-darwin-arm64](https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-darwin-arm64) |
256+
| **Linux** | AMD64 | [📥 aks-mcp-linux-amd64](https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-linux-amd64) |
257+
| | ARM64 | [📥 aks-mcp-linux-arm64](https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-linux-arm64) |
258+
259+
#### Step 2: Configure VS Code
260+
261+
After downloading, create a `.vscode/mcp.json` file in your workspace root with the path to your downloaded binary.
262+
263+
##### Option A: Automated Setup Script
212264

213-
Install AKS-MCP server directly into VS Code with one click:
265+
For quick setup, you can use these one-liner scripts that download the binary
266+
and create the configuration:
214267

215-
[![Install AKS-MCP Server](https://img.shields.io/badge/Install-AKS--MCP%20Server-blue?style=for-the-badge&logo=visual-studio-code)](https://vscode.dev/redirect/mcp/install?name=AKS-MCP%20Server&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22bash%22%2C%22args%22%3A%5B%22-c%22%2C%22curl%20-sL%20https%3A%2F%2Fgithub.com%2FAzure%2Faks-mcp%2Freleases%2Flatest%2Fdownload%2Faks-mcp-linux-amd64%20-o%20aks-mcp%20%26%26%20chmod%20%2Bx%20aks-mcp%20%26%26%20.%2Faks-mcp%20--transport%20stdio%22%5D%7D)
268+
*Windows (PowerShell):*
216269

217-
> **✨ Seamless Installation**: This automatically downloads the latest AKS-MCP binary from GitHub releases and configures it in VS Code. After installation, restart VS Code to activate the server.
270+
```powershell
271+
# Download binary and create VS Code configuration
272+
mkdir -p .vscode ; Invoke-WebRequest -Uri "https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-windows-amd64.exe" -OutFile "aks-mcp.exe" ; @{servers=@{"aks-mcp-server"=@{type="stdio";command="$PWD\aks-mcp.exe";args=@("--transport","stdio")}}} | ConvertTo-Json -Depth 3 | Out-File ".vscode/mcp.json" -Encoding UTF8
273+
```
274+
275+
*macOS/Linux (Bash):*
276+
277+
```bash
278+
# Download binary and create VS Code configuration
279+
mkdir -p .vscode && curl -sL https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-linux-amd64 -o aks-mcp && chmod +x aks-mcp && echo '{"servers":{"aks-mcp-server":{"type":"stdio","command":"'$PWD'/aks-mcp","args":["--transport","stdio"]}}}' > .vscode/mcp.json
280+
```
218281

219-
#### 💻 Platform-Specific 1-Click Installation
282+
##### Option B: Manual Configuration
220283

221-
| Platform | Architecture | 1-Click Installation |
222-
|----------|-------------|---------------------|
223-
| **Windows** | AMD64 | [![Install for Windows x64](https://img.shields.io/badge/Install%20for-Windows%20x64-0078d4?style=for-the-badge&logo=windows)](https://vscode.dev/redirect/mcp/install?name=AKS-MCP%20Server&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22powershell%22%2C%22args%22%3A%5B%22-c%22%2C%22Invoke-WebRequest%20-Uri%20https%3A%2F%2Fgithub.com%2FAzure%2Faks-mcp%2Freleases%2Flatest%2Fdownload%2Faks-mcp-windows-amd64.exe%20-OutFile%20aks-mcp.exe%3B%20.%2Faks-mcp.exe%20--transport%20stdio%22%5D%7D) |
224-
| | ARM64 | [![Install for Windows ARM64](https://img.shields.io/badge/Install%20for-Windows%20ARM64-0078d4?style=for-the-badge&logo=windows)](https://vscode.dev/redirect/mcp/install?name=AKS-MCP%20Server&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22powershell%22%2C%22args%22%3A%5B%22-c%22%2C%22Invoke-WebRequest%20-Uri%20https%3A%2F%2Fgithub.com%2FAzure%2Faks-mcp%2Freleases%2Flatest%2Fdownload%2Faks-mcp-windows-arm64.exe%20-OutFile%20aks-mcp.exe%3B%20.%2Faks-mcp.exe%20--transport%20stdio%22%5D%7D) |
225-
| **macOS** | Intel (AMD64) | [![Install for macOS Intel](https://img.shields.io/badge/Install%20for-macOS%20Intel-000000?style=for-the-badge&logo=apple)](https://vscode.dev/redirect/mcp/install?name=AKS-MCP%20Server&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22bash%22%2C%22args%22%3A%5B%22-c%22%2C%22curl%20-sL%20https%3A%2F%2Fgithub.com%2FAzure%2Faks-mcp%2Freleases%2Flatest%2Fdownload%2Faks-mcp-darwin-amd64%20-o%20aks-mcp%20%26%26%20chmod%20%2Bx%20aks-mcp%20%26%26%20.%2Faks-mcp%20--transport%20stdio%22%5D%7D) |
226-
| | Apple Silicon (ARM64) | [![Install for macOS M1/M2](https://img.shields.io/badge/Install%20for-macOS%20M1%2FM2-000000?style=for-the-badge&logo=apple)](https://vscode.dev/redirect/mcp/install?name=AKS-MCP%20Server&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22bash%22%2C%22args%22%3A%5B%22-c%22%2C%22curl%20-sL%20https%3A%2F%2Fgithub.com%2FAzure%2Faks-mcp%2Freleases%2Flatest%2Fdownload%2Faks-mcp-darwin-arm64%20-o%20aks-mcp%20%26%26%20chmod%20%2Bx%20aks-mcp%20%26%26%20.%2Faks-mcp%20--transport%20stdio%22%5D%7D) |
227-
| **Linux** | AMD64 | [![Install for Linux x64](https://img.shields.io/badge/Install%20for-Linux%20x64-FCC624?style=for-the-badge&logo=linux&logoColor=black)](https://vscode.dev/redirect/mcp/install?name=AKS-MCP%20Server&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22bash%22%2C%22args%22%3A%5B%22-c%22%2C%22curl%20-sL%20https%3A%2F%2Fgithub.com%2FAzure%2Faks-mcp%2Freleases%2Flatest%2Fdownload%2Faks-mcp-linux-amd64%20-o%20aks-mcp%20%26%26%20chmod%20%2Bx%20aks-mcp%20%26%26%20.%2Faks-mcp%20--transport%20stdio%22%5D%7D) |
228-
| | ARM64 | [![Install for Linux ARM64](https://img.shields.io/badge/Install%20for-Linux%20ARM64-FCC624?style=for-the-badge&logo=linux&logoColor=black)](https://vscode.dev/redirect/mcp/install?name=AKS-MCP%20Server&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22bash%22%2C%22args%22%3A%5B%22-c%22%2C%22curl%20-sL%20https%3A%2F%2Fgithub.com%2FAzure%2Faks-mcp%2Freleases%2Flatest%2Fdownload%2Faks-mcp-linux-arm64%20-o%20aks-mcp%20%26%26%20chmod%20%2Bx%20aks-mcp%20%26%26%20.%2Faks-mcp%20--transport%20stdio%22%5D%7D) |
284+
> **✨ Simple Setup**: Download the binary for your platform, then use the manual configuration below to set up the MCP server in VS Code.
229285
230286
#### Manual VS Code Configuration
231287

232-
Alternatively, create a `.vscode/mcp.json` file in your workspace:
288+
You can configure the AKS-MCP server in two ways:
289+
290+
**1. Workspace-specific configuration** (recommended for project-specific usage):
291+
292+
Create a `.vscode/mcp.json` file in your workspace with the path to your downloaded binary:
233293

234294
```json
235295
{
236296
"servers": {
237297
"aks-mcp-server": {
238298
"type": "stdio",
239-
"command": "<path of binary aks-mcp>",
299+
"command": "<enter the file path>",
240300
"args": [
241301
"--transport", "stdio"
242302
]
@@ -245,18 +305,39 @@ Alternatively, create a `.vscode/mcp.json` file in your workspace:
245305
}
246306
```
247307

248-
#### 🚀 Getting Started with VS Code
308+
**2. User-level configuration** (persistent across all workspaces):
309+
310+
For a persistent configuration that works across all your VS Code workspaces, add the MCP server to your VS Code user settings:
311+
312+
1. Open VS Code Settings (Ctrl+, or Cmd+,)
313+
2. Search for "mcp" in the settings
314+
3. Add the following to your User Settings JSON:
315+
316+
```json
317+
{
318+
"github.copilot.chat.mcp.servers": {
319+
"aks-mcp-server": {
320+
"type": "stdio",
321+
"command": "<enter the file path>",
322+
"args": [
323+
"--transport", "stdio"
324+
]
325+
}
326+
}
327+
}
328+
```
249329

250-
After installing the AKS-MCP server:
330+
#### Step 3: Load the AKS-MCP server tools to Github Copilot
251331

252-
1. **Restart VS Code** - Close and reopen VS Code to load the new MCP server configuration
332+
1. If running on an older version of VS Code: restart VS Code i.e. close and
333+
reopen VS Code to load the new MCP server configuration.
253334
2. Open GitHub Copilot in VS Code and [switch to Agent mode](https://code.visualstudio.com/docs/copilot/chat/chat-agent-mode)
254-
3. Click the **Tools** button to view available tools
335+
3. Click the **Tools** button or run /list in the Github Copilot window to see the list of available tools
255336
4. You should see the AKS-MCP tools in the list
256337
5. Try a prompt like: *"List all my AKS clusters in subscription xxx"*
257338
6. The agent will automatically use AKS-MCP tools to complete your request
258339

259-
> **💡 Tip**: If you don't see the AKS-MCP tools after restarting, check the VS Code output panel for any MCP server connection errors.
340+
> **💡 Tip**: If you don't see the AKS-MCP tools after restarting, check the VS Code output panel for any MCP server connection errors and verify your binary path in `.vscode/mcp.json`.
260341
261342
**Note**: Ensure you have authenticated with Azure CLI (`az login`) for the server to access your Azure resources.
262343

0 commit comments

Comments
 (0)